matlab二重积分求解问题

按照公式,曲线应该是在半径距离内先逐渐增大的,为什么我的最大值总是出现在内部。参考公式和图片,以及本程序的图片如图:clear;clc;a=15.2;E=0.1;e1=3... 按照公式,曲线应该是在半径距离内先逐渐增大的,为什么我的最大值总是出现在内部。参考公式和图片,以及本程序的图片如图:clear;clc;a=15.2;E=0.1;e1=3.5;e2=20;fun=@(a,r,b)(sin(a).^2.*cos(b))./(1+(r./a).^2-2.*r./a.*sin(a).*cos(b)).*0.5;r=-50:0.1:50;F=(a*E/4/pi)*((e2-e1)/(2e1+e2))*arrayfun(@(r)integral2(@(a,b)fun(a,r,b),0,pi,0,2*pi),r);plot(r,F); 展开
 我来答
lhmhz
高粉答主

2021-05-07 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:17003

向TA提问 私信TA
展开全部

为什么用matlab求解二重积分问题,得到的结果与实际图形不一致?

出现这样的问题,其原因主要是设置积分变量与某已知变量重合,而导致出错。

建议设置积分变量最好与公式中的变量相一致,如θ用theta表示,φ用phi表示

所以,自定义的函数应这样来写:

fun=@(theta,phi,r)(sin(theta).^2.*cos(phi))./sqrt(1+(r./a).^2-2*r./a.*sin(theta).*cos(phi));

修改后运行,可以得到下列结果。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式