matlab求一个二重积分,最终给出一个数值就行,求高手帮忙解出
发布网友
发布时间:2024-01-05 14:42
我来回答
共1个回答
热心网友
时间:2024-03-12 06:36
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