浅谈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*i 从以上运算可以看出,借助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软件,学生将所学习的理论进行模拟实验,提高了学生学习兴趣,增强了学生的编程动手能力,从而提高了复变函数课程的教学效果。
- 上一篇:注重案例教学 突出实践特色
- 下一篇:浅谈教学设计在大学英语教学中的应用