




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB语言课程论文MATLAB在复变函数中的一些应用姓名:刘乐学号:12013241953专业:通信工程班级:2013级通信2班指导老师:朱瑜红学院:物理电气性息学院完成日期:2013年11月9日MATLAB在复变函数中的一些应用(刘乐 12013241953 2013级通信2班)【摘要】MATLAB是目前应用最广泛的工程计算软件之一.本文利用MATLAB强大的数值计算和绘图功能,将复变函数论中的一些典型实例实现了计算机的数据自动计算和可视化.从而使抽象、繁杂的内容具体化、简单化.【关键词】复变函数 MATLAB 可视化一、问题提出复变函数理论诞生于18世纪,欧拉、达朗贝尔、拉普拉斯等都是这门学科的创建者.19世纪,通过柯西、黎曼、维尔斯特拉斯等一些著名学者的大量奠基性工作,这门学科得到了全面发展.复变函数理论这个新的数学分支被公认是19世纪最丰饶的数学分支和抽象科学中最和谐的理论之一.20世纪初,复变函数理论又有了进一步的进展,开拓了复变函数理论更广阔的研究领域,复变函数的理论和方法在数学、自然科学和工程技术中有着广泛应用.MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力,也是最有活力的软件之一.它起源于矩阵运算,并已经发展成一种高度集成的计算机语言.它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能. MATLAB是一种具有强大数值计算、分析和图形处理功能的科学计算语言,其应用领域极为广泛,而且操作简单、代码少、效率高,有人称为第四代程序设计语言.MATLAB越来越多的应用在复变函数领域中.利用MATLAB求解可以简化对求复数的导数、极限、积分、次方根、留数和级数展开等的一些基本计算详见文献3-11.但是,在分析一些复变函数性质的时候,利用MATLAB的计算功能不一定直观、明了.因此,可以利用MATLAB作图来分析这些复变函数的性质,在文献12中也有所涉及.本文主要分为两个部分,第一部分主要论述MATLAB在复变函数中的计算,主要包括:复数的计算、复数的微积分、求解复数方程、留数的计算以及Taylor级数的展开.这部分主要说明:在复变函数中很多问题都可以利用MATLAB强大的数值计算和符号运算功能来解决.第二部分中,进一步研究关于利用MATLAB高质量的图形可视化处理功能作图分析一些复变函数性质.这部分主要说明:利用MATLAB高质量的图形可视化这一优点,使一些抽象的、复杂的复变函数问题变得具体化、简单化.二、MATLAB在复变函数计算中的应用1、复数的计算MATLAB有着强大的数值计算功能,是MATLAB软件的基础.在MATLAB中,复数(,)的实部、虚部、共轭复数和辐角都可以调用内部函数来计算.而对于复数的乘除、开方、乘幂、指数、对数、三角运算也和其他语言一样.下面我们来看几个具体的例子.例1 对下列复数进行化简,并求它们的实部、虚部、辐角、模、共轭复数.; ;.分析:我们知道上面这几个复数的计算都比较简单.但是,我们在处理许多这样的问题的时候,工作量随之增加.利用MATLAB强大的矩阵运算功能可以把这些问题得到很好的解决.利用简单的MATLAB语句:real()、imag()、angle()、abs()、conj()可直接求出该复数的实部、虚部、辐角、模与共轭复数.解:在MATLAB命令窗口输入如下复数矩阵: A=i10+i3+i+12 (3+i)2*(1+i)2)/(5+i)3*(2+i)4) 3-2*i i2012 log(5+i)(1/2)+i)A =11.0000 0.0059 - 0.0014i 3.0000 - 2.0000i 1.0000 0.9393 + 0.4983i real(A) %复数矩阵A的实部ans = 11.0000 0.0059 3.0000 1.0000 0.9393 imag(A) %复数矩阵A的虚部ans = 0 -0.0014 -2.0000 0 0.4983 angle(A) %复数矩阵A的辐角ans = 0 -0.2325 -0.5880 0 0.4877 abs(A) %复数矩阵A的模ans = 11.0000 0.0060 3.6056 1.0000 1.0632 conj(A) %复数矩阵A的共轭复数2ans = 11.0000 0.0059 + 0.0014i 3.0000 + 2.0000i 1.0000 0.9393 - 0.4983i从上例我们可以看出,利用MATLAB不仅可以求复数的加、减、乘、除,而且还可以求复指数、复对数等.并且可以把它们的实部、虚部、共轭复数等都求出来.当很多复数要处理这些问题时,我们还可以利用MATLAB强大矩阵运算功能把这些复数构建成矩阵的形式一起解决.例2 计算和.分析:在MATLAB中的乘除由“*”和“/”来实现.解:MATLAB程序如下: i*exp(1/3*i)ans = -0.3272 + 0.9450i i*exp(1/3*i)ans = -0.3272 + 0.9450i可见,MATLAB程序中i*exp(1/3*i)和i*exp(1/3*i)是不相等的.例3 计算.分析:在实数域内,.这时就只取三值中的实值.下面,我们按常规方法和利用MATLAB来计算此题.解:因为,故 (k=0,1,2) 当k=0时,; ; 3利用MATLAB来计算: (-8)(1/3)ans = %默认的结果变量 1.0000 + 1.7321i可见,对于多值函数,MATLAB仅仅对其主值(k=0时)进行计算.2、复变函数的微积分复变函数的微积分包括极限、导数(包括偏导数)、符号函数的积分以及复数方程等,这些都可以通过MATLAB的符号运算工具箱来实现.我们看下面几个具体的例子.例4 求下列极限:(a) ;(b) .分析:一般求复变函数极限的时候,主要把复变函数的极限问题转化为它的实部和虚部的极限问题,再讨论这两个二元实变函数的极限问题.但对于多数复变函数而言,写出它的实部和虚部比较复杂,比如:例(a)中用泰勒展开式证明的时候就比较复杂.下面我们利用MATLAB求极限.解:(a)MATLAB程序如下: syms z %定义符号变量 f=limit(sin(z)/z,z,0) %f表示sin(z)/z以z为变量在0处的极限f = 1(b)MATLAB程序如下: syms z t f=limit(1+z/t)t,t,inf) %limit对函数求极限符号,inf表示无穷大f = %对f求极限exp(z)从上例可以看出,当利用MATLAB求极限时我们只需要掌握几个常见的步骤:(1).定义变量;(2).列出;(3).对求极限.4例5 试求在点处的左右极限.分析:首先,我们利用MATLAB符号计算方法计算.解:MATLAB程序如下: syms z f1=limit(z/abs(z),z,0,left)f1 =-1 f2=limit(z/abs(z),z,0,right)f2 = 1从运行的结果可以看出,左极限为-1,右极限为1,左右极限不相等,所以的极限不存在.我们也可以通过MATLAB作图更加形象的理解它的性质.下面利用MATLAB作图分析此题.解:MATLAB程序如下: z1=-2:0.01:0;f1=z1/abs(z1); %abs()表示绝对值符号zr=0:0.01:2;fr=zr/abs(zr);plot(z1,f1,zr,fr)axis(-2 2 -1.5 1.5) 仿真结果如下:图2-15观察图2-1可以清楚的看到,z=0是其间断点,其右极限为1,左极限为-1,故在处的极限不存在.例6 试对下列函数求导.(a)设,求的导数;(b)试对表达式求一阶导数和偏导数.分析:上述两个例子在求导问题中具有一定的代表性(求一阶导数和偏导数).我们在解决复变函数求导问题的时候,常常因为高次、多元使得我们求导错误.如果我们利用MATLAB来求导数,我们只需要掌握几个命令.比如:diff(f,z)表示f(z)对z求导,diff(dfdx,y)表示f对x求导后再对y求导数.解:(a)MATLAB程序如下: syms z f(z)=z9; df(z)= diff(f,z) %f(z)对自变量z求导数df (z)= 9*z8(b)MATLAB程序如下: syms x y f=x3+4*x2*y-y2; df=diff(f)df = 3*x2+8*x*y %x是默认的自变量 dfdx=diff(f,x)dfdx =3*x2+8*x*y dfdy=diff(f,y)dfdy = 4*x2-2*y dfdxdy=diff(dfdx,y)6dfdxdy =8*x dfdydx=diff(dfdy,x) dfdydx =8*x例7 计算下列积分.(a)计算积分,积分路径C是连接由0到1+i的直线段;(b)计算积分.分析:复积分的积分路径既可以是开曲线,也可以是简单闭曲线.由于积分路径以及被积函数的差异,导致有些复积分的计算比较复杂.但是利用MATLAB很容易计算复变函数的积分.下面我们来看具体的例子.(a)中C的参数方程为:由参数方程法得:,下面我们利用MATLAB来求积分.解:MATLAB程序如下: syms t int(t+t+i*t2)*(1+i),0,1) %int积分符号ans =2/3+4/3*i(b)由题意可知在积分路径C有两个单极点1、-3和一个9级极点.为了避开计算9级极点的留数.可以改成求无穷远点的留数.解:MATLAB程序如下: syms t z z=2*cos(t)+i*2*sin(t); %建立积分路径C的参数方程 f2=1/(z+i)9/(z-1)/(z-3); %输入被积函数的表达式 f2=int(f2*diff(z),t,0,2*pi)f2 = -481/62500000*pi+1917/62500000*i*pi7f2 = -2.4178e-005 +9.6359e-005i3、复变函数方程求解利用MATLAB符号数学工具箱提供的命令solve求解方程,solve函数的适应性很强大.但是我们在用solve求解方程时得到的精确表达式显得不是很直观.例8 求下列方程的根.(a);(b).分析:可调用MATLAB的内部函数solve进行求解.解:MATLAB程序如下: solve(log(z4+2*z3+z2+3)=10) %solve表示对方程求根ans = -1/2+1/2*(1+4*(exp(10)-3)(1/2)(1/2) -1/2-1/2*(1+4*(exp(10)-3)(1/2)(1/2) -1/2+1/2*i*(-1+4*(exp(10)-3)(1/2)(1/2) -1/2-1/2*i*(-1+4*(exp(10)-3)(1/2)(1/2) solve(cos(z+i)=1/2)ans =-i+1/3*pi4、留数的计算留数在复变函数中占有很重要的地位,比如积分计算可以转化为先求被积函数的留数,再利用留数定理求被积函数的积分.但是我们在求某些留数的时候显得很难.我们用下面方法来求留数.(1).通过求极限的方法计算留数.如果已知孤立奇点和阶数,那么在MATLAB中计算函数的留数只需利用到下面的命令即可求得:R=limit(F*(z-z0),z,z0) %单奇点的留数R=limit(diff(F*(z- z0)n,z,n- 1)/prod(1:n-1),z,z0) %n阶奇点的留数详见文献13.8例9 求函数在孤立奇点处的留数.分析:由原函数可知,是四阶极点,是一阶极点.解:由MATLAB命令可求出这两个奇点的留数: syms z f=1/(z4)*(z-i); R1=limit(diff(f*(z-0)4,z,3)/prod(1:3),z,0)R1 = %原函数处的留数-1 R2=limit(f*(z-i),z,i)R2 = %原函数处的留数1(2).直接调用MATLAB函数库中的residue函数直接计算.例10 求函数的极点和留数.分析:其中要用到的留数函数命令:表示函数返回的是留数,表示极点,分别是分子多项式和分母多项式的系数矩阵.如果没有重根,留数返回到,极点返回到(见文献14).很显然函数没有重根.解:MATLAB程序如下: r,p=residue(1,1,2,3,0,5,0) r = %所求函数的留数 0.0386 -0.1193 - 0.0705i -0.1193 + 0.0705i 0.2000 p = %所求函数的极点 -2.0786 9 0.2893 + 1.0578i 0.2893 - 1.0578i 0 可见,当没有重根的时候,我们只需要输入一个函数命令就可以把留数,极点都可以计算出来.5、泰勒级数展开Taylor级数展开在复变函数中有很重要的地位.对于某些解析函数,Taylor展开通常采用直接求Taylor系数、逐项求导、逐项积分和级数等.这时不仅计算工作繁杂,而且仅能得到的展式的有限项.Taylor展开的结果令我们不满意.利用MATLAB命令我们可以求函数指定点的泰勒展开式.例11 求下列函数在原点处的泰勒展开式.;.分析:,都是初等函数,显然解析.因在内解析,故,展开后的幂级数在内收敛.利用命令taylor(f(z),n,z,k)其中表示前多少项,表示自变量表示在 ()点展开,我们可以根据需要展开前多少项.解:MATLAB程序如下: syms z taylor(sin(z),8,z,0) %展开级数的前8项ans =z-1/6*z3+1/120*z5-1/5040*z7 taylor(cos(z),10,z,0) %展开级数的前10项ans =1-1/2*z2+1/24*z4-1/720*z6+1/40320*z8 syms z taylor(exp(z)/(1-z),5,z,0) %展开级数的前5项ans =1+2*z+5/2*z2+8/3*z3+65/24*z410 红河学院本科毕业论文(设计)三、复变函数的图形1、三角函数的图像MATLAB除了能进行符号运算和数值运算之外,还有非常强大的图形处理能力.利用MATLAB这个强大的能力可以将复变函数以图形化的形式显示出来,以便于我们加深对复变函数的理解.例12 画出和的图像.解:MATLAB程序为: z=4*cplxgrid(30);cplxmap(z,sin(z);colorbar(vert);title(sin(z) z=3*cplxgrid(25);cplxmap(z,cos(z);colorbar(vert);title(cos(z) 仿真结果如下: 图3-1 图3-2 图3-3 图3-411 从图3-1和图3-3可以看出和都是单值函数,虚部数值大小由图右侧的颜色条表示,不同的颜色处表示不同的函数值相,相同的颜色处对应相同的函数值.函数和的实部和虚部在区域中都可以大于1,所以,它们的模的数值也可以大于1.在图3-2和图3-4中,从颜色的分布来看可知是关于原点对称的,是关于虚轴对称的.周期均为.2、其他函数图像例13:画出下列幂函数图像.(a);(b).解:MATLAB程序为: z=cplxgrid(30); %构建一个极坐标的复数数据网格 cplxmap(z,z.3); %对复变函数做图 colorbar(vert); %注各个颜色所代表的数值 title(z3) %给图加标题 z=cplxgrid(30); cplxmap(z,z. (1/5); colorbar(vert); cplxroot(5); title(z(1/5) 仿真结果如下:图3-5 图3-6从图3-5可以看出函数是一个单值函数,我们在阴影部分任取一点12 都唯一存在一点与之对应.从图3-6可以看出是一个五值函数.例14 画出的图像.解:MATLAB程序为: z=cplxgrid(20);w=log(z); for k=0:5w=w+i*2*pi;surf(real(z),imag(z),imag(w),real(w); %作三维表面图hold ontitle(Lnz)end syms z z=cplxgrid(20);w=log(z); for k=0w=w+i*2*pi;surf(real(z),imag(z),imag(w),real(w);hold ontitle(Lnz)end仿真结果如下: 图3-7 图3-8从图3-7中可以看出,是多值函数,如图中我们画出了它的6个单值解析分支,图3-8中我们画出了其中一个单值解析分支.13 例15 作出指数函数的图像.解:MATLAB程序为: z=5*cplxgrid(30); cplxmap(z,exp(z); colorbar(vert); title(ez)仿真结果如下: 图3-9 图3-10从图3-9可以看出是单值函数.我们知道实变函数,但是复变函数中不一定成立.图3-10是图3-9的侧面图,从中我们可以看出复变函数中的可以为负数.根据以上图像可以帮助我们更容易的理解和掌握它们的性质、规律.四、结论14 红河学院本科毕业论文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论