周后卿+徐幼專


摘要:《復變函數與積分變換 》是工科類學生的一門重要基礎課,既是《高等數學》的后續課程,也是學習其他專業課程的有力工具。該文探討如何應用MATLAB輔助《復變函數與積分變換》教學的問題。
關鍵詞:復變函數與積分變換;MATLAB;應用
中圖分類號:G642.0 文獻標識碼:A 文章編號:1009-3044(2018)04-0089-03
計算機輔助教學在大學數學教學中越來越普遍,利用MATLAB軟件,已成為教師的首選。MATLAB憑借強大的符號運算、大量的函數以及統計、最優化、偏微分方程數值解等工具箱,已經成為運籌學、多元統計、時間序列分析、數字信號處理、動態系統仿真、圖像處理、自動控制理論等課程教學中的必備教學工具,深受師生的喜歡和信賴。在《復變函數與積分逆變換》課程教學中,MATLAB也大有可為,許多內容都可以用到這個軟件。我們通過一些實例,闡述MATLAB在這門課程中的應用。通過運用這個軟件,達到降低內容難度,提振學生學習的士氣,幫助學生加深、了解、掌握知識點,培養學生運用軟件解決問題的能力。
1 利用MATLAB作圖
我們知道,MATLAB提供了強大的圖形處理和編輯功能,能夠將經過數據處理、運算和分析后的結果通過圖形的方式直觀地進行表示。作圖的原理是先計算離散自變量上對應的函數值,然后將這些點描繪出來;對于連續函數的話,則可以通過微分思想來進行,即不斷減小離散點的間隔后,繪制這些數據。通過MATLAB作圖,直觀反映函數,把復雜問題簡單化,學生容易接受與理解。例如,在實數域中,對于實變量函數,不妨設正弦函數,它是一個一元函數,它的圖形是一條曲線(見圖1)。代碼如下:
x=0:0.01:2*pi;
y=sin(x);
plot(x,y, 'r') 紅顏色用“r”表示。
對這個圖形,學生很熟悉。但是,在復數域中,對于復變量函數的圖像,到底是啥樣?學生不清楚;特別是說不成立,學生更不清楚。為了形象說明這一性質,我們借助MATLAB,就很容易畫出它的圖形(見圖2)。用Z軸表示sinz的模,作出|sinz| 的圖像,其MATLAB程序如下:
x=[0:pi/5:7*pi],
[x,y]=meshgrid(x),
z= x+i*y,
u=sin(z),
surf(x,y,abs(u))
學生通過觀看圖像,就容易區分它們之間的差異,也就能明白一定條件下了。
2 MATLAB在復變函數與積分變換計算中的應用
MATLAB在復變函數與實變函數中的計算有著相似之處,不管自變量是實數還是復數,都是將自變量的值直接代入函數表達式中去計算。可以利用MATLAB對一個復常數進行基本的求模,求幅角,求實部、虛部的運算。更進一步地,還可以求復數的指數、對數,對復數進行三角運算,舉幾個例子加以說明。
例1 求下列復數的實部,虛部,共軛復數,輻角,模
,,。
解 代碼如下:
z=[((1-i)/(1+i)).^7; i/(1-i)+(1-i)/I; i.^18],
real(z), % 求復數的實部
imag(z), % 求復數的虛部
conj(z), % 求復數的共軛復數
angle(z), % 求復數的輻角
abs(z), % 求復數的模
運算的結果:
z =
0+1.0000i
-1.5000-0.5000i
-1.0000
ans =
0
-1.5000
-1.0000
ans =
1.0000
-0.5000
0
ans =
0-1.0000i
-1.5000+0.5000i
-1.0000
ans =
1.5708
-2.8198
3.1416
ans =
1.0000
1.5811
1.0000
用MATLAB計算優勢在于能夠對多個復數同時進行計算,不用單獨一個一個地去求。
例2 求方程的解。
解法一(常規解法)將代數式化為三角式,原方程為。所以,的三次方根為: ,也即
。
解法二(用MATLAB計算)
代碼如下:
roots=solve('z^3+1=0'),
運算結果:
roots =
-1
1/2+(3^(1/2)*i)/2
1/2-(3^(1/2)*i)/2
用MATLAB計算顯得非常簡單。
如果先將方程寫成冪的形式:,這是一個多值函數,那么,MATLAB僅僅對其主值(k=0時)進行計算。
解法三 代碼如下:
(-1)^(1/3)
結果顯示;
ans =0.5000+0.8660i。
由此看出,利用這個方法,只能得到一個答案。所以,一般不選擇此類解法。
我們都知道,MATLAB除了簡單的加、減、乘、除、乘方、開方運算外,還有更強大的計算功能,如微積分運算。首先,用MATLAB來極限,舉例如下。
例3 求極限 。
解 代碼如下:
syms z,f=z/sin(z),limit(f,z,0),
運算結果:
f=z/sin(z),ans=1,
即 。
其次,還可用MATLAB求復變函數的導數,例如:
例4 求函數的導數。
解 代碼如下:
syms z,f=z/((1+z)*sin(z)),diff(f),
運算結果:
f =z/(sin(z)*(z+1)),
ans =
1/(sin(z)*(z+1))-z/(sin(z)*(z+1)^2)-(z*cos(z))/(sin(z)^2*(z+1)),
也即,。
用MATLAB求復變函數的定積分,在形式上與實變函數的定積分相同,只是積分限由實數變成復數而已。格式為:int(function,variable,a,b),其中,function為函數表達式,variable為積分變量,a,b分別為積分下限、上限。
例5 計算定積分 。
解 代碼如下:
syms z,f=z*cos(z),inf=int(f,z,0,i),
結果顯示:
f=z*cos(z),inf=1/exp(1)-1,
即。
3 MATLAB在級數展開中的應用
一個函數在一個區域內解析,那么這個函數在這個區域內就能展開成泰勒級數,這是復變函數的一個重要內容,也是學生感到困難的地方。利用MATLAB,我們就很容易掌握函數在一點展開成級數的方法。具體格式為F=taylor(f,n,variable,a), taylor表示泰勒級數,n表示展開式的項數,variable表示變量, a表示在這點展開。
例6 將函數 展開成泰勒級數。
分析: 如果沒有特別說明,將函數在哪一點展開泰勒級數,一般是默認為在原點把函數展開成麥克勞林級數,當然,前提是函數在原點要解析。所以,這里就是在處展開。
解 代碼如下:
syms z,f=1/(1+z)^2,F=taylor(f,10,z,0),
運算結果顯示:
f=1/(z+1)^2,
F=-10*z^9+9*z^8-8*z^7+7*z^6-6*z^5+5*z^4-4*z^3+3*z^2-2*z+1,
即 。
4 MATLAB在留數計算中的應用
利用MATLAB計算留數問題,將復雜繁瑣的計算交由計算機處理,使運算變得簡單快捷,能充分調動學生學習積極性、創造性。對于形如函數(均為的多項式)在孤立奇點處的留數,其留數格式為[r,p]=residue(B,A),其中,r表示留數,p表示極點;B、A分別表示函數的系數組成的行向量。在計算時,只需寫residue(B,A)即可。
例7 求函數在孤立奇點處的留數。
解 首先寫出分子、分母兩個多項式的系數向量,然后再去求residue(B,A)。代碼如下:
B=[1,11,39,52,26],A=[1,10,35,50,24],[r,p]=residue(B,A),
運算結果顯示:
B =1 11 39 52 26
A =1 10 35 50 24
r = p=
1.0000 -4.0000
2.5000 -3.0000
-3.0000 -2.0000
0.5000 -1.0000
也即,當極點p=-4時,留數r=1,余下類推。
若函數的形式不是有理分式時,只能先判斷的極點重數,然后根據公式
來求,這里、分別表示極點、極點重數。它的MATLAB格式如下:
,這里,prod(1:m-1)表示1到m-1連乘積。
例8 求函數在的留數。
解 首先判斷是函數的三重極點,即。寫出計算留數的MATLAB格式:
limit(diff(sym('z^3*(1-exp(z))/z^4'),'z',2)/prod(1:2),'z',0)。
運算顯示: ans=-1/6,即函數在的留數為。
5 MATLAB在傅里葉變換中的應用
傅里葉變換是積分變換的重要內容之一,也是難點之一,利用MATLAB可以輕松化解難點。我們知道,傅里葉變換的公式為;那么利用MATLAB求傅里葉變換的格式為F=fourier(Fun,t,w),即將t的函數變成w的函數。
例9 求函數的傅里葉變換。
解 代碼如下:
syms t w,ft=sin(2*t),F=sym(fourier(ft,t,w))。
顯示如下
ft=sin(2*t),
F=-pi*(dirac(w-2)-dirac(w+2))*i,
即 。
傅里葉逆變換的公式為 。在MATLAB中使用ifourier函數來實現逆變換,格式如下:f=ifourier(Fw,w,t),默認w為獨立變量,默認返回函數是以x為自變量的函數。
例10 求函數的傅里葉逆變換。
解 代碼如下:
syms w,F=sin(w)/w, f=simple(ifourier(F)),
運行后顯示:
F=sin(w)/w,
f=heaviside(x+1)/2-heaviside(x-1)/2,這里,heaviside表示單位階躍函數。
即 。
6 MATLAB在拉普拉斯變換中的應用
積分變換中有兩個常用的變換,拉普拉斯變換就是其中一個。由于拉普拉斯變換在專業課程、在工程技術中有著廣泛的應用,因此熟練掌握MATLAB方法,用它解決一些拉普拉斯變換問題顯得十分有意義。
求時域函數f(t)的laplace變換F(s),格式為 F=laplace(f,t,s)。
設F是s的函數,參數s省略,返回結果F默認為s的函數;f為t的函數,當參數t省略,默認自由變量為t。
例11 求函數的拉普拉斯變換。
解 代碼如下:
syms t s a b, f=exp((-a)*t)*sin(b*t),F=laplace(f,t,s),
運行后顯示:
f=sin(b*t)/exp(a*t),
F=b/((a+s)^2+b^2),
即 。
對于拉普拉斯逆變換,常用的方法是留數法,部分分式法(即先將函數分解成一些簡單的式子,然后再反求),查表法等等。如果借助MATLAB,根本就不需記憶這么多,很容易求出逆變換,格式為 f=simple(ilaplace(F)),對于f默認t為自變量;對于F,默認s為自變量。
例12求的拉普拉斯逆變換。
解 代碼如下:
syms t s, F=1/((s+1)*s^2),f=simple(ilaplace(F)),
運行后顯示:
F=1/(s^2*(s+1)),
f=t+1/exp(t)-1,
即 。
7 結束語
在《復變函數與積分變換》教學中,將 Matlab 軟件引入課堂教學,利用Matlab軟件在繪圖和計算方面的優勢,可以將抽象復雜的學習內容,用可視化、動態化的形式 直觀地表現出來,以促進學生對知識深入理解;同時還可以簡化繁瑣的計算
過程,讓學生有更多時間和精力去體會和掌握課程的精髓,激發學生的學習興趣,讓數學學習變得生動有趣。通過上面一些具體例子,我們可以看出, MATLAB對學習確實有很大幫助,利用它能夠解決很多計算問題,作圖問題;能夠化難為易,原來難以理解的問題變得迎刃而解。
參考文獻:
[1] 周建興, 豈興明, 矯津毅, 等. MATLAB從入門到精通[M]. 北京: 人民郵電出版社, 2008.
[2] 茹靜. 《復變函數與積分變換》實驗教學的實踐和探討[J]. 吉林化工學院學報, 2015, 32(10):5-9.
[3] 徐彬. Matlab在復變函數與積分變換課堂教學中的應用[J]. 湖北理工學院學報, 2016, 32(3):68-72.
[4] 韓英, 陳佳旗. 復變函數的可視化問題研究[J]. 北京石油化工學院學報, 2012, 20(4):61-64.
[5] 王澤龍, 謝美華. 可視化在復變函數教學中的運用[J]. 高等數學研究, 2016, 19(4):56-57, 60.