请教一下,这几句matlab语法错误在哪里
symsarphforn=1:1:100beta=n*pi;kesai0=sqrt(z*hD^2*LD^2+beta*LD^2);int2=int(besselk(0,s...
syms arph
for n=1:1:100
beta=n*pi;
kesai0=sqrt(z*hD^2*LD^2+beta*LD^2);
int2=int(besselk(0,sqrt((xD-arph)^2)*kesai0),arph,1,-1);
int1=symsum(int2,arph,1,n);
int1=int1+int1*cos(beta*zD)*cos(beta*zwD);
end
pD(m1,j)=0.5/z*int2+2*int1;
PwD(m1,j)=PwD(m1,j)+V(i)*pD(m1,j);
出错 sym/symsum (line 70)
rSym = mupadmex('symobj::map',fsym.s,'symobj::symsum',x.s,a.s,b.s);
出错 horizontal (line 78)
int1=symsum(int2,arph,1,n); 展开
for n=1:1:100
beta=n*pi;
kesai0=sqrt(z*hD^2*LD^2+beta*LD^2);
int2=int(besselk(0,sqrt((xD-arph)^2)*kesai0),arph,1,-1);
int1=symsum(int2,arph,1,n);
int1=int1+int1*cos(beta*zD)*cos(beta*zwD);
end
pD(m1,j)=0.5/z*int2+2*int1;
PwD(m1,j)=PwD(m1,j)+V(i)*pD(m1,j);
出错 sym/symsum (line 70)
rSym = mupadmex('symobj::map',fsym.s,'symobj::symsum',x.s,a.s,b.s);
出错 horizontal (line 78)
int1=symsum(int2,arph,1,n); 展开
1个回答
展开全部
这几句matlab语法错误,错就错在 syms arph 的位置设定错误,由于int积分函数要求变量arph为声明变量,所以这段代码,应这样来改
%syms arph
for n=1:1:100
syms arph %正确的位置
beta=n*pi;
kesai0=sqrt(z*hD^2*LD^2+beta*LD^2);
int2=int(besselk(0,sqrt((xD-arph)^2)*kesai0),arph,1,-1);
int2=vpa(int2);
int1=symsum(int2,arph,1,n);
int1=int1+int1*cos(beta*zD)*cos(beta*zwD);
end
追答
应该没有问题的,如其他变量值(除arph变量外)为1时,此循环代码可以通过调试。
由于你的代码不全,我感觉其他变量不完全是数值。如是其积分应该考虑用数值积分函数来求解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询