譚少軒 李平舟
(西安電子科技大學理學院,陜西 西安 710071)
數(shù)學物理方法中MATLAB的應用
譚少軒 李平舟
(西安電子科技大學理學院,陜西 西安 710071)
數(shù)學物理方法廣泛應用于物理教育、通信、光纖傳輸?shù)雀鱾€領(lǐng)域。其計算復雜,知識內(nèi)容跨度頗大。使得學生學習物理方法時較為吃力。而 MATLAB作為目前較為流行的數(shù)學軟件之一,對數(shù)學物理方法中圖像的處理、復雜公式的計算有相當大的作用。文章就MATLAB處理數(shù)學物理方法中的一些函數(shù)作出了簡單的介紹。
數(shù)學物理方法;復變函數(shù);積分變換;特殊函數(shù)
數(shù)學物理方法是許多理工專業(yè)的必修課和重要基礎課,是學生進行“電磁場理論”、“光纖通信”以及“微波技術(shù)”學習的重要前導課程,也是科研人員常用的基本方法。但它是一門公認的難度大的課程。因課程內(nèi)容抽象,數(shù)學推導繁瑣,學生學習起來感到非常枯燥。MATLAB是高性能的數(shù)值計算型數(shù)學類科技應用軟件。具有優(yōu)秀的數(shù)值計算功能和強大的數(shù)據(jù)可視化能力。在“數(shù)學物理方法”中應用MATLAB進行習題求解和計算機仿真,一方面可以提高解題的速度,另一方面可將抽象的解和一些特殊函數(shù)以圖形形式顯示出來.直觀明了,物理意義明確。
1.復數(shù)計算
例1:求(1 + i )6的實部、虛部、共軛復數(shù)、模與輻角。
定義復數(shù)后,利用簡單的MATLAB語句:real()、imag()、conj()、abs()、angle()可直接得出復數(shù)的的實部、虛部、共軛復數(shù)、模與輻角。
解:>>a=[(1+i)^6;
>> a=(1+i)^6;
>> real(a)
ans =
0
>> imag(a)
ans =
-8
>> conj(a)
ans =
0 + 8.0000i
>> abs(a)
ans =
8
>> angle(a)
ans =
-1.5708
例2:求方程 027z3=+ 的所有根。
調(diào)用內(nèi)部函數(shù)Solve進行求解。
解:>> solve('z^3+27=0')
ans =
-3
3/2 - (3*3^(1/2)*i)/2
3/2 + (3*3^(1/2)*i)/2
2.Taylor級數(shù)展開
Taylor級數(shù)的展開可以用符號工具箱中的Taylor( )函數(shù)直接導出。
解:>> syms z;
>> taylor((z+1)/(1-z))
ans =
2*z^5 + 2*z^4 + 2*z^3 + 2*z^2 + 2*z + 1
3.留數(shù)計算
通過求極限的方法計算留數(shù)。
解:通過對函數(shù)的分析,可知z=0是三階極點,z=2i,-2i是單極點。
>> syms z;
>> f=(z+2*i)/(z^5+4*z^3);
>> limit(diff(f*z^3,z,2)/prod(1:2),z,0)
ans =
-i/8
>> limit(f*(z-2i),z,2i)
ans =
i/8
>> limit(f*(z+2i),z,-2i)
ans =
0
計算留數(shù).還可直接調(diào)用MATLAB函數(shù)庫中的Residue函數(shù)直接計算,見下題。
4.積分計算
積分計算可以轉(zhuǎn)化為留效計算,先求被積函數(shù)的留數(shù),利用留數(shù)定理求復變幽數(shù)的積分。

解::>>[R,P,K]=residue([1],[1,0,5,0,4])
R= %求被積函數(shù)的留數(shù)
0+0.0833i
0-0.0833i
0-0.1667i
0+0.1667i
P= %四個極點
O+2.0000i
0-2.0000i
0+1.0000i
0-1.0000i K
= %(展開式中無此解析項)

利用MATlAB進行復數(shù)運算、級數(shù)展開、計算留數(shù)、計算積分,操作簡單,運算速度快,比起手T計算省時、方便。
5.復變函數(shù)的作圖
MATLAB可以進行復數(shù)運算,也可以進行復變函數(shù)的繪圖。對于多值函數(shù)MATLAB僅對主值進行運算。 MATLAB中表現(xiàn)復變函數(shù)的方法是用三個空間坐標再加上顏色的方法來實現(xiàn)。從圖形中就可以很容易看出復變函數(shù)的某些性質(zhì)。具體作圖時,以XOY表示自變量所在的復平面,以Z軸表示復變函數(shù)的實部。而用顏色來表示復變函數(shù)的虛部。為了能明確的表示顏色與數(shù)值之間的對應關(guān)系,通常使用指令colorbar來標注各個顏色所代表的數(shù)值。
MATLAB常用的畫復變函數(shù)圖形的指令有如下幾種:CPLXGRID、CPLXMAP、CPLXROOT,CPLXROOT(n,m)等。另外,在MATLAB里面,專門提供了復變函數(shù)繪圖的演示程序、只需在命令行下面輸入playshow cplxdemo,即可瀏覽相應的圖形及編程方法,非常方便。
把復變函數(shù)理論中經(jīng)常用到的一些函數(shù)做成一個圖形界面的繪圖程序,通過在下拉菜單中選定函數(shù)給定各參數(shù)的值,點擊即可在相應的坐標平面中得到其圖形。由于MATLAB提供了非常方便的圖形觀察工具,同學們可以通過鼠標的拖曳從空間各個角度觀察圖形,從而大大加深其對復變函數(shù)的理解,掌握它們的一些基本性質(zhì)。利用這些圖形來展示黎曼面,教學效果也非常好。如圖求xycossinz=

圖1 復變函數(shù)示意圖
特殊函數(shù)始終是“數(shù)學物理方法”中的一個重點與難點,大多數(shù)學生對此十分頭疼。因此,對于特殊函數(shù)的教學,除了正常的課堂內(nèi)容外,我們還采用基于問題的學習方法(Problem Based Learning,PBL)安排了相應的作圖實驗,要求同學們將教材上所有相關(guān)曲線用MATLAB進行繪制,同時作為平時成績進行考核,并鼓勵學生針對學習中的難點自己設計課件,通過作圖加深理解。利用這種方法,極大地調(diào)動了同學們的學習積極性與主動性,增加了對特殊函數(shù)性質(zhì)的認識。
其編程語言為:x=0:0.01:50 Plot(x,BESSEIJ(15,x))

圖2 貝塞爾函數(shù)15階 (X)J15 的曲線分布
例2:畫出連帶勒讓德多項式(2階)的曲線分布。
MATALAB語句為:x=-1:0.01:1;
Plot(x,legendre(2,x))
曲線如圖3:

圖3 連帶勒讓德多項式(2階)的曲線分布
利用MATLAB語句:Fourier(:f.x,w)、laplace(f,x,w),
可將函數(shù)f(x)進行傅里葉變換和拉普拉斯變換。而對于積分反變換,則可以用fourier(F)和laplace(L)來實現(xiàn)。編程制作了拉普拉斯變換和傅里葉變換的電子版積分變換對照表,使用該對照表可以進行原函數(shù)和變換函數(shù)之問的互查。同學們一方面可以對所做題目進行驗證,另一方面可以利用該表輔助做題,對于那些無法得到變換函數(shù)的題目也可以及早發(fā)現(xiàn),避免無謂的時間浪費。

解:>>syms x w:
>>syms a petitive
>>f=1/((x^2+a^2);
>>F=Fourier(f,x,w)
F=pi*(signum(0Re(a)0)*cosh(a*w)-2*Heaviside(w
)*sinh(a*w)+sinh(a*w))/a
例2:已知函數(shù)f(x)=x3e?x,試求取該函數(shù)的Laplace變換,
并對結(jié)果進行Laplace反變換。
解:>>syms x w:
>>f=x^3+exp(-x);
>>F=laplace(f,x,w)
F=6/(w+1)^4
對得出的結(jié)果進行Laplace反變換。從而有
>>ilaplace(F)
ans=x^3+exp(-x)
利用手工方法對函數(shù)進行Fourier變換和Laplace變換,計算起來繁瑣、復雜,且容易出錯,利用MATLAB快速、準確。
對于大多數(shù)的數(shù)學物理問題,很難或根本不可能得到其解析形式的解,因此,在教授給學生如分離變量法、格林函數(shù)法以及保角變換法等內(nèi)容的同時,數(shù)值方法也是必不可少的環(huán)節(jié)。在設計的教學實驗里,利用MATLAB環(huán)境下的PDETOOL工具箱,可以教授同學們掌握以有限元法為代表的數(shù)值方法。由于是圖形界面,所以同學們上手很快f但需要根據(jù)問題的邊界、方程的類型設置各種參數(shù),所以學生必須熟練掌握三類邊值問題、三種數(shù)理方程以及所謂的施圖姆一劉維爾本征值問題。當實驗內(nèi)容是結(jié)合教材上的例題進行時,同學們會非常驚訝于解析法的繁瑣以及數(shù)值方法的簡便、功能的強大,從而會以更大的熱情投入到學習當中去。
例:在矩形域-0.5<x<0.5,-0.5<y<0.5上求解2u?=Δ,且u在邊界上的值為零。
利用偏微分方程下具箱求解過程如下:
1.啟動偏微分方程求解界面。
2.在MATLAB命令窗口中輸人pderect([-0.5 0.5 -0.5 0.5]),選擇Boundary Remove All Subdomain Borders菜單項,得出偏微分方程的求解區(qū)域。
3.單擊偏微分方程界面工具欄中的PDE圖標,選擇其中的Parabolic選項,將給定的偏微分方程的參數(shù)輸入到該對話框中。
4.邊界條件由Boundary菜單下的Specify Boundary conditions確定,輸入邊界條件h=l,r=0。
5.單擊工具欄等號按鈕,得到偏微分的解,單擊圖形設置按鈕,得出圖形。
1.泰勒級數(shù)展開
復變函數(shù)的泰勒級數(shù)展開也是“數(shù)學物理方法”教學中的一個重要內(nèi)容。應用MATLAB的符號工具箱也可以進行泰勒展開。比如,使用taylor(f,m,a)函數(shù)就可得到f(x)在a點的m階泰勒級數(shù)展開式。另外,MATLAB里面還提供了一個圖形化的泰勒級數(shù)展開工具——TAYLORTOOL,利用這個工具,同學們可以非常直觀地看到函數(shù)及其泰勒級數(shù)展開之間的關(guān)系,也可以動態(tài)調(diào)整輸入函數(shù)和參數(shù),非常生動。這種交互性可以大大加深對級數(shù)展開的理解。
2.部分分式展開
部分分式展開在復變函數(shù)里面也占有非常重要的地位,利用它可以對某些復變函數(shù)進行洛朗級數(shù)展開,可以利用其來計算留數(shù),也可以利用它來進行拉普拉斯變換的反演等。在MATLAB里面,專門提供了部分分式展開的命令,如[r,p,k]=residue(b,a)、[r,p,k]=residue(b,a)等。通過簡單的指令,同學們自己就可以驗證題目的正確與否,從而有了學習的成就感,主動性也增加了。
以上簡單的介紹了一些數(shù)學物理方法中的問題怎樣用MATLAB來解決。在不斷的學習實踐中,我們發(fā)現(xiàn)我們應該處理好“數(shù)學物理方法”和MATLAB以下方面的一些關(guān)系,才能更好的掌握所學的知識。
1.認識主客體
在教學過程中,應堅持以數(shù)學物理為主,MATLAB為輔,千萬不能把數(shù)學課變成計算機語言課,“體腦倒掛”、主次不分。因此,無論是課堂演示、課外作業(yè)還是數(shù)學實驗,都必須緊密結(jié)合教材內(nèi)容,做到有的放矢。要求教師在課前必須做好充分的準備,每一個實例、每一個程序都要精心設計。另外,學生不能依靠計算機語言來完全替代理論的計算過程。我們需知道MATLAB只是驗證理論、計算的一種工具。
2.充分調(diào)動學習的熱情
由于課程內(nèi)容困難,絕大多數(shù)同學都會對教學內(nèi)容有恐懼心理。因此,必須利用MATLAB的強大圖形處理能力及易用性消除大家的恐懼,增加其學習的動力。每次演示的時候,向同學們展示相關(guān)內(nèi)容的最優(yōu)美的部分,如動畫、三維圖像、圖像的拖曳、聲音背景等,從而吸引廣大同學的眼球,提高學習的主觀能動性。另外,往屆同學所編制的一些樣本程序同樣可以打破同學們的恐懼心理,提高其自信心。
3.抓住學習的本質(zhì)
盡管MATLAB語言非常簡單,但教授學生掌握還是需要一個過程。因此,必須掌握一個尺度,使用正確的教授方法。我們的經(jīng)驗是采用演示的形式,教會基本操作、基本命令,結(jié)合具體的例子進行編程。更重要的是,同學們必須學會使用MATLAB強大的聯(lián)機幫助功能以及聯(lián)機演示程序所給出的實例。事實上,MATLAB里面包含眾多的工具箱。任何一門課程都無法教會同學們精通所有的內(nèi)容,只有教授大家熟練掌握了自學的本領(lǐng),才是學習這門語言的捷徑。
4.結(jié)合各種方法,提高學習效率。
除了常規(guī)的教學方法外,在利用MATLAB輔助教學的過程中,作者也試用了基于問題的學習方法等。比如,在特殊函數(shù)繪圖以及數(shù)值計算方法的實驗中,要求廣大同學自己學習命令,繪制教材上的曲線,求解書本上的例題或作業(yè);在這個過程中,鼓勵同學們發(fā)揚團隊精神,利用集體智慧解決問題;鼓勵“頭腦風暴法”等的使用。這些方法的應用,一方面挑戰(zhàn)了同學們的智力,一面提升了其合作精神,是學習數(shù)學物理方法、學習MATLAB語言的有效途徑。
利用MATLAB軟件輔助進行“數(shù)學物理方法”的教學,形象、直觀,且操作簡單、易于掌握。在高校辦研究室網(wǎng)上調(diào)查中,對于本門課程的教學,各項考核內(nèi)容均為優(yōu)秀,客觀反映了同學們對這種方法的認可。筆者認為今后的工作還將涉及以下方面的內(nèi)容:MATLAB在數(shù)學物理方程求解方面的應用、MATLAB中有限差分法的應用等。另外,對于數(shù)學實驗,也需要進一步的擴充,并考慮增加同學們的自行設計并驗證數(shù)學物理方法實驗的內(nèi)容。
[1] 伍新春,等.高等教育心理學[M].北京:高等教育出版社,1999.
[2] 梁昆淼.數(shù)學物理方法(第三版) [M].北京:高等教育出版社,1998.
[3] 彭芳麟.數(shù)學物理方程的MATLAB解法與可視化[M].北京:清華大學出版社,2004.
[4] 葛美寶.利用MATLAB促進《復變函數(shù)與積分變換》的教學改革[JM].科技信息,2009,(30).
[5] 楊冰.閆循領(lǐng)淺談Matlab在《復變函數(shù)》教學中的應用[J].科技信息,2010,(8).
O411.1
A
1008-1151(2011)06-0136-03
2011-04-20
譚少軒(1986-),男,陜西寶雞人,西安電子科技大學理學院在讀研究生。