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