- 相關(guān)推薦
淺談使用Matlab軟件作為計(jì)算物理教學(xué)平臺(tái)的優(yōu)勢(shì)
淺談使用Matlab軟件作為計(jì)算物理教學(xué)平臺(tái)的優(yōu)勢(shì)
文林,邱旭
。ㄖ貞c師范大學(xué)物理與電子工程學(xué)院,重慶401331)
摘要:Matlab為數(shù)值計(jì)算提供了大量功能強(qiáng)大的應(yīng)用工具箱,使數(shù)值計(jì)算變得更加的高效。作為數(shù)值計(jì)算的軟件平臺(tái),Matlab在計(jì)算物理教學(xué)中的應(yīng)用能降低學(xué)生學(xué)習(xí)計(jì)算物理的難度,提高學(xué)生對(duì)計(jì)算物理的學(xué)習(xí)興趣。
關(guān)鍵詞:Matlab;計(jì)算物理;線性方程;BCS理論
一、引言
計(jì)算物理是伴隨著計(jì)算機(jī)的出現(xiàn)和發(fā)展而逐步形成的物理學(xué)科,是運(yùn)用計(jì)算機(jī)對(duì)所要研究的復(fù)雜物理問題進(jìn)行數(shù)值計(jì)算或模擬實(shí)驗(yàn),并從中探索和發(fā)現(xiàn)新的物理規(guī)律。因此,計(jì)算物理是物理、數(shù)學(xué)和計(jì)算機(jī)三者相結(jié)合的產(chǎn)物[1]。在當(dāng)今的物理學(xué)各個(gè)分支領(lǐng)域,大量物理問題的求解都離不開計(jì)算機(jī)的輔助。可以說,計(jì)算物理的發(fā)展對(duì)物理學(xué)起著重要的推動(dòng)作用。
在高等教育中,許多高校都為物理學(xué)專業(yè)本科生開設(shè)了計(jì)算物理課程。通過對(duì)該門課程的學(xué)習(xí),學(xué)生可掌握許多科學(xué)計(jì)算中所應(yīng)用的方法與技術(shù),培養(yǎng)他們對(duì)科研的興趣,并為將來開展科學(xué)研究和應(yīng)用打下良好的基礎(chǔ)。然而,對(duì)于大學(xué)本科生來說,在計(jì)算物理的學(xué)習(xí)中存在著許多的困難。首先,計(jì)算物理課程通常涉及較為復(fù)雜的數(shù)學(xué)知識(shí),如線性代數(shù)、偏微分方程等。在傳統(tǒng)的計(jì)算物理教學(xué)中,大部分教師把數(shù)值計(jì)算方法和原理作為教學(xué)重點(diǎn)和難點(diǎn),使得高等數(shù)學(xué)知識(shí)基礎(chǔ)較差的學(xué)生學(xué)習(xí)起來較為困難[2]。另一方面,計(jì)算物理課程的教學(xué)離不開計(jì)算軟件。在早期的教學(xué)過程中,大部分教師都以Fortran作為軟件平臺(tái)進(jìn)行程序的編寫,要求學(xué)生具有較強(qiáng)的編程能力。但學(xué)生通常很難掌握和應(yīng)用復(fù)雜的Fortran語言,使得計(jì)算物理教學(xué)過程中存在教與學(xué)的難度,降低了學(xué)生學(xué)習(xí)的效率[3]。隨著科學(xué)的進(jìn)步,許多新型計(jì)算軟件的誕生為計(jì)算物理教學(xué)和學(xué)生的學(xué)習(xí)提供了便利,最為典型的就是Matlab軟件在計(jì)算物理教學(xué)中的應(yīng)用。
Matlab是美國MathWorks公司所開發(fā)的商業(yè)數(shù)學(xué)軟件,其全稱為Matrix Laboratory,意為矩陣實(shí)驗(yàn)室。
Matlab的主要功能包括數(shù)值分析、數(shù)字圖像處理、數(shù)字信號(hào)處理、工程與科學(xué)繪圖和通訊系統(tǒng)設(shè)計(jì)與仿真等[4]。與其他數(shù)值計(jì)算軟件相比,Matlab的優(yōu)勢(shì)主要體現(xiàn)在如下幾方面:(1 )Matlab為用戶提供了高效的數(shù)值計(jì)算和符號(hào)計(jì)算功能,特別是在處理矩陣方面具有明顯的優(yōu)勢(shì);(2)Matlab在編程語言上較為簡(jiǎn)單,語法結(jié)構(gòu)更加接近人們常用的數(shù)學(xué)表達(dá)習(xí)慣,提高了編程效率。最重要的是,Maltab內(nèi)嵌了許多功能強(qiáng)大的應(yīng)用工具箱,為用戶提供了大量方便且實(shí)用的處理工具,使得一些煩瑣的數(shù)值計(jì)算過程能用單個(gè)簡(jiǎn)單的命令代替;(3)Matlab具有完美的圖像處理功能,讓復(fù)雜的計(jì)算結(jié)果變得可視化。因此,如果將Matlab作為計(jì)算物理教學(xué)的軟件平臺(tái),將有效地改變學(xué)生學(xué)習(xí)計(jì)算物理困難的現(xiàn)狀,提高學(xué)生學(xué)習(xí)積極性的同時(shí),也能降低高校教師的教學(xué)難度。本文將通過一些計(jì)算物理實(shí)例,進(jìn)一步分析Matlab軟件作為計(jì)算物理教學(xué)平臺(tái)的優(yōu)勢(shì)。
二、Matlab在求解線性方程組中的應(yīng)用
在物理學(xué)中,許多實(shí)際物理問題可用線性方程組來描述,如電學(xué)網(wǎng)絡(luò)、分子振動(dòng)、應(yīng)力分析等問題,而這些線性方程組又可用轉(zhuǎn)化成如下的矩陣形式AX=B其中X=(x1,x2,…,xN)為未知數(shù)所構(gòu)成的N×1矩陣,A為N×N的系數(shù)矩陣,而B為N×1矩陣。如果矩陣A是非奇異矩陣,則方程組的解為X=A-1B。所以,非線性方程組的求解轉(zhuǎn)變?yōu)榍竽鍭-1。在線性代數(shù)中,矩陣的逆A-1=A*/|A|,這里A*為伴隨矩陣。|A|為矩陣的行列式。如果利用標(biāo)準(zhǔn)的線性代數(shù)方法求N×N矩陣A的行列式值[5],則必須要計(jì)算N!個(gè)乘積。對(duì)于較小的矩陣來說,通?衫煤(jiǎn)單的數(shù)學(xué)公式求解行列式。當(dāng)N較大時(shí),盡管理論上仍然可以運(yùn)用線性代數(shù)公式進(jìn)行計(jì)算,但計(jì)算量非常大。以N=20的矩陣為例,如果我們的計(jì)算機(jī)每秒可做1010次運(yùn)算,那么計(jì)算該矩陣的行列式要花費(fèi)大約為7.7年的時(shí)間。這說明,在實(shí)際的數(shù)值計(jì)算中,不能用標(biāo)準(zhǔn)的線性代數(shù)公式做計(jì)算。此外,伴隨矩陣A*的求解在數(shù)值上也不太容易實(shí)現(xiàn)。
Matlab為我們提供了一個(gè)計(jì)算矩陣行列式的命令———det。該命令所使用的算法為高斯消去法,其基本思想是將矩陣化為上三角或下三角矩陣,然后將對(duì)角元素相乘即可得到矩陣的行列式。我們以N=20的隨機(jī)矩陣為例,發(fā)現(xiàn)計(jì)算該矩陣的行列式所需要的時(shí)間約為5×10-5秒。由此可見,Matlab所提供的命令det在計(jì)算行列式時(shí),既高效又簡(jiǎn)單。特別的,基于高斯-約當(dāng)消去法,Matlab也為我們提供了計(jì)算矩陣逆的命令———inv。因此,學(xué)生在利用這些命令求解線性方程組時(shí),不僅可以節(jié)省計(jì)算量,而且還可以避免編寫高斯消去法和高斯-約當(dāng)消去法時(shí)所涉及的煩瑣程序。
三、Matlab求解非線性方程的應(yīng)用舉例
在日常生活中,許多現(xiàn)象在理論上可用一些復(fù)雜的非線性方程或方程組來描述。通過求解這些非線性方程,可以深入研究這些現(xiàn)象背后所隱藏的物理規(guī)律。非線性方程的求解沒有簡(jiǎn)單的求根公式,必須借助數(shù)值計(jì)算方法進(jìn)行近似求解。對(duì)于單個(gè)非線性方程的求解,常用的數(shù)值方法有區(qū)間對(duì)分法、迭代法、搜索法及牛頓迭代法[1]。盡管這些方法能夠有效地求解非線性方程,但在實(shí)際的應(yīng)用中,學(xué)生很難直接利用這些算法求解較為復(fù)雜的非線性方程或方程組。Matlab為我們提供了一個(gè)求解非線性方程或方程組的命令———fsolve,該命令主要采用最小二乘法來求解非線性方程[1],其用法比較簡(jiǎn)單,學(xué)生容易學(xué)習(xí)和掌握。
為了說明利用Matlab求解非線性方程的優(yōu)勢(shì),我們以BCS超導(dǎo)理論中的能隙方程和粒子數(shù)方程為例,其基本形式如下:
這里為as原子相互作用的s波散射長度,kF為費(fèi)米動(dòng)量,配對(duì)序參量Δ和化學(xué)勢(shì)μ需要自洽求解。該方程組為非線性方程組,可以通過牛頓迭代法進(jìn)行求解。牛頓迭代法的基本思想是,將兩個(gè)方程在初始值附近用二元泰勒級(jí)數(shù)做展開,并取線性部分,可得到求解方程時(shí)所需要的迭代格式[1]。然而,牛頓迭代法在每一步迭代的過程中都需要計(jì)算一次雅可比行列式。對(duì)于較為復(fù)雜的非線性方程組而言,雅可比行列式的求解較為困難,程序編寫過程比較復(fù)雜,以至于學(xué)生在編程過程中容易出現(xiàn)錯(cuò)誤。如果直接利用Matlab的fsolve命令,則可有效避地免該問題。以下是利用fsolve求解配對(duì)序參量和化學(xué)勢(shì)的Matlab程序:
作為例子,我們利用上述程序展示配對(duì)序參量和化學(xué)勢(shì)隨相互作用強(qiáng)度的變化(見圖1)。由此可見,以Matlab作為平臺(tái),利用fsolve求解非線性方程組時(shí),可使學(xué)生從煩瑣的數(shù)值算法推導(dǎo)及編程過程中解脫出來,將精力更多地投入到物理問題的分析中。
四、總結(jié)
以線性和非線性方程的求解為例,我們說明了Matlab在計(jì)算物理教學(xué)中的優(yōu)勢(shì)。通過利用Matlab所提供的數(shù)值計(jì)算工具箱,可降低學(xué)生學(xué)習(xí)計(jì)算物理的難度,為計(jì)算物理教學(xué)提供便利。
參考文獻(xiàn):
[1]馬文淦。計(jì)算物理學(xué)[M].北京:科學(xué)出版社,2005.
[2]李曉莉,張建飛。計(jì)算物理的教學(xué)改革研究與實(shí)踐[J].物理通報(bào),2010,(8 ):57.
[3]彭芳麟,梁穎,忻蓓。計(jì)算機(jī)軟件在計(jì)算物理課程中的地位和作用[J].大學(xué)物理,2013,32(8):6.
[4]張志涌。精通Matlab[M].北京:北京航空航天大學(xué)出版社,2011.
[5]葉其孝,沈永歡。實(shí)用數(shù)學(xué)手冊(cè)[M].第2版?茖W(xué)出版社,2006.
【淺談使用Matlab軟件作為計(jì)算物理教學(xué)平臺(tái)的優(yōu)勢(shì)】相關(guān)文章:
淺談物理教學(xué)中的德育08-18
對(duì)初中物理教學(xué)實(shí)踐的淺談08-25
淺談多媒體輔助作文教學(xué)的優(yōu)勢(shì)08-17
淺談優(yōu)化物理教學(xué)過程08-17
淺談物理教學(xué)中的“章備課”08-17
淺談初中物理教學(xué)的課堂討論08-20