收藏 分销(赏)

毕业论文MATLAB在复变函数中的一些应用(1).doc

上传人:仙人****88 文档编号:11332114 上传时间:2025-07-17 格式:DOC 页数:19 大小:1.93MB 下载积分:10 金币
下载 相关 举报
毕业论文MATLAB在复变函数中的一些应用(1).doc_第1页
第1页 / 共19页
毕业论文MATLAB在复变函数中的一些应用(1).doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
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=[i^10+i^3+i+12 ((3+i)^2*(1+i)^2)/((5+i)^3*(2+i)^4) 3-2*i i^2012 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的共轭复数 2 ans = 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-1 5 观察图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)=z^9; >> df(z)= diff(f,z) %f(z)对自变量z求导数 df (z)= 9*z^8 (b)MATLAB程序如下: >> syms x y >> f=x^3+4*x^2*y-y^2; >> df=diff(f) df = 3*x^2+8*x*y %x是默认的自变量 >> dfdx=diff(f,x) dfdx = 3*x^2+8*x*y >> dfdy=diff(f,y) dfdy = 4*x^2-2*y >> dfdxdy=diff(dfdx,y) 6 dfdxdy = 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*t^2)*(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*pi 7 f2 = -2.4178e-005 +9.6359e-005i 3、复变函数方程求解 利用MATLAB符号数学工具箱提供的命令solve求解方程,solve函数的适应性很强大.但是我们在用solve求解方程时得到的精确表达式显得不是很直观. 例8 求下列方程的根. (a); (b). 分析:可调用MATLAB的内部函数solve进行求解. 解:MATLAB程序如下: >> solve('log(z^4+2*z^3+z^2+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*pi 4、留数的计算 留数在复变函数中占有很重要的地位,比如积分计算可以转化为先求被积函数的留数,再利用留数定理求被积函数的积分.但是我们在求某些留数的时候显得很难.我们用下面方法来求留数. (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/((z^4)*(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*z^3+1/120*z^5-1/5040*z^7 >> taylor(cos(z),10,z,0) %展开级数的前10项 ans = 1-1/2*z^2+1/24*z^4-1/720*z^6+1/40320*z^8 >> syms z >> taylor(exp(z)/(1-z),5,z,0) %展开级数的前5项 ans = 1+2*z+5/2*z^2+8/3*z^3+65/24*z^4 10 红河学院本科毕业论文(设计) 三、复变函数的图形 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-4 11 从图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('z^3') %给图加标题 >> 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:5 w=w+i*2*pi; surf(real(z),imag(z),imag(w),real(w)); %作三维表面图 hold on title('Lnz') end >> syms z >> z=cplxgrid(20);w=log(z); >> for k=0 w=w+i*2*pi; surf(real(z),imag(z),imag(w),real(w)); hold on title('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('e^z') 仿真结果如下: 图3-9 图3-10 从图3-9可以看出是单值函数.我们知道实变函数,但是复变函数中不一定成立.图3-10是图3-9的侧面图,从中我们可以看出复变函数中的可以为负数.根据以上图像可以帮助我们更容易的理解和掌握它们的性质、规律. 四、结论 14 红河学院本科毕业论文(设计) 首先,本文第二章主要利用MATLAB符号运算功能及数学运算工具箱的优势,对复变函数中一些常见且重要的基本问题进行求解.从中可以看出,利用MATLAB求解这些问题具有规范、简洁、灵活等特点,大大简化了复变函数问题的求解过程,对求解一些较为复杂的复变函数问题有很大的帮助. 其次,本文第三章主要利用MATLAB高质量的作图功能把三角函数、幂函数、对数函数、指数函数等作图,再根据图形对这些函数进行分析.从中可以看出,利用MATLAB这一特点可以使抽象、繁杂的复变函数问题变得更直观、简单、具体;对于理解和掌握复变函数的理论知识也具有一定的辅助作用.但是一些复积分的计算和解析函数的边值问题还有待我们用MATLAB来实现. 五、课程体会 15 红河学院本科毕业论文(设计) 参考文献 [1] 钟玉泉.复变函数论[M].北京:高等教育出版社,2004:4-251. [2] 张学敏.MATLAB基础及应用[M].北京:中国电力出版社,2009:1-182. [3] 麻桂英,陈全新.用MATLAB提供《复变函数》教学质量[J].阴山学刊,2009,23(2):74-76. [4] 张莹.浅谈MATLAB在复变函数论中的应用[J].沈阳教育学院报,2005,7(2):127. [5] 王海英.复变函数共轭可微的又一充要条件及应用[J].吉林师范大学学报(自然科学版),2008,(2):82-83. [6] 邱双月.复积分的计算[J].邯郸学院学报,2009,19(3):57-60. [7] 杨静宇.复变函数积分中值定理[J].赤峰学院学报(自然科学版),2010,26(5):3-4. [8] 贺凯.MATLAB在《复变函数与积分变换》中的应用[J].沙洲职业工学院学报,2006,9(3):22-24. [9] 潘伟云.比较复变函数与二元函数的分析性质[J]. 吕梁高等专科学校学报,2010,26(2):4-6. [10] 何彩香,张晓玲.复变函数的解析点与孤立奇点的运算性质[J].大理学院学报,2010,9(4):17-19. [11] 贾新民.用MATLAB求留数[J].昌吉学院学报,2006,(3):101-103. [12] 王金英,李静.基本初等函数在复函范围的特殊性质[J].辽宁工业大学学报(自然科学版),2010,30(2):133-135. [13] 杨冰,闫循领.浅谈MATLAB在《复变函数》教学中的应用[J].科技信息,2010,5(7):87-91. [14] 王沫然.MATLAB6.0与科学计算[M].北京:电子工业出版社,2001:10-131. 16 红河学院本科毕业论文(设计) 致谢 本次论文能够顺利完成,是和我的老师、同学和朋友及家人的帮助分不开的.在这里我要对他们表示深切的敬意. 首先,我要特别感谢我的指导老师**老师.在短短的几个月里我从一点都不了解到我能够娴熟的掌握,这与我无数次去麻烦老师有很大的关系.不管再忙只要有问题找老师的时候老师总会抽出时间为我耐心讲解,可以说我能够掌握这些知识这都离不开老师无数的心血.在此,我向*老师表示由衷的感谢,谢谢他在这几个月的帮助和指导.同时刘老师的严谨细致、一丝不苟、不厌其烦的为我们讲解的作风是我在以后的学习和工作的榜样. 其次,感谢学院的各位领导、全体的同学及教授过我的老师们四年来对我的帮助和鼓励. 另外,还要感谢我的家人,他们是我最坚强的后盾.感谢他们的理解和支持以及无私的奉献,在这里祝愿我的家人身体健康、万事如意! 最后,更应该感谢各位答辩组的老师,感谢你们为完成我的答辩所付出的心血与汗水,谢谢老师们! 17
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服