光学:绘制TE en TM

时间:2017-12-31 16:57:00

标签: python matplotlib fresnel

我试图绘制具有可变入射角的垂直和平行波的相移,0到180度。波从折射率1.33传播到介质,折射率为1.5。

我使用了以下eqaution:Theory with equations< - 第18页

我使用了以下代码:

def Phase(theta):

    n=1.5/1.33

    Shift=np.sqrt(np.sin(theta*np.pi/180)**2-n**2)
    Shift=Shift/np.cos(theta*np.pi/180)
    Shift=2*np.degrees(np.arctan(Shift))

    return Shift

print(Phase(x))

x=np.linspace(0,180,30)  

问题是我得到[ nan nan nan nan nan nan nan nan nan nan]作为回报。

2 个答案:

答案 0 :(得分:1)

如果您的代码如图所示,则在分配前使用x。

试试这个:

{{1}}

答案 1 :(得分:0)

您正在使用全内反射(TIR)公式,该公式对theta > theta_critical有效。您需要将输入角度限制在此范围内。另外,这些等式需要 n &lt; 1,其中 n 定义为传输介质与入射介质的比率。对于TIR,您将从较高的索引转到较低的索引,因此n = n_2/n_1 = 1.33/1.5。最后,入射角相对于表面法线定义,因此它们应该在0 <=θ<= 90°的范围内。