李玉波,徐志宏
(國防科學技術大學,湖南長沙 410072)
光學實驗數值仿真的三種方法及MATLAB實現
李玉波,徐志宏?
(國防科學技術大學,湖南長沙 410072)
基于科學計算軟件MATLAB的可視化功能,利用光強分布、光的量子性和波動性的物理原理,采用三種數值方法對幾個重要的光學實驗進行計算機仿真模擬,得到了與實驗圖像一致的計算結果。教學實踐表明在實驗課中加入MATLAB仿真圖像和動畫,將對光學實驗教學起到一定的啟發(fā)促進作用。
MATLAB;光學實驗;蒙特卡洛;數值仿真;可視化
MATLAB(Matrix Laboratory——矩陣工作室)是美國MathWork公司出品的商業(yè)數學軟件,其主要功能包括數值計算、符號計算、圖形圖像處理等。與其它一些仿真軟件相比MATLAB簡單易學,人機交互性強,具有強大的圖形處理能力和可視化功能,可將抽象的數學表達式以易于理解的可視化形式展現。
光學實驗是大學物理實驗中非常重要的基礎性實驗之一,但其概念難懂,所使用的儀器也較昂貴。利用MATLAB軟件對光學實驗進行模擬仿真,不僅可以減少和避免貴重實驗儀器的損傷,還可通過仿真實驗過程將抽象難懂的光學概念和規(guī)律直觀展現在學生面前,提升教與學的效果。此外,在數值仿真軟件中,通過改變模擬參數,如波長,還可突破實驗儀器對教學和實驗內容的限制,對相關理論的概念和內涵進行擴展和延伸[1]。目前最常用的模擬方法是通過光強分布解析表達式仿真[1-2],但實驗的參數調節(jié)較為麻煩,利用MATLAB制作的模擬系統(tǒng)GUI就能很好地解決實驗參數實時調節(jié)的問題.此外還可利用蒙特卡洛方法[3-4]、基于惠更斯原理[1,5-7]等方法進行光學實驗模擬。
下面以實驗室中較難測量的光的衍射為例介紹幾種光學實驗數值模擬的方法,以及其在MATLAB中的實現。
對于計算機模擬來說,不同衍射僅有光強分布的不同,其余模擬過程相同.這里只對部分夫瑯禾費衍射做出討論.以單縫衍射為例,如圖1,設入射光與光軸平行,縫寬為a,可得光程差和相位差分別為
圖1 夫瑯禾費單縫衍射
根據衍射矢量圖分析,設I0為中央亮斑中心處的光強,則單縫衍射的光強分布公式為
其中,u=δ/2=πa sinθ/λ,θ為衍射角.
同理可得到圓孔衍射的光強分布為
其中 J1(x)為一階貝塞爾函數,x= 2πa sinθ/λ,a是圓孔的半徑,θ是衍射角.
矩孔衍射的光強分布為
其中a、b為矩孔的長寬,f為衍射屏與接收屏之間的距離[5].上述(1)、(2)、(3)式為模擬的基礎.
以圓孔衍射為例,利用解析表達式(1-2)直接計算出接收屏上的光強分布I.應用MATLAB的image()函數和plot()函數分別對光強變量I進行作圖,可以得到用顏色區(qū)間和曲線描繪的光強分布.運行結果如下
圖2 利用解析表達式直接繪制的圓孔衍射的光強分布
對于其它的光學實驗,利用光強分布的解析表達式,也可進行相應的模擬。為了增強數值模擬的可交互性,使學生更好地了解參數對光學實驗的影響,我們編制了光學實驗模擬系統(tǒng),將實驗模擬的結果用GUI(圖形用戶界面)顯示。為方便用戶知道每個實驗對應的參數并對其做出調整,程序中將所有實驗參數都呈現在面板上,但同時設置針對某一實驗,只有其用到的參數才顯示活動滑動條和可編輯文本框。
圖3 光學實驗模擬系統(tǒng)
圖3所示GUI是對包括白光在內的十個光學實驗(單色光和白光的楊氏雙縫干涉、邁克爾遜干涉、牛頓環(huán)、單縫衍射、圓孔衍射)的部分模擬結果。
以矩孔衍射為例,(1-3)式給出了接收屏上的光強分布,由光子的波粒二象性,可以將其光強分布理解為光子在接收屏上相應位置出現的相對概率。得到概率分布后,用舍取法進行抽樣[3]。
抽樣過程:
(1)由乘同余法產生一組在接收屏范圍內均勻分布的隨機點的坐標(x,y),將坐標代入光強分布表達式(1-3)中,計算出此處光子出現的幾率。
(2)用同樣的方法產生一個[0,1]之間均勻分布的隨機數f。
(3)如果條件
I(x,y)?Im·f(Im:接收屏范圍內光強的最大值) (3-1)
滿足,則該組隨機坐標(x,y)為按光強公式(1-3)分布的抽樣值。若不滿足,則舍去此組(x, y)。
(4)不斷重復上述過程,直到產生的抽樣數達到預先設定值為止。
可視化實現:每產生一組滿足條件的坐標,就在計算機屏幕相應位置上繪制一個小黑點。當抽樣值逐漸增加,繪制的黑點逐漸增多,可以直接顯示正確的衍射圖樣.同理可對圓孔夫瑯禾費衍射、單縫衍射等實驗進行仿真.如圖4所示,給出了有效抽樣值總數為20 000(即衍射圖樣由20 000個小黑點組成)的模擬結果。
圖4 蒙特卡洛方法模擬的衍射圖樣
以單縫衍射為例,如圖1,由惠更斯原理可將單縫看成等間隔光源,設共有NP個光源分布在AB區(qū)間內,則接收屏上任一點p處的光強為NP個光源照射結果的合成[5]。設第i個光源離A點的距離是xpi,則其與A點光源的光程差為
令α=δ/2,取單縫上NP個光源的振幅都為1,在x,y軸上的分量各為cosα,sinα,合振幅的平方為
相對光強為
根據上述思想,可編寫程序對此實驗進行模擬,結果如下
圖5 基于惠更斯原理模擬的單縫衍射
(1)數值模擬結果表明三種方法都能對光學實驗現象進行正確地仿真,因此在課堂教學中適當應用這種仿真模擬,將光學實驗中復雜的數學表達式以一種直觀形象的方式展示出來,對教學效果的提高將有很大的幫助。
(2)三種模擬方法在教學實踐中各有所長.利用光強分布解析表達式直接繪制光強的方法最簡單直接,但其對光學現象的本質沒有討論,對學生理解實驗原理幫助不大;蒙特卡洛方法利用光子的量子特性,采用隨機方法模擬隨機事件,把握了光子的物理本質,但相對其它兩種方法程序運行比較耗時;基于惠更斯原理的數值模擬則以光的波動性作為出發(fā)點,程序實現簡單,運行速度也很快。
(3)通過多種方法對同一物理現象的數值仿真,不僅有助于學生對抽象概念的掌握,激發(fā)并拓展學生的創(chuàng)新性思維,并且可以培養(yǎng)學生用計算機進行學習和研究問題的能力。
[1] 師青梅,常宇.MATLAB仿真技術在大學物理光學實驗教學中的應用[J].中國電力教育,2012(15): 78-79.
[2] 彭芳麟.計算物理基礎[M].北京:高等教育出版社,2010.
[3] 付文羽,彭世林,彭昌寧.夫瑯禾費衍射的計算機模擬[J].許昌師專學報,2001,21(5):6-7.
[4] 徐鐘濟.蒙特卡羅方法[M].上海:上海科技出版社,1985.
[5] 鈔曦旭,楊萬民,唐純青.MATLAB及其在大學物理課程中的應用[M].西安:陜西師范大學出版社,2006.
[6] 張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天出版社,2006.
[7] 徐斌,李光明.Poly Flow在聚合物熔體壓力流動教學中的應用[J].大學物理實驗,2014,3(1).
Three M ethods and MATLAB Realization of Numerical Simulation for Optical Experiments
LIYu-bo,XU Zhi-hong
(National University of Defense Technology,Hunan Changcha 410072)
Based on the visualization of scientific computing software MATLAB,the use of physical principles of light intensity distribution,quantum and volatility of light,using three numericalmethods in several important optical experiments by computer simulation,the calculation results has been consistent with the experimental image,the teaching practice shows that the addition MATLAB simulation images and animations in the experimental class,will play some inspired role for optical experiments teaching.
MATLAB;optical experiments;Monte Carlo;numerical simulation;visualization
O 4-39
A
10.14139/j.cnki.cn22-1228.2015.005.029
1007-2934(2015)05-0102-04
2015-05-05
?通訊聯系人