有人会用matlab进行积分运算吗?题目,我编写的程序,还有出错情况请详见问题补充.希望大家给我点建议 5
程序如下:symsz;r=250;l=500;forN=1:30c=N/pi/r^2;b=acos((l-z)./sqrt(l^2+r^2-2*l.*z));a=r^2....
程序如下:
syms z;r=250;l=500;for N=1:30 c=N/pi/r^2; b=acos((l-z)./sqrt(l^2+r^2-2*l.*z)); a=r^2.*(acos(z/r)-z.*sqrt(r^2-z.^2)/r)+(l^2+r^2-2*l*z).*(b-sqrt(r^2-z.^2).*(l-z)./(l^2+r^2-2*l.*z)); F=(2.*z.*l*c*b*exp(-c*a)); F=eval(['@z',vectorize(F)]); E(N)=quadgk(F,0,r);endplot(E,'-ok')
出错情况:??? Error: Unbalanced or unexpected parenthesis or bracket.
有人有更好的编程方法吗? 展开
syms z;r=250;l=500;for N=1:30 c=N/pi/r^2; b=acos((l-z)./sqrt(l^2+r^2-2*l.*z)); a=r^2.*(acos(z/r)-z.*sqrt(r^2-z.^2)/r)+(l^2+r^2-2*l*z).*(b-sqrt(r^2-z.^2).*(l-z)./(l^2+r^2-2*l.*z)); F=(2.*z.*l*c*b*exp(-c*a)); F=eval(['@z',vectorize(F)]); E(N)=quadgk(F,0,r);endplot(E,'-ok')
出错情况:??? Error: Unbalanced or unexpected parenthesis or bracket.
有人有更好的编程方法吗? 展开
1个回答
展开全部
试试数值积分. 积分渗改神结果数值太大, 我把相关参歼乱数缩小了100倍, 结果和算式你再检查一下,是否正确
l = 5.00;
z = 0:0.01:r;
figure;hold on;
for N = 1:30
c = N/pi/r^2;
b=acos((l-z)./sqrt(l^2+r^2-2*l.*z));
a=r^2.*(acos(z/r)-z.*sqrt(r^2-z.^2)/r)+(l^2+r^2-2*l.*z).*(b-sqrt(r^2-z.^2).*(l-z)./(l^2+r^2-2*l.*z));
F=2*l*c.*z.*b.*exp(-c.*a);
plot(z,F); 丛亏%画出每条曲线
E(N) = trapz(z,F); %梯形法数值积分
end
figure;plot(E,'k-o');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询