MATLAB在《复变函数与积分变换》中的应用

2018-03-19 16:37周后卿徐幼专
电脑知识与技术 2018年4期
关键词:应用

周后卿+徐幼专

摘要:《复变函数与积分变换 》是工科类学生的一门重要基础课,既是《高等数学》的后续课程,也是学习其他专业课程的有力工具。该文探讨如何应用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.

猜你喜欢
应用
多媒体技术在小学语文教学中的应用研究
微课的翻转课堂在英语教学中的应用研究