zj_zhong 发表于 2008-11-6 09:36

请大家帮忙看看这段程序,目的是想得到两个曲线图

请大家帮忙看看这段程序,目的是想得到两个曲线图,但是理论上讲,这个曲线肯定不是一条直线(但是结果却是一条直线),里面的公式应该不会有错,不知是不是语法或者什么地方出了问题?

clear
clc

%定义初始值
N_0=1.52;         
Eps_Dielectric0=(N_0)^2;         
Eps_Dielectric1=-17.36+0.72i;
Eps_Dielectric2=1;
h=0.05;   
Incident_Wavelength=0.65;      
Input_Angle=linspace(30,60,10000) ;   
%建模过程
Kz_0=2*pi/Incident_Wavelength*sqrt(Eps_Dielectric0-N_0^2*(sin(Input_Angle)).^2);
Kz_1=2*pi/Incident_Wavelength.*sqrt(Eps_Dielectric1-N_0^2*(sin(Input_Angle)).^2);
Kz_2=2*pi/Incident_Wavelength*sqrt(Eps_Dielectric2-N_0^2*(sin(Input_Angle)).^2);

r_01=(Kz_0/Eps_Dielectric0-Kz_1/Eps_Dielectric1)/(Kz_0/Eps_Dielectric0+Kz_1/Eps_Dielectric1);   
r_12=(Kz_1/Eps_Dielectric1-Kz_2/Eps_Dielectric2)/(Kz_1/Eps_Dielectric1+Kz_2/Eps_Dielectric2);
r_012=(r_01+r_12*exp(i*2*Kz_1*h))/(1+r_01*r_12*exp(i*2*Kz_1*h));      

%plot(Input_Angle,r_01)
%plot(Input_Angle,r_012)

sigma665 发表于 2008-11-6 09:43

回复 楼主 zj_zhong 的帖子

Warning: Imaginary parts of complex X and/or Y arguments ignored

开根号,里面是负的

zj_zhong 发表于 2008-11-6 10:11

我的x轴是Incident_angle,范围是30-60度,是实数;
至于y轴,由于已知量Eps_Dielectric1=-17.36+0.72i是复数,因此无论是r01或者是r012,都将会是复数形式;
因此应该说,只要用real(r01),就可以做出Incident_angle与r01实部之间的曲线关系;
但是最后结果竟然是一条单值横线;
然后我尝试做Incident_angle与kz_0等的曲线,看看是不是在这里出了问题,但是该条曲线又很正常;
因此我在怀疑是不是需要把kz_0、kz_1、kz_2的值用矩阵存储呢?(因为该三值由于Incident_angle变化而变化)
页: [1]
查看完整版本: 请大家帮忙看看这段程序,目的是想得到两个曲线图