《Mathematica在波動光學中的應用研究》7300字_第1頁
《Mathematica在波動光學中的應用研究》7300字_第2頁
《Mathematica在波動光學中的應用研究》7300字_第3頁
《Mathematica在波動光學中的應用研究》7300字_第4頁
《Mathematica在波動光學中的應用研究》7300字_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

[18]。接下來,我們以光的衍射來利用和展示Mathematica強大功能。波動光學衍射原理及計算代數以波動理論分析研究光的傳播,波在傳播過程中遇到障礙物時,它能夠繞過障礙物繼續傳播的過程,根據波動光學理論推出計算代數。標量夫瑯禾費衍射原理弗朗禾費衍射的裝置如圖1所示,當一束平行光垂直入射到衍射屏上,將凸透鏡放在衍射屏的后面,在凸透鏡的后焦平面上再放一個接受屏,所接收到的圖像就是衍射光在無限遠處形成的干涉圖樣。弗朗禾費衍射的裝置衍射角坐標的示意圖如圖2所示。根據夫瑯禾費衍射理論,衍射場的振幅分布如下所示(1)衍射屏的透過函數是U(x,y),其中α和β為方向角坐標,λ為光的波長。積分在整個衍射屏∑。衍射的角坐標示意圖得到衍射強度的分布如下(2)用上面兩式來計算在一些情況下的衍射圖,設計針對性的算法,并探討結果的含義。標量夫瑯禾費衍射的計算代數在計算積分U(α,β),簡單的情況下可以直接得到解析的結果,但我們不準備對解析結果探求,而是直接探求數值計算法,從而求衍射強度在各種情況下的分布。為此,我們需要把U(α,β)分成實部和虛部兩部分來計算,如下所示實部,虛部分別為理論上說,按上面兩個積分公式計算U1、U2是可取的,因為函數NIntergrate[]可以進行二重積分。但實際計算表明,直接積分速度太慢。如果能把積分過程改為求和過程,求和的速度要比積分要快許多,于是剩下的就需要設計通過衍射屏的透過函數。并且后面所用的衍射屏就是單個圓形孔,三角形孔和單個及多個矩形孔,若是多個孔,孔的排列也是規則的。結合以上情況,取透過函數簡單的形式(3)從U1、U2的表達式中可以看出,它們都是α,β的函數,在實際接收的衍射圖上,用直觀的笛卡兒坐標來表示衍射強度,我們把衍射強度改為接收屏上的笛卡兒直角坐標x表示。設在圖2中衍射屏到接收屏的長度為1,就可以證明有了這些準備,接下來將具體計算在幾種情況下光衍射的分布。經典而重要的波動光學衍射的計算通過之前的準備,設計出計算程序和算法并得出美麗的可視化結果。計算圓孔、三角形孔、矩形孔的衍射。下面得到計算的結果與可視化。單個圓孔衍射的計算與可視化先計算圓孔的衍射,用來說明衍射計算的一般問題。設圓孔半徑為r,將圓孔以外的光遮擋,原點在圓心上,所以透過函數為其中Unitstep()是單位階躍函數。選擇圓孔的2r×2r區域作為衍射屏。取波長等于0.6μm,涉及所有的長度量單位為都以μm。計算結果顯示,衍射圖與孔的半徑有關。首先取r=10μm。圓孔對光的衍射的程序代碼如圖3所示圓孔對光的衍射的程序代碼對程序解釋如下:第一,需要注意的是,程序中頻繁使用Date[]函數,是因為求和過程比較慢,而求和過程中所使用的時間函數是為了更好的掌握時間,不至于發生誤判。

第二,循環是雙重的,每層循環的次數是2n+1,本次總共循環的次數是101。銜射角的范圍設定為±12o。第三,為了加快運算速度,在程序中還采用了一些小的技巧,例如,事先計算出2x/λ,從而避免在循環中對該數值反復計算。同理,程序中的q1、q2的設置也是結合以上技巧。第四,在求和完成后,將所得到的強度進行存盤,緊接著使用ListPlot3D[]和ListDensityPlot[]分別做出強度的聯合分布圖和密度圖,強度圖可以看到各個衍射環強度的相對關系,密度圖可以看到接收屏上所觀察到的衍射圖樣。下面兩張圖就是強度的立體和平面分布。圓孔對光的衍射的計算結果強度立體分布如圖4所示圓孔對光的衍射計算結果的強度立體分布圖圓孔對光的衍射的計算結果強度平面分布如圖5所示圓孔對光的衍射的計算結果強度平面分布圖當然,要具體查看衍射強度的分布時,最直接的方法是查看數據文件。不過,數據量很大,一個個查看也沒必要。但是,可以通過這些數據所得到衍射圖的一些“特征量”,以便對圓孔衍射有進一步的認識。如果想知道,在衍射圖上,各個衍射環的峰值強度是多少,或者各個衍射峰值的相對比例是多少?再則,衍射環有明有暗,暗環的位置在什么地方,符合什么規律?為了回答這樣的問題,從衍射圖中間取一條水平線,它穿過衍射中心。這條線上的強度分布包含著以上問題的答案,如圖6所示的程序就是來分析這條線的數據信息的。計算一條水平線線通過衍射中心的光強分布。計算一條水平線通過衍射中心的光強分布的程序代碼一條水平線通過衍射中心的插值函數曲線上面程序給出的結果,0ut[23]表示,抽出經過衍射中心線上的強度數據,對該部分數據進行插值,將得到的插值函數曲線,插值函數曲線是中心對稱的、并且是兩邊振蕩衰減的函數,與衍射圖的明環和暗環對應;從該圖上還能看出在衍射屏上的坐標寬度。衍射中心的峰值很高,只畫出了一部分。Out[25]和Out[26]分別是中心零級衍射峰和一級衍射峰的值,Out[27]是二者的比值,可見,二者相差了50多倍,衍射能量主要集中在中心峰值內。根據光學理論依據,第一暗環的角位置應滿足以下關系sinα=0.61λ/r其中α對應的是第一暗環的衍射角,在靠近中心的地方,衍射角近似等于銜射屏上的距離,于是就有sinα≈α≈0.0368將程序中所采用的波長和孔的半徑數據代人,得0.61×0.6/10=0.0366證明波動光學理論的結果在此得到了很好的滿足。在用FindRoot[]求暗環位置的時侯,事先要觀察Out[23],以確定暗環的近似位置。因此,所給的程序是已經調試成功的最后結果。最后談一談程序設計的技巧。如果用記事本程序打開文件yuankong.dat,可以發現,其數據結構是{{x1,y1,i1},{x2,y2,i2},…}根據產生yuankong.dat的那段程序的邏輯,β每取一個值,對應α要取2n+1個值,其中第n+1個值是0,該處對應衍射圖的中心線。因此,再讀得了數據之后,就用函數Partition[]將其按2n+1個為一組重新組織數據,數據的格式變為{{{x1,y1,i1},{x2,y2,i2},…,{x2n+1,y2n+1,i2n+1}},{…},…}而Table[d[[I,n+1]],{i,2n+1}]就是從中挑選出中心線上的數據點,其格式為{{xn+1,yn+1,in+1},{…},…}這時候,會發現,xn+1已經是0,或者非常接近于0,我們要取的就是{yn+1,in+1},這就是Take[d[[i]],-2]的作用,取表中末尾2個元素組成新的表。經過第二次Table[]的作用,得到數據是{{yn+1,in+1},…}數據正好能用來進行一維插值。總的來看,對弗朗禾費衍射的數值算法設計是成功的。在此基礎上,我們可以進行更多情況下的計算,以展示更多的衍射情況。例如,如果把圓孔的半徑r改為1μm,5μm和20μm,所得的衍射圖依次如下。圓孔對光的衍射的計算結果強度平面分布圖(r=1μm)圓孔對光的衍射的計算結果強度平面分布圖(r=5μm)圓孔對光的衍射的計算結果強度平面分布圖(r=20μm)由圖可知,隨著圓孔孔徑變大,衍射圖中的中心亮斑直徑越來越小,在視野可見范圍內的光環將越來越多,而在孔徑很小的情況下,沒有亮暗分界。通過改變半徑,理論上可以得出想要的衍射圖形,如果通過實驗去做,克服一些困難是能夠做得出的,但是實驗成本會很高,如果用計算的方法來獲取所需要的衍射圖形,成本會大大降低,僅需要一些時間罷了。如果想要得到更光滑的圖,可以通過增加衍射屏上取樣點的數目和接收屏上取樣點的數目。三角形孔衍射的計算與可視化接著進行計算單個正三角形孔所形成的衍射圖,三角形孔的形狀如圖11所示,設三角形的邊長為r,中心到頂點的長度為r1。單個三角形孔單個三角形孔衍射的難點是透過函數設計。我們采用以下方法:寫出三個邊的直線方程,形式為y=kx+b。我們按照逆時針方向研究,規定Ⅰ﹑Ⅱ﹑Ⅲ﹑象限的邊分別對應“一號邊”“二號邊”﹑“三號邊”。三角形區域內的點{x,y},需要滿足以下條件y<kx+b,對應一號邊y>kx+b,對應二號邊y<kx+b,對應三號邊根據這些條件,就容易設計透過函數了。單個三角形孔的衍射的程序代碼如圖12所示單個三角形孔的程序代碼單個三角形孔衍射的計算結果強度平面分布如圖13所示單個三角形孔衍射的計算結果強度平面分布對程序解釋如下:(1)變量p儲存了三角形的3個頂點坐標,為了滿足求3個邊方程的需要,將第一個點復制一份追加到p的末端,p包含了4個點。(2)衍射屏取的是矩形,寬為r,高度從底邊到三角形的頂點。(3)變量line儲存了三條邊的方程表達式,它的元素為y-kx-b。程序運行的結果見Out[13],衍射圖是六角結構,有個亮度突變的界限,這是很引人注目的。因為衍射圖與孔的尺寸有關,下面兩圖展示的邊長r=20μm和r=30μm的衍射圖,是復雜和對稱的六角結構。這些圖也同樣顯示:限制越大衍射越寬。單個三角形孔的衍射圖(r=20μm)如圖14所示單個三角形孔的衍射圖(r=20μm)單個三角形孔的衍射圖(r=50μm)如圖15所示單個三角形孔的衍射圖(r=50μm)單個矩形孔衍射的計算與可視化下面計算單個正方形孔所形成的衍射圖,正方形的邊長為10μm.程序沒有定義u函數,因為取樣點全部局限在孔內,幅度為1。單個矩形孔的衍射的程序代碼如圖16所示單個正方形孔的衍射的程序代碼單個矩形孔的衍射的計算結果強度平面分布如圖17所示單個正方形孔的衍射的計算結果強度平面分布單個矩形孔的衍射的程序代碼如圖18所示單個矩形孔的衍射的程序代碼把透光屏改為矩形孔,孔的尺寸改為20μm×10μm。衍射結果見下圖,圖形不再是四個方向對稱分布,而是受限制較大的y方向擴展的更遠,相比之下,x方向好像被擠壓了一下。單個矩形孔的衍射的計算結果強度平面分布如圖18所示單個矩形孔的衍射的計算結果強度平面分布圖多個矩形孔衍射的計算與可視化接著來計算多個矩形孔規則排列形成的衍射屏的衍射圖。衍射屏的形狀如圖20所示,黑色部分是不透光的。每個矩形孔的尺寸都標在圖上。這樣便于計算每個矩形的中心坐標。在下面的計算中,矩形取為正方形,其他情況,可以改變參數進行計算。矩形孔組成的衍射屏在程序中,p是各個矩形中心點的坐標,其原始形式為{{{x1,y1},{x2,y2},…},{…}}為方便下面的計算,用函數Flatten[p,1]將它“壓平”,變成由點{xi,yi}組成的一個表{{x1,y1},{x2,y2},…}并測量了它的長度。取樣還是在一個矩形內進行,因此,U函數在定義時就需要將各個矩形包括進去,出現了雙重求和。多個矩形孔的衍射的程序代碼如圖21所示多個矩形孔的衍射的程序代碼多個矩形孔的衍射的計算結果強度平面分布如圖22所示多個矩形孔的衍射的計算結果強度平面分布圖程序運行結果見Out[10],圖22中是中間較粗的十字線形狀,周圍還有小的十字形狀亮線,并且這些亮線在交叉的地方更亮。圖22中得十字形狀和我們透過布或者紗窗觀察遠處的燈光看到的結果類似,多孔布可以顯示衍射現象便得到證明。同時還要注意到,圖上的橫線和豎線都有些向著中心彎曲,并非平直的線。當然,也可以認為那不是線,而是一些分立的點,只不過這些點的排列沿著線罷了。結論在波動光學衍射的教學中,若用Mathematica軟件模擬符號計算系統對教學過程進行輔助,便于直接觀察和理解。我們用Mathematica軟件模擬符號計算系統得出了圓孔、三角形孔、矩形孔等衍射圖。減少了實驗成本,獲得了模擬圖。在Mathematica軟件的輔助下對波動光學的衍射計算分析,我們發現在研究過程將積分過程轉化為求和過程,大大的加快了計算速度。本文研究了標量場的衍射過程,但由于水平有限,時間緊迫。暫時還沒有對矢量場的衍射理論進行深入的研究,還存在部分問題在短期內無法解決。期望在畢業以后參加工作的研究中進一步研究矢量衍射理論。

參考文獻任庭準,劉翠紅.菲涅耳衍射的數值計算[J].大學物理,2007(11):60-63.樊東紅,黃瑪莉,柳繼峰.利用Mathematica研究類圓孔和類圓環的夫瑯和費衍射[J].河南師范大學學報(自然科學版),2008(04):80-82.張鷹.波動光學的另一種講授方法──從衍射到干涉[J].江蘇廣播電視大學學報,1995(04):74-77.李江,彭群生.一個基于波動光學的光柵衍射光照模型[J].自然科學進展,1998(03):3-5.賈民力.基于Mathematica的矩形口徑輻射場的仿真研究[J].青海師范大學學報(自然科學版),2008(04):30-32.王瑩,詹看.巧用Mathematica系統處理普通物理實驗數據[J].上海電力學院學報,2010,26(04):406-409.陳學文,羅源源,張家偉,姚雪.光的衍射的理論分析及Mathematica仿真模擬[J].西南師范大學學報(自然科學版),2018,43(11):156-161.陶傳義,李靖柯.Mathematica圖像在信息光學中的應用[J].中國科技信息,2014(Z2):29.楊坤.利用Mathematica研究紗窗網孔的Fraunhofe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論