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