|
|
[求助]
我用这种方法解了这个方程,但是算出来的lambta和预想得到的差别有点大
clear;
clc;
epsl_met=-18.36+0.46i;
%mu_met=1;
%epsl_air=1;%8.854187817e-12;
%mu_air=1;%4*pi*10^(-7)
r=60*10^(-9);
wavelength=632.8*10^(-9);
k_0=2*pi/wavelength;
k_1=k_0;
N=1000;
k_z(1)=(0.9+0.0001i)*k_0; % try value
for j=1:N
u=r*sqrt(epsl_met*k_0^2-k_z(j)^2);%we use '+'now
v=-r*sqrt(k_0^2-k_z(j)^2);%we use '+'now
temp=((1/epsl_met)*(besselk(1,v)*besselj(0,u))/(besselk(0,v)*besselj(1,u)))^2;
k_z(j+1)=sqrt(((temp*epsl_met-1)*k_0^2)/(temp-1));
re_k_z(j+1)=real(k_z(j+1));
im_k_z(j+1)=imag(k_z(j+1));
end
%a_met=1-i;
%a_air=a_met*(besselk(0,r*sqrt(epsl_met*k_0^2-k_z(j+1)^2))/besselj(0,r*sqrt(epsl_met*k_0^2-k_z(j+1)^2)))
lmbta=2*pi/real(k_z(j+1))
plot(re_k_z)
哪位能帮我看一下我用这种方法解这样的方程是否可行?有没有更好的解这个方程的方法呢?我试过fzero和solver了,都解不了。这个问题我弄了好长时间了,这段时间把握折腾的头晕脑胀了,希望大侠们最好能写一下具体的编程过程,感激不尽!
![]()
v=(k_0^2-k_z^2)^0.5,这是我求解的方程 |
|