请教一下,这几句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);
展开
 我来答
lhmhz
高粉答主

2019-10-09 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7259 获赞数:16934

向TA提问 私信TA
展开全部

这几句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时,此循环代码可以通过调试。

由于你的代码不全,我感觉其他变量不完全是数值。如是其积分应该考虑用数值积分函数来求解。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式