当前位置:编程学习 > Matlab >>

关于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程序,急求!!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,