主要内容

quad2d

数值计算二重积分,平铺的方法

描述

例子

= quad2d (有趣的,a、b,c, d)接近的积分乐趣(x, y)在平面区域 一个 x b c ( x ) y d ( x ) 。范围cd每个可以标量或函数处理。

例子

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

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

例子

全部折叠

集成

y ( x ) + x 因为 ( y )

- - - - - - π x 2 π 0 y π

有趣= @ (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),位于集成的边界地区。

有趣= @ (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)。y ^ 2 +。^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个补丁类型的对象。

阴谋失败显示了两个困难的领域,附近的点(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个补丁类型的对象。

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

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个补丁类型的对象。

在精度高,坐标的变化可能做得更好。

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 +;

输入参数

全部折叠

功能集成,指定为一个函数处理。这个函数Z =乐趣(X, Y)必须接受二维矩阵XY相同的大小和返回一个矩阵Z相应的值。因此,该函数必须是矢量化(也就是说,您必须使用elementwise运营商等。^而矩阵等运营商^)。函数的输入和输出必须单或双精度。

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

数据类型:function_handle

x限制的集成,指定为标量。

数据类型:|
复数的支持:万博1manbetx是的

y限制的集成,指定为标量或函数处理。每个限制可以被指定为一个标量或一个函数处理。如果限制指定处理函数,那么它们的功能x限制的集成ymin = @x c (x)ymax = @ (x) d (x)。函数处理yminymax必须接受和返回矩阵的大小与相应的值。函数的输入和输出必须单或双精度。

数据类型:||function_handle
复数的支持:万博1manbetx是的

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子: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年版,2008,第266 - 274页。

扩展功能

版本历史

介绍了R2009a