功能:采用龙贝格积分求解二重数值积分(有限区间积分)

格式:
[r,er,m,n]=IntegralxyRomberg(f,xa,xb,ya,yb,er0,mN,nN)
[r,er,m,n]=IntegralxyRomberg(f,xa,xb,ya,yb,er0,mN)
[r,er,m,n]=IntegralxyRomberg(f,xa,xb,ya,yb,er0)
[r,er,m,n]=IntegralxyRomberg(f,xa,xb,ya,yb)

f:符号变量,存储只含以x、y为变量名称的积分表达式
xa:数值或者矩阵变量,表示x积分区间的下限
xb:数值或者矩阵变量,表示x积分区间的上限
ya:数值或者矩阵变量或者包含x变量的符号表达式,表示y积分区间的下限
yb:数值或者矩阵变量或者包含x变量的符号表达式,表示y积分区间的上限
er0:表示求解控制的相对误差,默认为1e-12
mN:表示对x进行积分时复化等分数的最大复化深度,其等价的复化数为64*2^mN,此值默认为10
nN:表示对y进行积分时复化等分数的最大复化深度,默认与mN相等

r:返回的积分结果值
er:返回的求解结果的相对误差
m:返回的求解到此值时程序对x积分变量的复化深度
n:返回的求解到此值时程序对y积分变量的复化深度

说明:在变量xa,xb,ya,yb当中存在两个矩阵变量时,这些矩阵变量维数必须一致,且返回的结果也将是对应的矩阵变量

原理:

1、双重积分,可分别对每一层采用单变量的积分算法进行数值积分
2、本积分算法对x与y变量均采用龙贝格算法进行数值积分。

参考://王超能.数值分析简明教程[M].高等教育出版社,北京,2004,Page:68-69

例子:

//已知函数 f(x,y)=ln(x+2*y)，请对f(x,y)函数的x从1.4到2;y分别从0.7,0.8,0.9,1到1.5进行数值积分
//提示,对f(x,y)的x、y各进行一次积分后可得到 ((x + 2*y)^2*(2*log(x + 2*y) - 3))/8

f="ln(x+2*y)";
ya=[0.7,0.8,0.9,1];
[fy,er,m,n]=IntegralxyRomberg(f,1.4,2,ya,1.5)//执行上面两条命令以及回车本条命令后得到如下结果。注意,ya当中每一个元素对应如下结果对应列下标的值

fy =
[ 0.64936403492707    0.57967296484608    0.50633319683871    0.42955452754827 ]
er =
[ 2.5512925105E-13    1.5942802633E-13    1.0036416142E-13    6.3227201252E-14 ]
m =
[ 1.00000000000000    1.00000000000000    1.00000000000000    1.00000000000000 ]
n =
[ 3.00000000000000    2.00000000000000    2.00000000000000    2.00000000000000 ]