matlab入门 — 反射率、折射率的变化

  • Post author:
  • Post category:其他




matlab入门 — 反射率、折射率的变化

    matlab的入门,程序为书本上摘抄的,注释为自己添加的。软件模拟过程为自己在matlab软件上实际模拟的,目的记录学习过程,与大家分享互相学习。
    用简单的代码实现发射率,折射率的变化曲线。平面光波的入射波、反射波、折射波的电矢量可以分成两个矢量:一个平行于入射面,一个垂直于入射面,分别用p和s表示。
    平面波从空气(折射率n1 =1)入射到石英玻璃中(折射率n2 = 1.45)。振幅反射率为rp、rs,振幅折射率为tp、ts。代码如下:

clc %清空内存空间

clear all %清理所有数据

close all %关闭所有的作图界面

n1 = 1,n2 = 1.45; %介质折射率

theta = 0: 0.1:90; %入射角范围0-90度,步距0.1度

a = theta *pi /180; %角度化为弧度

rp = (n2

cos(a)-n1

sqrt(1-(n1/n2

sin(a)).^2))./…

(n2

cos(a)+n1

sqrt(1-(n1/n2

sin(a)).^2)); %p分量振幅反射率

rs = (n1

cos(a)-n2

sqrt(1-(n1/n2

sin(a)).^2))./…

(n1

cos(a)+n2

sqrt(1-(n1/n2

sin(a)).^2)); %s分量振幅反射率

tp = 2

n1

cos(a)./(n2

cos(a)+n1

sqrt(1-(n1/n2

sin(a)).^2)); %p分量振幅透射率

ts = 2

n1

cos(a)./(n1

cos(a)+n2

sqrt(1-(n1/n2

sin(a)).^2)); %s分量振幅透射率

figure(1);

subplot(1,2,1); % figure划分为1×2块,在第1块创建坐标系,并返回它的句柄

plot(theta,rp,’-’,theta,rs,’–’,theta,abs(rp),’:’,…

theta,abs(rs),’-.’,‘LineWidth’,2) %作图rp,rs,|rp|,|rs|随入射角的变化曲线

legend(‘r_p’,‘r_s’,’|r_p|’,’|r_s|’) %

xlabel(’\theta_i’) %x坐标轴

ylabel(‘Amplitude’) %y坐标轴

title([‘n_1=’,num2str(n1),’,n_2=’,num2str(n2)]) %坐标系名称

axis ([0 90 -1 1]) % 设置坐标轴范围

grid on %打开网格

subplot (1,2,2); % figure划分为1×2块,在第2块创建坐标系,并返回它的句柄

plot(theta,tp,’-’,theta,ts,’–’,theta,abs(tp),’:’,…

theta,abs(ts),’-.’,‘LineWidth’,2)

legend(‘t_p’,‘t_s’,’|t_p|’,’|t_s|’)

xlabel(’\theta_i’)

ylabel(‘Amplitude’)

title([‘n_1=’,num2str(n1),’,n_2=’,num2str(n2)])

axis ([0 90 0 1])

grid on

数据如下:

在这里插入图片描述

执行结果:

在这里插入图片描述



版权声明:本文为yukuaidere原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。