sinophile
2008-10-09, 20:13
这是我编的一个程序,本意是theta1变量坐横坐标,R变量做纵坐标,得到一个关于他俩的曲线,运行程序后也能得到曲线,但是不知道怎么回事,纵坐标的值一直都是1,我用的是MATLAB7.0,希望知道的帮我看看怎么回事啊,头都编大了,谢谢了~
程序如下,
>> n0=1;n1=1.2;n2=1.4;n3=1.6;n4=1.8;n5=2;n6=2.2;ng=2.4;
j=8.85*10^-12;c=1;w=4.55*10^-7;theta1=0:pi/100:pi/2;m=eye(2);
h1=w/4;h2=w/6;h3=w/7;h4=w/8;h5=w;h6=w/9;
N=[n1 n2 n3 n4 n5 n6];H=[h1 h2 h3 h4 h5 h6];
for k=1:6;
F1=n0.*sin(theta1);F2=F1./N(k);theta2=asin(F2);
P1=2*pi*N(k)*H(k).*cos(theta2);P2=P1./w;
P3=sqrt(j/c)*N(k).*cos(theta2);
A=cos(P2);B1=-i.*sin(P2);B=B1./P3;C=-i.*P3.*sin(P2);D=cos(P2);
M=[A,B;C,D];
m=[m(1).*M(1)+m(3).*M(2) m(1).*M(3)+m(3).*M(4);m(2).*M(1)+m(4).*M(2) m(2).*M(3)+m(4).*M(4)];
end;
P0=sqrt(j/c)*n0.*cos(theta1);
F4=F1./ng;theta3=asin(F4);
P4=sqrt(j/c)*ng;Pg=P4./cos(theta3);
r1=m(1)+m(3).*Pg;r2=r1.*P0;r3=m(2)+m(4).*Pg;
r4=r2-r3;r5=r2+r3;
r=r4./r5;
r6=conj(r);
R=r.*r6;plot(theta1,R)
程序如下,
>> n0=1;n1=1.2;n2=1.4;n3=1.6;n4=1.8;n5=2;n6=2.2;ng=2.4;
j=8.85*10^-12;c=1;w=4.55*10^-7;theta1=0:pi/100:pi/2;m=eye(2);
h1=w/4;h2=w/6;h3=w/7;h4=w/8;h5=w;h6=w/9;
N=[n1 n2 n3 n4 n5 n6];H=[h1 h2 h3 h4 h5 h6];
for k=1:6;
F1=n0.*sin(theta1);F2=F1./N(k);theta2=asin(F2);
P1=2*pi*N(k)*H(k).*cos(theta2);P2=P1./w;
P3=sqrt(j/c)*N(k).*cos(theta2);
A=cos(P2);B1=-i.*sin(P2);B=B1./P3;C=-i.*P3.*sin(P2);D=cos(P2);
M=[A,B;C,D];
m=[m(1).*M(1)+m(3).*M(2) m(1).*M(3)+m(3).*M(4);m(2).*M(1)+m(4).*M(2) m(2).*M(3)+m(4).*M(4)];
end;
P0=sqrt(j/c)*n0.*cos(theta1);
F4=F1./ng;theta3=asin(F4);
P4=sqrt(j/c)*ng;Pg=P4./cos(theta3);
r1=m(1)+m(3).*Pg;r2=r1.*P0;r3=m(2)+m(4).*Pg;
r4=r2-r3;r5=r2+r3;
r=r4./r5;
r6=conj(r);
R=r.*r6;plot(theta1,R)