文档帮助中心文档
quad2d
数值计算二重积分平铺法
q = quad2d(有趣,a, b, c, d)
q = quad2d(有趣,a, b, c, d,名称,值)
(q, E) = quad2d (___)
例子
问= quad2d (有趣的,a、b,c, d)近似的积分乐趣(x, y)在平面区域 一个 ≤ x ≤ b 和 c ( x ) ≤ y ≤ d ( x ) .范围c和d每个都可以是标量或函数句柄。
问= quad2d (有趣的,a、b,c, d)
问
有趣的
a、b
c, d
乐趣(x, y)
c
d
问= quad2d (有趣的,a、b,c, d,名称,值)指定一个或多个附加选项名称,值对参数。例如,可以指定“AbsTol”和“RelTol”调整算法必须满足的误差阈值。
问= quad2d (有趣的,a、b,c, d,名称,值)
名称,值
“AbsTol”
“RelTol”
[问,E) = quad2d (___)也返回绝对误差的近似上界,E= |问-我|,在那里我是积分的准确值。
[问,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)。结果无法通过全局错误测试。
失败图显示了两个困难区域,在这些点附近(1,0)和(1,0)在圆附近 x 2 + y 2 = 0 . 2 5 .
(1,0)
改变的值单数来真正的来处理几何奇点(1,0)和(1,0).较大的阴影区域可能需要改进,但可能不是困难区域。
Q = quad2d(有趣,1,1,c, d,“AbsTol”1 e-8...“FailurePlot”,真的,“奇异”,真正的);
警告:已达到函数计算的最大次数(2000)。结果通过全局错误测试。
从这里你可以利用对称性:
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”,真正的);
在精度较高的情况下,改变坐标可能会更好。
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)必须接受二维矩阵X和Y大小相同并返回一个矩阵Z相应的值。因此,函数必须向量化(也就是说,必须使用elementwise操作符,例如.^而不是矩阵运算符^).函数的输入和输出必须是单精度或双精度。
Z =乐趣(X, Y)
X
Y
Z
.^
^
例子:@(x,y) x ^2 - y ^2
@(x,y) x ^2 - y ^2
数据类型:function_handle
function_handle
x积分的极限,指定为标量。
数据类型:单|双复数的支持:金宝app是的
单
双
y积分的极限,指定为标量或函数句柄。每个极限可以指定为标量或函数句柄。如果将极限指定为函数句柄,则它们是x限制的集成Ymin = @x c(x)和y = @(x) d(x).函数处理ymin和ymax必须接受矩阵并返回具有相同大小和相应值的矩阵。函数的输入和输出必须是单精度或双精度。
Ymin = @x c(x)
y = @(x) d(x)
ymin
ymax
数据类型:单|双|function_handle复数的支持:金宝app是的
指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
quad2d (@ x (x, y)。* y。^2,0,1,0,2, 'AbsTol',1e-3)
1 e - 3
1 e-5
绝对容错,指定为逗号分隔对,由“AbsTol”和一个标量。
quad2d试图满足ERRBND < = max (AbsTol RelTol Q * | |).这是绝对误差控制时Q | |何时能控制足够小的相对误差Q | |比较大。当没有指定公差时,将使用默认公差值。的默认值AbsTol是1 e-5。的默认值RelTol是100 * eps(类(Q)).这也是的最小值RelTol.小RelTol值会自动增加到默认值。
ERRBND < = max (AbsTol RelTol Q * | |)
Q | |
AbsTol
RelTol
100 * eps(类(Q))
100 * eps(类(q))
相对容错,指定为逗号分隔对组成“RelTol”和一个标量。
“MaxFunEvals”
2000
的最大评估次数有趣的,指定为逗号分隔的对,由“MaxFunEvals”和一个标量。使用此选项来限制次数quad2d评估函数有趣的.
“FailurePlot”
假
0
1
切换以生成故障图,指定为由以下组成的逗号分隔对“FailurePlot”和数字或逻辑1(真正的)或0(假).集FailurePlot来真正的或1生成需要进一步细化的区域的图形表示MaxFunEvals是达到了。如果在到达之前集成成功,则不生成任何图MaxFunEvals.失效图包含(通常)四边区域,这些区域在内部映射为矩形。成群的小区域表明了一体化的困难领域。
FailurePlot
MaxFunEvals
“奇异”
切换以转换指定为由逗号分隔的对组成的边界奇点“奇异”和数字或逻辑1(真正的)或0(假).默认情况下,quad2d利用变换来削弱边界奇点,以获得更好的性能。集“奇异”来假或0关闭这些转换,可以在一些平滑问题上提供性能优势。
计算的积分,作为标量返回。
错误界限,作为标量返回。误差界为计算的积分之间的误差提供了一个上限问以及这个积分的确切值我这样E= |问-我|.
[1] L.F. Shampine, "MATLAB二维求积程序"。应用数学与计算。第202卷,第1期,2008年,266-274页。
使用注意事项及限制:
如果内部存储阵列的大小不够大,生成的代码将发出警告。如果出现警告,作为一种解决方案,您可以尝试将积分区域划分为多个部分,并对每个部分的积分求和。
积分|integral2|integral3|quadgk
积分
integral2
integral3
quadgk
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系