作业帮 > 综合 > 作业

matlab反复求积分,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/31 17:23:59
matlab反复求积分,
a=0.006
b=0.003;
c=0.0005
miuf=1000
miur=1
f1='(x-a)/(((x-a)^2+(y-y1)^2+(z-z1)^2)^(3/2))'
f2='(x+a)/(((x+a)^2+(y-y1)^2+(z-z1)^2)^(3/2))'
N=miuf/miur
M=-500/(4*pi)
v1=int(f1,'y1','-b','b')
v2=int(f2,'y1','-b','b')
B1=int(v1,'z1','-c','c')
B2=int(v2,'z1','-c','c')
hf1=M*N*B1
hf2=M*N*B2
hf=hf1-hf2
HF=int(int(int(hf,'x','-0.006','0.006'),'y','-0.003','0.003'),'z','-0.0005','0.0005')/(0.012*0.006*0.001)
程序可改成:a=0.006;
b=0.003;
c=0.0005;
miuf=1000;
miur=1;
syms x y z z1 y1
f1=(x-a)/(((x-a)^2+(y-y1)^2+(z-z1)^2)^(3/2));
f2=(x+a)/(((x+a)^2+(y-y1)^2+(z-z1)^2)^(3/2));
N=miuf/miur;
M=-500/(4*pi);
v1=int(f1,y1,-b,b)
v2=int(f2,y1,-b,b)
B1=int(v1,z1,-c,c)
B2=int(v2,z1,-c,c)
hf1=M*N*B1
hf2=M*N*B2
hf=hf1-hf2
HF=int(int(int(hf,x,-0.006,0.006),y,-0.003,0.003),z,-0.0005,0.0005)/(0.012*0.006*0.001)前面的问题不大,但最后一步的积分值得到0,我有点怀疑. 单独计算最里面的那层积分:>> int(hf,x,-0.006,0.006) 
ans = 
0但我仍然觉得这个结果有些可疑.
再问:
现在算到HF出不来,卡住了。回个帖吧。谢谢高手解答,对我帮助很大。不会传程序附件,只好上图了。
我再看看……
再答: 对于比较复杂的表达式用符号运算求积分经常会遇到各种各样的问题,例如,对于这个积分,在不同版本的MATLAB中的具体现象不一样,很多情况下是求不出显式解的。

如果你只是想要求出HF的具体结果,建议不要使用符号运算,而应该考虑采用数值方法。
再问: 这是B1,我那么编写对不对。我怕在这里出错。

ps:初学者,所以说到数值方法,我不大懂的。
谢谢大神!