python光學仿真相速度和群速度計算理解學習
發(fā)布日期:2021-12-23 00:36 | 文章來源:gibhub
從編程的角度來說,波動光學在某些情況下可以簡單地理解為在光線模型的基礎上,引入一個相位項。
波動模型
一般來說,三個特征可以確定空間中的波場:頻率、振幅和相位,故光波場可表示為:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D z = np.arange(15,200)*10 #單位為nm x = np.arange(15,200)*10 x,z = np.meshgrid(x,z)#創(chuàng)建坐標系 E = 1/np.sqrt(x**2+z**2)*np.cos(2*np.pi*np.sqrt(x**2+z**2)/(532*1e-9)) fig = plt.figure() ax = Axes3D(fig) ax.plot_surface(x,z,E) plt.show()
其結果如圖所示
相速度
該式表示各等相位面前進的速度,為相速度。
群速度
假設兩列波的波長分別為532nm和600nm,則在同一時刻,不同位置處的光波振幅可通過python畫出
def wavePacket(d = [532e-9,600e-9]): d = np.array(d) k = 2*np.pi/d #波數(shù) dk = k[0]-k[1] #波數(shù)差 bk = k[1]+dk/2 #平均波數(shù) z = np.arange(10000)/1e9 #位置為0到10um E0 = np.cos(-k[0]*z) E1 = np.cos(-k[1]*z) E = E0+E1 #E = 2*np.cos(-dk/2*z)*np.cos(-bk*z) fig = plt.figure() plt.plot(z,E0,'--',color='red',label='E0') plt.plot(z,E1,'--',color='blue',label='E1') plt.plot(z,E,'-',color='green',label='E') plt.legend() plt.show()
可見每間隔一段距離或者時間就會出現(xiàn)一個比較大的振幅,其極大間隔可以通過表達式求出
為群速度,表示波包的傳播速度。
以上就是python光學仿真相速度和群速度理解學習的詳細內容,更多關于python光學仿真相速度和群速度的資料請關注本站其它相關文章!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章