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