标题 | MATLAB在《复变函数与积分变换》中的应用 |
范文 | 周后卿+徐幼专 摘要:《复变函数与积分变换 》是工科类学生的一门重要基础课,既是《高等数学》的后续课程,也是学习其他专业课程的有力工具。该文探讨如何应用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. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。