matlab中多变量积分函数的求解

请大佬帮帮忙,函数太复杂,有双重积分和多个参数同时涉及到椭圆积分s=0;h1=5;h2=5;r1=0.99;r2=1;n1=50;n2=50;u0=4*pi*10^(-7... 请大佬帮帮忙,函数太复杂,有双重积分和多个参数同时涉及到椭圆积分
s=0;
h1=5;
h2=5;
r1=0.99;
r2=1;
n1=50;
n2=50;
u0=4*pi*10^(-7);

syms x1 x2 g;

M0=@(x1,x2)guad((r1*r2)/sqrt(r1.^2+r2.^2+(x2-x1).^2-2*r1*r2*cos(g),0,pi));
M1=@(x1,g)guad(M0*n2,s-0.5*h2,s+0.5*h2);
M12=@(x2,g)guad(M1*n1,-0.5*h1,0.5*h1);

disp(M12);
展开
 我来答
lhmhz
高粉答主

2020-03-28 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:17002

向TA提问 私信TA
展开全部

分析了你的代码,我觉得你写的代码过于繁琐,没有必要分段函数来写,不就是一个三重积分吗?

解决的办法,就是直接写一个函数就可以了(将san三个函数合并)。即

fun=@(g,x1,x2)2500*(99./(100*((x1-x2).^2-(99*cos(g))/50+19801/10000).^(1/2)))

然后,用triplequad函数求解。即

tol=1e-6;  %误差

q = triplequad(fun,0,pi,-5/2,5/2,-5/2,5/2,tol)

运行结果

注:如积分顺序有误的话,请自行调整(因题主没有明确)。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式