2.本问题用数值方法可能更好, 而且适用于一般情形. 按照本论坛一些帖子的做法,自己稍微思考一下,相信就能解决问题了.
至于加上外循环W的情形,基本上只是多一步而已,不需要什么新的技巧. 原帖由 xjzuo 于 2007-9-6 15:37 发表 http://www.chinavib.com/forum/images/common/back.gif
1.符号计算中,为了节约时间,可以利用"牛顿-莱布尼兹定理", 先求出积分后的函数,再计算积分值.---针对上面代码.
2.本问题用数值方法可能更好, 而且适用于一般情形. 按照本论坛一些帖子的做法,自己稍微思考 ...
多谢版主指点。按照版主教的方法改了下代码,终于得出数了。:@D :victory:
clear ;clc;
syms x y z
f=(1-x.^2).^(1/2);
dfdx=diff(f);
aa=int(5e13*cosh(dfdx*z/1e6),z);
bb=int(5e13*sinh(dfdx*z/1e6),z);
A=subs(aa,z,(1e-7))-subs(aa,z,0)
B=subs(bb,z,(1e-7))-subs(bb,z,0)
C=(0.04*A-B*(A^2-B^2+0.04^2)^0.5)/(A^2-B^2)
D=inline(eval())
E=quadl(D,-(1e-4)+eps,1e-4)
F=0.016*E
结果:
E =
1.6000e-006
F =
2.5600e-008
再次感谢版主对我的无私帮助!:handshake
关于报错的原因
syms a b x y z t i;>> t=@(Vd) quad(@(x) a*x+b*y+z,0.05,Vd);
>> i=t(0.2)
上面是我输入的程序,下面是报错,请问是什么意思啊,原因是什么
??? Function 'isfinite' is not defined for values of class 'sym'.
Error in ==> isfinite at 19
= builtin('isfinite', varargin{:});
Error in ==> quad at 66
if ~isfinite(y(1))
页:
1
[2]