关于matlab的程序问题
l=0
a=3e-6;
lambda=0.6328e-6;nc=1.462420;n=1.457420;
v=(2*pi*a/lambda)*sqrt(nc^2-n^2);k=2*pi/lambda;
bita=n*k:(nc*k-n*k)/100:nc*k;
u=a.*(k^2*nc^2-bita.^2).^0.5;
w=a.*(bita.^2-k^2*n^2).^0.5;
J=u.*besselj(l-1,u)./besselj(l,u);
K=-w.*besselk(l-1,w)./besselk(l,w);
z=J-K;
plot(bita,z)
for [j=1,i=1;i<=100;i+1]
p=bita(i)*bita(i+1);
if(p<0)
b[j]=(bita(i)+bita(i+1))/2
j+1;
以上是我所编的程序,因为是新手,所以有些地方还有问题,我想表达的就是通过上面的式子,能最后把此方程中为0的bita值得出来,后面的部分是为了能够做一个循环来实现,最后出错??? Error: Unbalanced or unexpected parenthesis or bracket.
请教大神帮忙
追问:谢谢,不过变量i怎么就是只有1一个数,我需要的是1到100一共101个数字,还望赐教
i是从1到100变化的,符合你的要求的
答案:l=0;
a=3e-6;
lambda=0.6328e-6;nc=1.462420;n=1.457420;
v=(2*pi*a/lambda)*sqrt(nc^2-n^2);k=2*pi/lambda;
bita=n*k:(nc*k-n*k)/100:nc*k;
u=a.*(k^2*nc^2-bita.^2).^0.5;
w=a.*(bita.^2-k^2*n^2).^0.5;
J=u.*besselj(l-1,u)./besselj(l,u);
K=-w.*besselk(l-1,w)./besselk(l,w);
z=J-K;
plot(bita,z)
j=1;
for i=1:100
p=bita(i)*bita(i+1);
if(p<0)
b(j)=(bita(i)+bita(i+1))/2;
j=j+1;
end
end
你要多看看for循环是怎么用的,matlab里的for循环和c里面不一样,你写的程序是c的格式
上一个:这个MATLAB程序运行会出错:
下一个:解释一下以下matlab程序,急求!!