% 知道1206
clear
clc
close all
lamda_p=0.532;
th=[0:pi/50:pi/2];
lamda_s=[0.54:0.1:1.064]; %lamda_s是一个变值,从0.54一直循环到1.064
no_p=4.7359+0.01878./(lamda_p^2-0.1822);%no_p是定值,因为lamda_p已知
ne_p=4.3753+0.01224./(lamda_p^2-0.1667);%ne_p也是定值,lamda_p已知
for m=1:length(th)
for n=1:length(lamda_s)
lamda_i=lamda_s(n)*lamda_p/(lamda_s(n)-lamda_p);%lamda_p已知,所以假设给lamda_s取一个值就能得到一个lamda_i
no_i=4.7359+0.01817./((lamda_i)^2-0.1822);% no_i只与lamda_i有关,lamda_i变它也变
ne_i=4.3753+0.01224./((lamda_i)^2-0.1667);%ne_i只与lamda_i有关lamda_i变它也变
no_s=4.7359+0.01878./(lamda_s(n)^2-0.1822);%no_s只与lamda_s有关,lamda_s变它也变
%问题来了,我知不道如何将上面得到的no_i ,ne_i,no_p,ne_p,no_s代人下面的一个式子中,从而得到一系列的neth_p 和neth_i.
neth_p=(cos(th(m))^2/(no_p^2)+sin(th(m))^2./(ne_p^2))^(-0.5);
neth_i=(cos(th(m))^2/(no_i^2)+sin(th(m))^2./(ne_i^2))^(-0.5);
% 下面两行是你原来的式子,我感觉不对,就修改为上面的式子了。
% neth_p=(cos(m)^2/(no_p^2)+sin(m)^2./(ne_p^2))^(-0.5);
% neth_i=(cos(m)^2/(no_i^2)+sin(m)^2./(ne_i^2))^(-0.5);
%最后将一系列的neth_p 和neth_i代入if这个条件里,满足就输出。来得到 th与lamda_i的图像和 th与lamda_s的图像。
error=neth_p/lamda_p-no_s/lamda_s(n)-neth_i/lamda_i;
if error<=1e-4
Lamda_i(m)=lamda_i;
Lamda_s(m)=lamda_s(n);
break
end
end
end
plot(th,Lamda_i,'r-*',th,Lamda_s,'-.','Linewidth',2)
legend('th-lamda-i','th-lamda-s')
grid
ylim([-2,40])
set(gca,'Fontsize',14)
不能代入,除非你用符号