matlab求一个二重积分,最终给出一个数值就行,求高手帮忙解出

symshz;gam=8;u=0.33;a=50;b=50;z1=z-h;z2=z+h;R1=(a^2+b^2+z1^2)^0.5;R2=(a^2+b^2+z2^2)^0... syms h z ;
gam=8;
u=0.33;
a=50;
b=50;
z1=z-h;
z2=z+h;
R1=(a^2+b^2+z1^2)^0.5;
R2=(a^2+b^2+z2^2)^0.5;
r1=(a^2+z1^2)^0.5;
r2=(a^2+z2^2)^0.5;
r3=(b^2+z1^2)^0.5;
r4=(b^2+z2^2)^0.5; %定义积分符号
m1=(gam/pi)*atan((a*b)/(z1*R1)); %第一部分
m2=(gam/pi)*atan((a*b)/(z2*R2)); %第二部分
m3=(gam*a*b*z1*(R1^2+z1^2))/(pi*(1-u)*2*r1^2*r3^2*R1); %第三部分
m4=(gam*a*b*(h+(3-4*u)*z)*(R2^2+z2^2))/(pi*(1-u)*2*r2^2*r4^2*R2); %第四部分
m5=(a*b*h*z*z2*(2*R2^2+r4^2))/(R2^3*r4^4); %第五部分
m6=(a*b*h*z*z2*(2*R2^2+r2^2))/(R2^3*r2^4); %第六部分
f=@(z,h)m1+m2+m3+m4+m5+m6; %被积分函数
F=dblquad(@(z,h)f,0,10),h),10,50); %求积分,先对h积分,后对z积分
展开
yuchaohua1989
2013-08-16 · TA获得超过167个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:114万
展开全部
clc;
clear all;
syms h z;
gam=8;
u=0.33;
a=50;
b=50;
z1=z-h;
z2=z+h;
R1=(a^2+b^2+z1^2)^0.5;
R2=(a^2+b^2+z2^2)^0.5;
r1=(a^2+z1^2)^0.5;
r2=(a^2+z2^2)^0.5;
r3=(b^2+z1^2)^0.5;
r4=(b^2+z2^2)^0.5; %定义积分符号
m1=(gam/pi)*atan((a*b)/(z1*R1)); %第一部分
m2=(gam/pi)*atan((a*b)/(z2*R2)); %第二部分
m3=(gam*a*b*z1*(R1^2+z1^2))/(pi*(1-u)*2*r1^2*r3^2*R1); %第三部分
m4=(gam*a*b*(h+(3-4*u)*z)*(R2^2+z2^2))/(pi*(1-u)*2*r2^2*r4^2*R2); %第四部分
m5=(a*b*h*z*z2*(2*R2^2+r4^2))/(R2^3*r4^4); %第五部分
m6=(a*b*h*z*z2*(2*R2^2+r2^2))/(R2^3*r2^4); %第六部分
f=m1+m2+m3+m4+m5+m6; %被积分函数的符号变量
ff=eval(['@(h,z)',vectorize(char(f)),';']);%转为函数
F=dblquad(ff,0,10,10,50) %求积分,先对h积分,后对z积分

运行之后
F =
2.7928e+003
也就是2792.8
追问
谢谢大神啊,这个积分能不能得到解释解呢?就是对h积分一次以后,能不能得到不含h却含有z的被积表达式?积分两次后是否能得到解释式呢
追答
由于你的式子非常复杂,你说的对h积分是无法得到不含h却含有z的被积表达式,这个我已经试过了。积分两次也不能,得到的结果都是同时含有h和z的表达式。实际上,我们上面得到的h和z都积分的结果是数值解。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式