查看: 325|回复: 2|关注: 0

[已解决] 用matlab的两个函数trapz、quad2d分别求二重定积分的结果相差近10倍

[复制链接]

新手

12 麦片

财富积分


050


3

主题

5

帖子

0

最佳答案
trapzq求解的速度快想用它代替掉quad2d。但是发现两个函数积分结果不一样。可能是tarapz那出错了,但不知道错在哪一步。
x = 0.1:0.01:0.5;
y= 0.3:0.001:1;
[X,Y] = meshgrid(x,y);
F = cos((pi*Y).*(sin(X*pi)));
I = trapz(y,trapz(x,F,2));

f =@(x,y)cos((y).*(sin(x)));
a = quad2d(f,0.1*pi,0.5*pi,0.3*pi,pi);

论坛优秀回答者

权威

3777 麦片

财富积分



3

主题

3957

帖子

844

最佳答案
  • 关注者: 178
发表于 2019-6-12 22:56:37 | 显示全部楼层 |此回复为最佳答案
可以随便更改 积分区间?简单放缩可以?
假设 f(x)=x,[0,2],可以简单化为  f(x)=2*x,[0,1]????

a=quad2d(@(X,Y)cos((pi*Y).*sin(X*pi)),0.1,0.5,0.3,1)

a = 0.0102
与I接近。

新手

12 麦片

财富积分


050


3

主题

5

帖子

0

最佳答案
 楼主| 发表于 2019-6-13 09:26:10 | 显示全部楼层
maple1314168 发表于 2019-6-12 22:56
可以随便更改 积分区间?简单放缩可以?
假设 f(x)=x,[0,2],可以简单化为  f(x)=2*x,[0,1]????

对于复杂函数来说不这样放缩放缩 如 f =exp(x) [2,4]和f =exp(2x) [1,2]结果相差两倍。由此知道为什么用trapz算相差近10倍了,其实是相差(pi)^2倍
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表