陳順芳,徐四六
(湖北科技學(xué)院 電子與信息工程學(xué)院,湖北 咸寧 437100)
MATLAB是MATrixLABoratory的縮寫,是一款由美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件[1].其是一種集算法開發(fā)、數(shù)據(jù)分析、數(shù)值計算、數(shù)據(jù)可視化的高級計算語言.MATLAB不僅具有繪制函數(shù)、矩陣運算、數(shù)據(jù)圖像等常用功能,而且具有創(chuàng)建用戶界面與方便地調(diào)用其它語言(包括C,C++和FORTRAN)編寫的功能.
Matlab具有功能強大且界面友好的特點,使用者只需要使用Matlab的一些簡單易懂的指令便可以迅速得到想要的結(jié)果;Matlab的幫助功能非常強大,各種命令有圖文范例和詳細(xì)講解,使用者能夠快速地查詢各種指令的用法[2].同時,Matlab可以簡便的創(chuàng)建圖形界面,創(chuàng)建按鈕和圖形的連接,設(shè)置各種輸入?yún)?shù)而改變數(shù)據(jù),從而更好地觀察圖形,動畫的變化規(guī)律.物理學(xué)是一門實驗性科學(xué),我們可以構(gòu)建物理模型,利用Matlab的繪圖、計算、動畫、聲音、等功能來模擬物理實驗現(xiàn)象;教師可以通過Matlab演示物理實驗過程,從而來更好地解釋物理現(xiàn)象和物理規(guī)律;學(xué)生可以利用虛擬的實驗平臺探究各種情境實驗.利用Matlab能 使復(fù)雜的物理實驗可以在計算機中體現(xiàn),學(xué)生不必進行具體的實驗操作,可以將具體問題抽象化,加深學(xué)生對物理現(xiàn)象和規(guī)律的理解,提高實驗教學(xué)的效率,并且能充分挖掘?qū)W生的想象力,培養(yǎng)學(xué)生的智力.
2.1.1 雙光束干涉
圖(1)雙縫干涉原理圖(左)和雙縫干涉圖模擬圖(右)
雙光束干涉,按照分波面可以分為楊氏干涉、勞埃鏡干涉、菲涅爾雙棱鏡和雙面鏡干涉等,按分振幅可分為麥克爾遜干涉等.圖1(左)所示的是楊氏雙縫干涉裝置:
現(xiàn)在對雙縫干涉條紋的位置做定量分析,假設(shè)S1與S2之間的距離為d,到屏幕的距離為r0,NP0是S1,S2的中垂線.在屏幕上任取一點P,設(shè)P點離P0的距離為x,P點到S1,S2距離分別為r1,r2,<PNP0=θ.在實驗中,一般認(rèn)為r0>>d,θ很小,所以從S1與S2兩線縫發(fā)出的光到達P點的光程差為
當(dāng)P點到雙縫的波程差為波長的整數(shù)倍時,P點處將出現(xiàn)明條紋.其中k為干涉級,k=0的明條紋為零級明紋或中央明紋,k=1,2,…對應(yīng)的明條紋分別成為第一級、第二級……明紋.若P點到雙縫的光程差為半波長的奇數(shù)倍時,P點處出現(xiàn)暗條紋,k=1,2,… 稱為第一級、第二級……暗紋.波程差為其他的各點,光強介于明暗之間.因此可以在屏幕上看到明暗相間的穩(wěn)定的干涉條紋.由計算可得,明條紋中心在屏上的位置為:
暗條紋的中心位置為:
兩個相鄰的明紋或者暗紋之間的距離為(即條紋間距)均為:
菲涅爾雙棱鏡、菲涅爾雙面鏡和勞埃鏡等的干涉花樣分布,都與此類似.兩相干光源到接收屏上P點距離r1=(D2+(y-a/2)2)1/2,r2=(D2+(y+a/2)2)1/2,相位差Φ=2π(r2-r1)/λ,光強I=4I0cos2(Φ/2).
編寫程序如下:
clear lam=500e-9;a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n);for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2);r2=sqrt((ys(i)+a/2).^2+D^2);phi=2*pi*(r2-r1)./lam;B(i,:)=sum(4*cos(phi/2).^2);end N=255;Br=(B/4.0)*N subplot(1,2,1);image(xs,ys,Br);colormap(gray(N));subplot(1,2,2);plot(B,ys)
通過編寫Matlab程序,在計算機上運行得到雙縫干涉圖模擬圖1(右).從圖中我們可以看到雙縫干涉實驗中,干涉條紋的等距性,條紋的強度明暗相間的變化規(guī)律.圖中顯示的結(jié)果與實驗結(jié)果一致表明,一方面驗證了光的波動理論的正確性,另一方面也體現(xiàn)了計算機模擬的本質(zhì)和特征.
2.1.2 平面光柵衍射
由大量的等間距、等寬度的平行狹縫組成的光學(xué)元件成為衍射光柵.用于在透射光衍射的叫投射光柵,用于反射光衍射的叫做反射光柵.常用的投射光柵是在一塊玻璃片上刻畫出許多等間距、等寬度的平行刻痕,刻痕出相當(dāng)于毛玻璃而不易透光,刻痕之間的光滑部分可以透光,相當(dāng)于一個單縫,縫的寬度a和刻痕的寬度b之和,即a+b之 和成為光柵常數(shù).平行單色光垂直照射在光柵上交,由光柵出射的光線經(jīng)過透鏡L后,會聚與屏幕E上.
設(shè)光柵有N條狹縫,透鏡焦距為f',理論分析可得到,夫瑯禾費衍射的光屏上任意一點P的光強為
式中β=πdsinθ/λ,上式的前一部分與單縫衍射的強度相同,它來源于單縫衍射,是整個衍射圖樣的輪廓,稱為單縫衍射因子.后一部分分?jǐn)?shù)可以改寫如下:因為dsinθ=δ為相鄰兩縫對應(yīng)點到達觀察點的光程差,這個光程差所引起的相位差為φ=2πdsinθ/λ=2β,光強分布公式的分?jǐn)?shù)部分來源于縫間干涉,叫做縫間干涉因子,可寫為
可見光柵衍射的光強是單縫衍射因子和縫間干涉因子的乘積,即單縫衍射因子對干涉主最大起調(diào)制作用.
對于一定的波長來說,根據(jù)dsinθ=jλ(j=0,±1,±2,…),可知各級譜線之間的距離有光柵常量d決定,各級譜線的強度分布將隨著b與d的比值的變化而變化.由
不難決定各主最大值的振幅分布,把由光柵方程決定的sinθ的值代入上式,得到j(luò)級譜線的振幅為
關(guān)于上面論述的知識點,我們所學(xué)的教材只能給出了平面光柵衍射強度分布曲線,僅由光柵衍射此強度函數(shù)曲線圖,讀者還是會感覺到抽象,難以對此現(xiàn)象形成更為直接的直觀印象,特別是平面光柵衍射中涉及的缺級現(xiàn)象更加難以理解,本文運用Matlab編寫相應(yīng)的程序,對此物理現(xiàn)象進行模擬.從圖(2)我們可以看到:
(1)圖樣中出現(xiàn)一系列最大值和最小值,主最大兩線較寬,次最大兩線較弱.(2)主最大寬度隨著N的增大而減小,其強度正比于N2,但位置與縫數(shù)N無關(guān).(3)相鄰主最大之間有N-1條暗紋和N-2個次最大.(4)強度分布中曲線的包跡與單縫衍射強度曲線一樣.光柵衍射條紋,表面是單縫衍射和縫間干涉的共同結(jié)果.
圖中顯示的結(jié)果與實驗結(jié)果基本一致,驗證了光的波動理論的正確性.因此,通過MATLAB軟件編程對衍射過程進行仿真,可以使光柵衍射現(xiàn)象和規(guī)律直觀地表現(xiàn)出來.
大學(xué)物理實驗的數(shù)據(jù)處理,常用一些粗略處理數(shù)據(jù)的方法:列表法,作圖法,逐差法.在實驗精度要求不高的普通物理實驗中,我們經(jīng)常要用到.而對于最小二乘法,若使用計算器的統(tǒng)計功能來計算,將會出現(xiàn)計算量大、按鍵錯誤、不方便核查校對,并且耗時費力的缺點,因此一般較小被采用[2].相對于前面幾種數(shù)據(jù)處理方法,Matlab軟件是集數(shù)值、符號運算及圖形處理、程序語言設(shè)計等強大功能于一體的科學(xué)計算語言.用Matlab處理實驗數(shù)據(jù)僅需編寫幾行簡練程序,運行后就可得到所需的結(jié)果.應(yīng)用它,一方面能較準(zhǔn)確地標(biāo)記實驗數(shù)據(jù)點和繪出擬合曲線,另一方面可以克服了最小二乘法計算量大、繁瑣、枯燥的數(shù)值計算[3],并且其運行結(jié)果可用復(fù)制、粘貼,可以在其它文字編輯軟件運行,圖形可用File菜單中“export”命令保存為常用類型的圖形文件[4-6].
下面我們以復(fù)擺實驗為例,介紹用Matlab實現(xiàn)最小二乘法處理實驗數(shù)據(jù)的方法.
把一根鉆有一系列小圓孔的扁平金屬棒掛在一固定的三棱柱刀口上,做幅角θ<5o的擺動,這就是復(fù)擺.用米尺分別測出支點0到棒的端點的間距、棒的質(zhì)心C,求出支點到擺的質(zhì)心C的距離h,用周期測定儀測出復(fù)擺振動20次的全振動時間,求出復(fù)擺的振動周期T,實驗數(shù)據(jù)列于表一,復(fù)擺的振動周期公式為
式中k為復(fù)擺對過質(zhì)心且垂直于棒的軸的回轉(zhuǎn)半徑,g為重力加速度,我們選用的復(fù)擺實驗數(shù)據(jù)如下表:
表一:復(fù)擺實驗數(shù)據(jù)
為實現(xiàn)最小二乘法直線擬合實驗數(shù)據(jù),將曲線方程式改寫
根據(jù)上述物理模型及數(shù)學(xué)模型,用Matlab語言編寫程序,保存之后再運行之,分別得到下列結(jié)果:
(1)擬合直線的斜率:截距b=4.0337(1/m.s2),a=0.3501(m.s2)
(2)擬合直線的相關(guān)系數(shù):r=1.00135.
(3)擬合直線的斜率,截距的標(biāo)準(zhǔn)偏差:Sb=0.0124(1/m.s2),Sa=0.00133(m.s2).
(4)重力加速度及其標(biāo)準(zhǔn)偏差:g=9.8345(m.*1/s2),Sg=0.03121(m.1/s2).
(5)回轉(zhuǎn)半徑:k=0.30123(m),Sk=0.73246(mm).
(6)y-x圖上的擬合直線,如圖11所示,圖中的“*”表示實驗數(shù)據(jù)點,實線表示擬合直線.
圖(3)y -x 擬合直線圖
用Matlab軟件處理復(fù)擺實驗數(shù)據(jù),只需打開保存的編輯好了的文件,在該文件中把原來實驗數(shù)據(jù)修改為新的實驗數(shù)據(jù),立刻可得到新的實驗結(jié)果、實驗圖線和擬合曲線,作圖清晰,準(zhǔn)確性高,即輸即得,一目了然.另外,只要對該文件稍作修改,即可成為用最小二乘法處理其它實驗項目的實驗數(shù)據(jù)的新M命令文件.
文章通過雙光束干涉實驗、平面光柵衍射實驗,以及復(fù)擺的振動實驗來研究MATLAB在大學(xué)物理實驗中的應(yīng)用.研究表面,在物理實驗教學(xué)中,應(yīng)用MATLAB實驗仿真系統(tǒng),可以為學(xué)生提供一個良好的實驗平臺,其既能激發(fā)學(xué)生興趣,開發(fā)學(xué)生的智能,提高實驗課效果,同時讓學(xué)生了解計算機模擬的本質(zhì).
[1]張志通.精通Matlab6[M].(5版)北京:北京航天大學(xué)出版社,2003.
[2]羅興垅,羅穎.Matlab軟件在物理實驗數(shù)據(jù)處理中的應(yīng)用[J].贛南師范學(xué)院學(xué)報,2004,(3).
[3]韓敬,鐘方川,李林.Matlab在大學(xué)物理實驗數(shù)據(jù)處理中的應(yīng)用[J].大學(xué)物理實驗,2008,21(1).
[4]張永鋒,潘穎.MATLAB在物理實驗數(shù)據(jù)處理中的應(yīng)用[J].安徽技術(shù)師范學(xué)院學(xué)報,2003,17(3):259 ~261.
[5]徐四六,賀平.大學(xué)物理實驗教學(xué)改革的探究與實踐[J].咸寧學(xué)院學(xué)報,2007,27(3).
[6]陳順芳,徐四六.光電信息實驗,實踐平臺構(gòu)建的探究[J].咸寧學(xué)院學(xué)報,2011,31(6).