Python光學(xué)仿真光的偏振編程理解學(xué)習(xí)
光的偏振
由于光波是橫波,所以對于任意一個光波,其振幅方向與傳播方向在一個固定的平面內(nèi)。換言之,一束光波可以存在振幅方向不同的一群光波,對于其中一個光波而言,其振幅方向即為偏振方向。
可以畫出其示意圖
#偏振光演示
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D as axd
def polarShow():
z = np.arange(0,5,0.01) #傳播方向,單位um
dWave = 0.6328
x1 = z*0
y1 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為y
x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為y
y2 = z*0
fig = plt.figure()
ax = axd(fig)
ax.plot3D(z,x1,y1)
ax.plot3D(z,x2,y2)
ax.plot3D(z,x1,y2)
plt.show()
得到其示意圖為

我們生活中遇到的大部分光都是各種偏振方向的均勻混合,即并不是偏振光。上圖所示的藍(lán)色和橙色光波,其偏振方向單一,這種光叫做線偏振光。又因為這兩束光處處保持等相位,則這兩束光的合成仍舊為偏振光。
如果二者之間產(chǎn)生一點相位差,那么其合成將不再是線偏振光,下面將程序中插入一個相位
#兩個存在相位差的線偏振光演示
def polarShow(dWave = 0.6328,delta=0.5):
z = np.arange(0,5,0.01)
x1 = z*0
y1 = np.cos(2*np.pi*z/dWave+delta)#此光波偏振方向為y
x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為x
y2 = z*0
x3 = x1+x2
y3 = y1+y2
fig = plt.figure()
ax = axd(fig)
ax.plot3D(z,x1,y1)
ax.plot3D(z,x2,y2)
ax.plot3D(z,x3,y3)
ax.plot3D(z,x1,y2)
plt.show()
調(diào)整視角之后,如下圖所示,可見兩束現(xiàn)偏振光合成之后,偏振方向則在光的不同傳播位置處發(fā)生變化。由于沿著光的傳播方向看去,其投影為一個橢圓,所以稱此時的光為橢圓偏振光。

調(diào)整相位差,然后畫出光波沿傳播方向上的投影
#偏振光演示
def polarShow(dWave = 0.6328):
z = np.arange(0,5,0.01)
x = np.cos(2*np.pi*z/dWave) #x偏振光
delta = [0,np.pi/6,np.pi/4,\
np.pi/3,np.pi/2,2*np.pi/3,\
3*np.pi/4,5*np.pi/6,np.pi]
titles = ["0","30°","45°","60°","90°",\
"120°","135°","150°","180°"]
#fig = plt.figure()
for i in range(9):
ax =plt.subplot(331+i) #子圖繪制,表示3×3的布局中的第(1+i)個圖
ax.set_title(titles[i])
y = np.cos(2*np.pi*z/dWave+delta[i])#此光波偏振方向為y
plt.plot(x,y)
plt.xticks([])
plt.yticks([]) #去掉坐標(biāo)軸
plt.subplots_adjust(wspace=0.5,hspace=0.5)#調(diào)整子圖間距
plt.show()
于是就得到了這張著名的圖片:

光在空氣中或者水中傳播時,并不會改變其偏振狀態(tài),同時這兩種介質(zhì)對不同偏振方向的光具有相同的折射率。
以上就是Python光學(xué)仿真光的偏振編程理解學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于Python光的偏振的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pyinstaller打包成無控制臺程序時運(yùn)行出錯(與popen沖突的解決方法)
這篇文章主要介紹了pyinstaller打包成無控制臺程序時運(yùn)行出錯(與popen沖突的解決方法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
數(shù)據(jù)庫操作入門PyMongo?MongoDB基本用法
這篇文章主要為大家介紹了數(shù)據(jù)庫操作入門PyMongo MongoDB基本用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
關(guān)于numpy強(qiáng)制類型轉(zhuǎn)換的問題
這篇文章主要介紹了關(guān)于numpy強(qiáng)制類型轉(zhuǎn)換的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
基于python中staticmethod和classmethod的區(qū)別(詳解)
下面小編就為大家?guī)硪黄趐ython中staticmethod和classmethod的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10

