MATLAB实用技巧精讲之四ppt课件.ppt
数学物理建模与计算机辅助设计,第二部分 复变函数的计算机仿真,Page 2,本部分内容,复数和复数运算复变函数的图形复变函数的极限与导数解析函数的图形复变函数的积分留数和级数的计算复变函数的变换和逆变换,Page 3,复数和复数运算,复数的构成数学上的复数的表示方法 (1) 代数表示 (2) 几何表示 (3) 三角表示 (4) 指数表示,z=a+b*iz= r*exp(i*theta),Page 4,复数和复数运算,创建复数矩阵(1) 如之前一样输入(直接输入小矩阵,M文件输入大矩阵)例1:A=3+5i, -2+3i; 9*exp(6i), 23*exp(33i); A = 3.0000 + 5.0000i -2.0000 + 3.0000i 8.6415 - 2.5147i -0.3054 +22.9980i例2:Exm x = 1.0000 + 2.0000i 2.0000 + 3.0000i 3.0000 + 4.0000i 4.0000 + 5.0000i 5.0000 + 6.0000i 6.0000 + 7.0000i,%Exm.mx=1+2i 2+3i 3+4i 4+5i 5+6i 6+7i;,Page 5,复数和复数运算,创建复数矩阵(2) 可用复数矩阵的实部矩阵和虚部矩阵构造例:re=rand(3,2); im=rand(3,2); com=re+i*im com= 0.9501 + 0.4565i 0.4860 + 0.4447i 0.2311 + 0.0185i 0.8913 + 0.6154i 0.6068 + 0.8214i 0.7621 + 0.7919i,Page 6,复数和复数运算,创建复数矩阵(3) 可用复数矩阵的模矩阵和辐角矩阵构造例:r=rand(3,2); theta=rand(3,2); com=r.*exp(i*theta) com= 0.8529 + 0.4188i 0.4387 + 0.2091i 0.2311 + 0.0043i 0.7278 + 0.5146i 0.4134 + 0.4443i 0.5353 + 0.5424i,Page 7,复数和复数运算,复数的实部和虚部的计算real(z) 返回复数的实部imag(z) 返回复数的虚部例1:real(com) ans = 0.8529 0.4387 0.2311 0.7278 0.4134 0.5353,例2:imag(com) ans = 0.4188 0.2091 0.0043 0.5146 0.4443 0.5424,com= 0.8529 + 0.4188i 0.4387 + 0.2091i 0.2311 + 0.0043i 0.7278 + 0.5146i 0.4134 + 0.4443i 0.5353 + 0.5424i,对复数矩阵则返回对应的实部或虚部构成的矩阵,Page 8,复数和复数运算,复数的模和辐角的计算abs(z) 返回复数的模angle(z) 返回复数的辐角例:angle(0) ans = 0 angle(exp(-i*5*pi/4) ans = 2.3562 angle(exp(i*5*pi/4) ans = -2.3562 angle(exp(i*pi), angle(exp(-i*pi) ans = 3.1416 -3.1416,复数0的辐角系统默认为0,系统返回的辐角为辐角主值,主值区间为- +,Page 9,复数和复数运算,共轭复数conj(x) 返回复数的共轭复数的乘法和除法*和/ 注意:()/5i= ()/(5*i)复数的幂例:z = sym(a+i*b); collect(z2) ans = a2+2*i*a*b-b2,Page 10,复数和复数运算,复数的平方根sqrt(z) 返回z的平方根例:z=1+2i; rst = sqrt(z) rst = 1.2720 + 0.7862i abs(z) =2.2361; angle(z) =1.1071; abs(rst)=1.4953; angle(rst)=0.5536.,系统求平方根默认返回模开方,辐角直接除2的那一个根,怎么求所有根?,Page 11,复数和复数运算,复数方程求根用函数solve求解例:求方程x3+8=0的所有根。solve(x3+8=0);ans = -2 1+i*3(1/2) 1-i*3(1/2)复数的三角运算复数的三角运算采用的函数和前面的一样,Page 12,复数和复数运算,复数的指数和对数运算exp(z) 返回复数的以e为底的指数的值log(z) 返回复数的以e为底的对数的值例1:求复数的指数值exp(3+4i)ans = -13.1288 -15.2008i例2:求复数的对数log(-3+4i)ans = 1.6094 + 2.2143i,求对数时系统默认返回对数函数的主值分支,Page 13,复变函数的图形,MATLAB画复变函数图形命令CPLXGRID构建极坐标的复数数据网络 Z=CPLXGRID(m)创建一个(m+1)(2m+1)个网格点的复数极坐标系下的网格源代码:%cplxgrid.mfunction z = cplxgrid(m)r = (0:m)/m;theta = pi*(-m:m)/m;z = r * exp(i*theta);,Page 14,复变函数的图形,MATLAB画复变函数图形命令CPLXMAP 对复变函数作图 CPLXMAP(z, f(z), (optional bound)画出复变函数f(z)的图形,optional bound为选择变量的范围源代码:function cplxmap(z,w,B)blue = 0.2;x = real(z); y = imag(z); u = real(w); v = imag(w);M = max(max(u); m = min(min(u);axis(-1 1 -1 1 m M); caxis(-1 1); s = ones(size(z);mesh(x,y,m*s,blue*s); hold onsurf(x,y,u,v); hold offcolormap(hsv(64),Page 15,复变函数的图形,MATLAB画复变函数图形命令例1:绘制幂函数5z, z3的图形z=cplxgrid(30); cplxmap(z,5*z)colorbar(vert) title(z),(2)z=cplxgrid(30); cplxmap(z, z.3) colorbar(vert) title(z),Page 16,复变函数的图形,MATLAB画复变函数图形命令CPLXROOT 画复数n次根的函数曲面 CPLXROOT(n, m)以mm网格画复数的n次方根不指定m值则缺省为m=20既不指定m值、也不指定n值,则n值缺省为3源代码:function cplxroot(n,m)r = (0:m)/m; theta = pi*(-n*m:n*m)/m;z = r * exp(i*theta); s = r.(1/n) * exp(i*theta/n);surf(real(z),imag(z),real(s),imag(s);,Page 17,复变函数的图形,MATLAB画复变函数图形命令例2:绘制幂函数z1/2, z1/3的图形(3) z=cplxgrid(30); cplxroot(2) colorbar(vert) title(z1/2)(4) z=cplxgrid(30); cplxroot(3) colorbar(vert) title(z1/3),Page 18,复变函数的图形,MATLAB画复变函数图形命令练习:绘制复变函数1/z的图像z=5*cplxgrid(30);cplxmap(z, 1./(z+eps*(abs(z)=0), 5*pi)colorbar(vert)title(1/z),Page 19,复变函数的图形,MATLAB画复变函数图形命令例3:绘制复变函数1/(1-z)的图像,并验证其泰勒展开和罗朗展开的函数,clfz=2*cplxgrid(30);cplxmap(z, 1./(1-z+eps*(abs(z)=1),10*pi)colorbar(vert)title(1/(1-z),Page 20,复变函数的图形,clfz=2*cplxgrid(30);z1=z;z1(abs(z1)=1)=NaN;w1=1; u1=1;for k=1:100 u1=u1.*z1; w1=w1+u1;endcplxmap(z1,w1)colorbaraxis(-1,1,-1,1),当 时, 的泰勒展开式是,在指令窗口输入如下指令,Page 21,复变函数的图形,clfz=2*cplxgrid(30);z2=z;z2(abs(z2)=1)=NaN;w2=1./z2; u2=1./z2;for k=1:100 u2=u2./z2; w2=w2+u2;endcplxmap(z2,-w2,10)axis(-2,2,-2,2)colorbar,当 时, 的罗朗展开式是,在指令窗口输入如下指令,Page 22,复变函数的图形,MATLAB画复变函数图形命令例4:绘制指数函数ez的图形和其泰勒展开的图形figure(1)z=5*cplxgrid(30);cplxmap(z,exp(z);figure(2)w=1; u=1;for k=1:5 u=u.*z./k; w=w+u;endcplxmap(z, w),Page 23,复变函数的图形,MATLAB画复变函数图形命令例5:绘制对数函数lnz的图形,,z=cplxgrid(20);w=log(z+eps*(abs(z)=0);for k=0:3subplot(2,2,k+1)w=w+i*2*pi;surf(real(z), imag(z), real(w), imag(w);caxis(0, 8*pi);title(ln z)endcolorbar,Page 24,复变函数的图形,z=cplxgrid(20);w=log(z);for k=0:3w=w+i*2*pi;surf(real(z), imag(z),imag(w), real(w);hold ontitle(ln z)endcolorbar,Page 25,复变函数的图形,MATLAB画复变函数图形命令例6.1:三角函数sin z的图形,z=5*cplxgrid(30);cplxmap(z, sin(z);colorbar(vert);title(sin(z);,Page 26,复变函数的图形,MATLAB画复变函数图形命令例6.2:三角函数cos z的图形,z=5*cplxgrid(30);cplxmap(z,cos(z);colorbar(vert);title(cos(z);,Page 27,复变函数的图形,MATLAB画复变函数图形命令练习:画出复变函数shz( sinh z)和chz( cosh z)的图形,Page 28,复变函数的极限与导数,复变函数的极限,limit(F, z, a),复变函数的极限存在的条件是要求复变函数的实部和虚部同时存在极限,可采用以下命令实现:,Page 29,复变函数的极限与导数,例1:求极限,syms zf=sin(z)/z;limit(f, z, 0)ans=1limit(f, z, 1+i)ans = 1/2*sin(1)*cosh(1)-1/2*i*sin(1)*cosh(1)+1/2*i*cos(1)*sinh(1)+1/2*cos(1)*sinh(1),Page 30,复变函数的极限与导数,复变函数的极限例2:若x为实数,求极限syms xf=(1+1/(i*x)(i*x);limit(f,x,+inf)ans = exp(1),Page 31,复变函数的极限与导数,复变函数的导数复变函数的导数的求法采用命令 diff(f, z, N)例1:求下列函数导数syms zf1=log(1+sin(z);f2=sqrt(z-1)*(z-2);df1=diff(f1,z);df2=diff(f2,z);vdf1=subs(df1,z,i/2);vdf2=subs(df2,z,3+i/2);,df1 = cos(z)/(1+sin(z)df2 = 1/2/(z-1)*(z-2)(1/2)*(2*z-3)vdf1 = 0.8868 - 0.4621ivdf2 = 1.0409 - 0.0339i,Page 32,复变函数的极限与导数,复变函数的导数例2:求下列函数的高阶导数syms xf=sin(x)*(cos(x)2;df1=diff(f,x)df1a=diff(f,x,1)df1b=diff(f,1)df2=diff(f,x,2),df1 = cos(x)3-2*sin(x)2*cos(x)df1a =cos(x)3-2*sin(x)2*cos(x)df1b =cos(x)3-2*sin(x)2*cos(x)df2 = -7*sin(x)*cos(x)2+2*sin(x)3,Page 33,上机练习,1.计算仿真求解下列复数的实部、虚部、共轭复数、模和辐角2.求解方程3.绘制复变函数 的图像,并验证其泰勒展开和罗朗 展开的函数。,