有人会用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.
有人有更好的编程方法吗?
展开
 我来答
jimtien
2014-11-13 · TA获得超过7654个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1113万
展开全部

试试数值积分. 积分渗改神结果数值太大, 我把相关参歼乱数缩小了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');


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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式