主要内容

quad2d

数值计算二重积分平铺法

描述

例子

= quad2d (有趣的a、bc, d近似的积分乐趣(x, y)在平面区域 一个 x b c x y d x .范围cd每个都可以是标量或函数句柄。

例子

= quad2d (有趣的a、bc, d名称,值指定一个或多个附加选项名称,值对参数。例如,可以指定“AbsTol”“RelTol”调整算法必须满足的误差阈值。

E) = quad2d (___也返回绝对误差的近似上界,E= |-|,在那里是积分的准确值。

例子

全部折叠

集成

y x + x 因为 y

- π x 2 π 0 y π

Fun = @(x,y) y.*sin(x)+x.*cos(y);Q = quad2d(有趣,π,2 *π,0,π)
Q = -9.8696

将结果与积分的真值进行比较, - π 2

-π^ 2
ans = -9.8696

集成功能

x + y 1 / 2 1 + x + y 2 - 1

在该地区 0 x 1 0 y 1 - x .这个被积函数在原点(0,0)处是无限的,它位于积分区域的边界上。

Fun = @(x,y) 1。/(sqrt(x + y) .* (1 + x + y).^2 ); ymax = @(x) 1 - x; Q = quad2d(fun,0,1,0,ymax)
Q = 0.2854

这个积分的真值是 π / 4 - 1 / 2

π/ 4 - 0.5
ans = 0.2854

quad2d首先将积分区域映射到一个矩形。因此,它可能在没有四个边的区域或有一个不能平滑映射成直线的边的区域上有困难。如果整合不成功,一些有用的策略就会退出单数设置为其默认值真正的在笛卡尔坐标和极坐标之间变换,或者将积分区域分割成小块,并在小块上添加积分结果。

例如:

有趣= @ abs (x (x, y)。^2+y.^2-0.25); c = @(x)-sqrt(1 - x.^2); d = @(x)sqrt(1 - x.^2); quad2d(fun,-1,1,c,d,“AbsTol”1 e-8...“FailurePlot”,真的,“奇异”、假);
警告:已达到函数计算的最大次数(2000)。结果无法通过全局错误测试。

图中包含一个坐标轴。标题为QUAD2D—需要改进的区域的坐标轴包含2002个类型为patch的对象。

失败图显示了两个困难区域,在这些点附近(1,0)(1,0)在圆附近 x 2 + y 2 0 2 5

改变的值单数真正的来处理几何奇点(1,0)(1,0).较大的阴影区域可能需要改进,但可能不是困难区域。

Q = quad2d(有趣,1,1,c, d,“AbsTol”1 e-8...“FailurePlot”,真的,“奇异”,真正的);
警告:已达到函数计算的最大次数(2000)。结果通过全局错误测试。

图中包含一个坐标轴。标题为QUAD2D—需要改进的区域的轴包含2024个patch类型的对象。

从这里你可以利用对称性:

Q = 4 * quad2d(有趣,0 1 0 d“Abstol”1 e-8...“奇异”,真的,“FailurePlot”,真正的)
Q = 0.9817

然而,代码仍然在奇点附近非常努力地工作。它可能无法提供更高的精度:

Q = 4 * quad2d(有趣,0 1 0 d“Abstol”1平台以及...“奇异”,真的,“FailurePlot”,真正的);
警告:已达到函数计算的最大次数(2000)。结果通过全局错误测试。

图中包含一个坐标轴。标题为QUAD2D—需要改进的区域的坐标轴包含2011个patch类型的对象。

在精度较高的情况下,改变坐标可能会更好。

polarfun = @(θ,r)乐趣(r。* cos(θ),r。* sin(θ))。* r;Q = 4 * quad2d (polarfun 0π/ 2,0,1,“AbsTol”1平台以及);

最好将积分区域分成两部分,将奇点放在边界上:

Q1 = 4 * quad2d (polarfun 0π/ 2,0,0.5,“AbsTol”5 e-11);Q2 = 4 * quad2d (polarfun 0π/ 2,0.5,1,“AbsTol”5 e-11);Q = q1 + q2;

输入参数

全部折叠

要集成的函数,指定为函数句柄。这个函数Z =乐趣(X, Y)必须接受二维矩阵XY大小相同并返回一个矩阵Z相应的值。因此,函数必须向量化(也就是说,必须使用elementwise操作符,例如.^而不是矩阵运算符).函数的输入和输出必须是单精度或双精度。

例子:@(x,y) x ^2 - y ^2

数据类型:function_handle

x积分的极限,指定为标量。

数据类型:|
复数的支持:金宝app是的

y积分的极限,指定为标量或函数句柄。每个极限可以指定为标量或函数句柄。如果将极限指定为函数句柄,则它们是x限制的集成Ymin = @x c(x)y = @(x) d(x).函数处理yminymax必须接受矩阵并返回具有相同大小和相应值的矩阵。函数的输入和输出必须是单精度或双精度。

数据类型:||function_handle
复数的支持:金宝app是的

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:quad2d (@ x (x, y)。* y。^2,0,1,0,2, 'AbsTol',1e-3)指定集成的绝对容差为1 e - 3

绝对容错,指定为逗号分隔对,由“AbsTol”和一个标量。

quad2d试图满足ERRBND < = max (AbsTol RelTol Q * | |).这是绝对误差控制时Q | |何时能控制足够小的相对误差Q | |比较大。当没有指定公差时,将使用默认公差值。的默认值AbsTol是1 e-5。的默认值RelTol100 * eps(类(Q)).这也是的最小值RelTol.小RelTol值会自动增加到默认值。

相对容错,指定为逗号分隔对组成“RelTol”和一个标量。

quad2d试图满足ERRBND < = max (AbsTol RelTol Q * | |).这是绝对误差控制时Q | |何时能控制足够小的相对误差Q | |比较大。当没有指定公差时,将使用默认公差值。的默认值AbsTol是1 e-5。的默认值RelTol100 * eps(类(Q)).这也是的最小值RelTol.小RelTol值会自动增加到默认值。

的最大评估次数有趣的,指定为逗号分隔的对,由“MaxFunEvals”和一个标量。使用此选项来限制次数quad2d评估函数有趣的

切换以生成故障图,指定为由以下组成的逗号分隔对“FailurePlot”和数字或逻辑1真正的)或0).集FailurePlot真正的1生成需要进一步细化的区域的图形表示MaxFunEvals是达到了。如果在到达之前集成成功,则不生成任何图MaxFunEvals.失效图包含(通常)四边区域,这些区域在内部映射为矩形。成群的小区域表明了一体化的困难领域。

切换以转换指定为由逗号分隔的对组成的边界奇点“奇异”和数字或逻辑1真正的)或0).默认情况下,quad2d利用变换来削弱边界奇点,以获得更好的性能。集“奇异”0关闭这些转换,可以在一些平滑问题上提供性能优势。

输出参数

全部折叠

计算的积分,作为标量返回。

错误界限,作为标量返回。误差界为计算的积分之间的误差提供了一个上限以及这个积分的确切值这样E= |-|

参考文献

[1] L.F. Shampine, "MATLAB二维求积程序"。应用数学与计算。第202卷,第1期,2008年,266-274页。

扩展功能

介绍了R2009a