韓英++李雁飛++汪賢華++弓亞鑫++舒心


摘 要:復變函數課程的理論比較枯燥。論文設計了MATLAB軟件在復變函數教學中的幾個典型案例,將MATLAB引入課堂教學,通過數學實驗,讓學生感受“看得見”的數學,使得復變函數的理論學習達到事半功倍的效果。
關鍵詞:MATLAB 復變函數 泰勒級數 洛朗級數
中圖分類號:O174.55 文獻標識碼:A 文章編號:1672-3791(2014)11(b)-0121-03
“復變函數”課程是通信工程、電子工程、自動化等工科專業必修的專業基礎課,該課程理論性強、內容抽象,工科學生普遍感到學習困難。為了解決這個問題,我們在復變函數的教學中引入MATLAB實踐內容,使得復變函數的教學理論與實驗相結合,教與學相結合,引導學生利用軟件對教學內容進行仿真,激發其學習積極性與主動性,提高其對于復變函數內容的理解。該文就MATLAB在復變函數中的幾點應用加以分析。通過計算機實現對復變函數主要計算問題的實驗,達到傳統理論教學無法實現的效果。
1 利用MATLAB進行復變函數的簡單運算
復數的表示式突出三角表示法和指數表示法,而這兩種表示法中輻角的計算公式較復雜,利用MATLAB可以把復數的實部,虛部,共軛復數,輻角,模等利用簡單的命令求出。
例1、計算,,,,的值及實部,虛部,共軛復數,輻角,模。
解:在MATLAB工具窗輸入以下矩陣
A=[((1+i)*(2-i)^2*(3-i)^3)/((3+4)^4*(2+i)^5) i^i i^(2^1/2) (-8)^(1/3) log(1+i)]
A= -0.0016+0.0005i 0.2079+0.0000i 0.0000+1.0000i 1.0000+1.7321i 0.3466+ 0.7854i
>>real(A)
-0.0016 0.2079
0 1.0000 0.3466
>> imag(A)
ans = 0.0005
0 1.0000 1.7321 0.7854
>> angle(A)
ans = 2.8578
0 1.5708 1.0472 1.1552
>> abs(A)
ans = 0.0017 0.2079 1.0000
2.0000 0.8585
>> conj(A)
ans=-0.0016-0.0005i 0.2079+0.0000i 0.0000-1.0000i 1.0000-1.7321i 0.3466-0.7854i
用MATLAB可直接計算出復數的四則運算和初等函數的值。但對數函數和冪函數的運算僅得出其主值,其多值函數的特性必須從理論推導得出。
例2、計算,,,,,。
解:在MATLAB工具窗鍵入
A=[sin(i) sin(i+2*pi) cos(i) cos(i+2*pi) exp(i) exp(i+2*pi*i)]
A=0.0000+1.1752i -0.0000+1.1752i 1.5431+0.0000i 1.5431+0.0000i
0.5403+ 0.8415i 0.5403+0.8415i
借助于MATLAB易驗證復變函數的正弦、余弦函數,指數函數均具有周期性。在復變函數中不成立。在教學中使得學生更易理解和接受這些復變函數的理論。
2 用MATLAB求方程的根
用MATLAB可以求出復雜的復方程的根,還可通過其圖形分析根的特性。
例3、解方程。
在MATLAB工具窗鍵入
S=solve('z^3=-8');
>> s=eval(S);
s=[s(1);s(2);s(3)]
s = -2.0000 + 0.0000i 1.0000 + 1.7321i 1.0000 - 1.7321i
x=2^(1/8)*(1:-0.01:-1);
x=2*(1:-0.01:-1);
y1=sqrt(4-x.^2);y2=-sqrt(4-x.^2);
plot(x,y1,'r-','LineWidth',3);hold on;grid on;
plot(x,y2,'r-','LineWidth',3);axis equal;
plot(s,'o');
axis([-2.5 2.5 -2.5 2.5]);
用解方程的方法可以求出-8的3次方根,有效的解決直接計算僅能計算主值的問題。而且從圖1中可以直觀的觀察出3個根是半徑為2的圓上的3個等分點。
例4、求解方程。
在MATLAB中鍵入
solve('log(z^4+z^3+z^2+z+1)=i')
ans =
0.36521623295345235866005943774426 + 0.64240444029684120856950031509163*i
0.19822799851622204112882959650434 - 1.130167947608232755068528868445*i
- 0.48211258491386994549037517293678 + 0.86253684186617047083403309081309*i
- 1.0813316465558044542985138613118 - 0.37477333455477892433500453745974*iendprint
從以上運算可以看出,借助MATLAB強大的運算功能可以解決許多復雜的計算問題。
3 用MATLAB將函數展開成泰勒和洛朗級數
例5、將函數在展開為泰勒和洛朗級數。
解:復變函數是級數展開中常用的一個函數,且在處不解析。若將該函數在展開成泰勒級數和洛朗級數,分析如下。
當時,它的泰勒展開式是。
當時,它的洛朗展開式是。
在MATLAB中工具窗輸入
m=30;r=(0:2*m)'/m;
theta=pi*(-m:m)/m;
z=r*exp(i*theta);
z(find(z==1))=NaN;
figure(1)
cplxmap(z,1./z);title('原函數');
由原函數圖,易得函數在處不解析。
在MATLAB工具窗鍵入
z1=z-1;
z1(abs(z1-1)>=1)=NaN;
f1=1;u1=1;
for k=1:100
u1=u1.*(z1-1);
f1=f1+u1;
end
figure(2)
subplot(1,2,1);cplxmap((z1-1),f1);title('泰勒展開');
z2=z;
z2(abs(z2-1)<=1)=NaN;
f2=1./(z2-1);u2=1./(z2-1);
for k=1:100
u2=u2./(z2-1);
f2=f2+u2;
end
figure(2)
subplot(1,2,2);cplxmap((z2-1),-f2);title('洛朗展開)
得在處的泰勒展開式及洛朗展開式。
從圖3中可以看出,泰勒級數展開圖形和洛朗級數展開圖形的結合就是對原函數的圖形擬合,圖形直觀的展示了函數的泰勒和洛朗展開的區分,為復變函數的理論教學提供了很好的直觀的解釋。
4 結語
除了以上設計的一些應用,Matlab還可以深入復變函數教學的很多方面。在教與學的過程中,利用MATLAB軟件,學生將所學習的理論進行模擬實驗,提高了學生學習興趣,增強了學生的編程動手能力,從而提高了復變函數課程的教學效果。
參考文獻
[1] 龐學誠,梁金榮,柴俊.復變函數[M].北京:科學出版社,2003.
[2] 劉建亞.大學數學教程—復變函數與積分變換(第二版)[M].北京:高等教育出版社,2011.
[3] 彭芳麟.數學物理方程的MATLAB解法與可視化[M].北京:清華大學出版社 2004.
[4] 常巍,謝光軍,黃朝峰.MATLAB R2007基礎與提高[M].北京:電子工業出版社,2007.
[5] 薛定宇,陳陽泉.高等應用數學問題的MATLAB求解[M].北京:清華大學出版社,2004.
[6] 劉衛國.MATLAB程序設計與應用(第二版)[M].北京:高等教育出版社,2006.endprint