Python光學(xué)仿真之對(duì)光的干涉理解學(xué)習(xí)
光的干涉
干涉即兩束光在疊加過(guò)程中出現(xiàn)的強(qiáng)度周期性變化情況,其最簡(jiǎn)單的案例即為楊氏雙縫干涉。

如圖所示,光從 S S S點(diǎn)發(fā)出,通過(guò)兩個(gè)狹縫 S 1 , S 2 S_1,S_2 S1,S2,最終匯聚在右側(cè)的干涉屏上,在不同位置處將會(huì)產(chǎn)生不同的相位差。

import numpy as np import matplotlib.pyplot as plt #兩束光疊加 waveAdd = lambda I1,I2,theta : I1+I2+2*np.sqrt(I1*I2)*np.cos(theta) #同一束光經(jīng)過(guò)小孔之后的光程差,dSlit為小孔間距,dWave為波長(zhǎng) #point為衍射屏上某點(diǎn),theta為衍射屏相對(duì)小孔所在直線傾角 def interSlit(dSlit,point=(1,1,1),n=1,dWave=1.06e-6): pVar = sum(np.array(point)**2) + 0.25*dSlit**2 delt = 2*np.pi*n/dWave*( np.sqrt(pVar+point[0]*dSlit)- np.sqrt(pVar-point[0]*dSlit)) return delt #楊氏干涉,只考慮x方向 #dSlit:小孔間距;dScreen:衍射屏距離 #nGrid:網(wǎng)格個(gè)數(shù);dGrid:網(wǎng)格間距 def interYang(dSlit=1e-3,dScreen=1,n=1,I1=1,I2=1, dWave=1.06e-6,nGrid=500,dGrid=1e-5): xAxis = np.arange(-nGrid,nGrid+1)*dGrid I = [waveAdd(I1,I2,interSlit( dSlit,(x,0,dScreen),n,dWave)) for x in xAxis] plt.plot(xAxis,I) plt.show()
得到的衍射強(qiáng)度圖為

雙縫干涉是一個(gè)非常實(shí)用的模型,可以應(yīng)用到許多光學(xué)裝置中,例如Fresnel雙面鏡,F(xiàn)resnel雙棱鏡,Lloyds鏡,Billet剖開透鏡等等。其中Frenel雙面鏡如圖所示

光源入射到雙面鏡之后在鏡后產(chǎn)生了兩個(gè)像點(diǎn) P , Q 二者相當(dāng)于一對(duì)小孔,于是可以在右側(cè)的干涉屏上產(chǎn)生干涉。
其仿真過(guò)程與楊氏干涉只差一個(gè)小孔的轉(zhuǎn)換,圖像亦如出一轍。
#alpha為雙鏡銳角,dSA為光源到劈點(diǎn)距離,dScreen為S像點(diǎn)連線到干涉屏距離 def lensFresnel(alpha=0.1,dSA=1e-3,dScreen=1, n=1,I1=1,I2=1,dWave=1.06e-6, nGrid=500,dGrid=1e-4): dSlit = 2*dSA*np.sin(alpha) interYang(dSlit,dScreen,n,I1,I2,dWave,nGrid,dGrid)
以上就是Python光學(xué)仿真之對(duì)光的干涉理解學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于Python理解光的干涉的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信