数学物理建模与计算机辅助设计第二部分复变函数的计算机仿真数学物理建模与计算机辅助设计Page2本部分内容•复数和复数运算•复变函数的图形•复变函数的极限与导数•解析函数的图形•复变函数的积分•留数和级数的计算•复变函数的变换和逆变换数学物理建模与计算机辅助设计Page3复数和复数运算•复数的构成–数学上的复数的表示方法(1)代数表示(2)几何表示(3)三角表示(4)指数表示zxyi,zxycossinzrizriez=a+b*iz=r*exp(i*theta)数学物理建模与计算机辅助设计Page4复数和复数运算•创建复数矩阵(1)如之前一样输入(直接输入小矩阵,M文件输入大矩阵)例1:A=[3+5i,-2+3i;9*exp(6i),23*exp(33i)];A=3.0000+5.0000i-2.0000+3.0000i8.6415-2.5147i-0.3054+22.9980i例2:Exmx=1.0000+2.0000i2.0000+3.0000i3.0000+4.0000i4.0000+5.0000i5.0000+6.0000i6.0000+7.0000i%Exm.mx=[1+2i2+3i3+4i4+5i5+6i6+7i];数学物理建模与计算机辅助设计Page5复数和复数运算•创建复数矩阵(2)可用复数矩阵的实部矩阵和虚部矩阵构造例:re=rand(3,2);im=rand(3,2);com=re+i*imcom=0.9501+0.4565i0.4860+0.4447i0.2311+0.0185i0.8913+0.6154i0.6068+0.8214i0.7621+0.7919i数学物理建模与计算机辅助设计Page6复数和复数运算•创建复数矩阵(3)可用复数矩阵的模矩阵和辐角矩阵构造例:r=rand(3,2);theta=rand(3,2);com=r.*exp(i*theta)com=0.8529+0.4188i0.4387+0.2091i0.2311+0.0043i0.7278+0.5146i0.4134+0.4443i0.5353+0.5424i数学物理建模与计算机辅助设计Page7复数和复数运算•复数的实部和虚部的计算real(z)返回复数的实部imag(z)返回复数的虚部例1:real(com)ans=0.85290.43870.23110.72780.41340.5353例2:imag(com)ans=0.41880.20910.00430.51460.44430.5424com=0.8529+0.4188i0.4387+0.2091i0.2311+0.0043i0.7278+0.5146i0.4134+0.4443i0.5353+0.5424i对复数矩阵则返回对应的实部或虚部构成的矩阵数学物理建模与计算机辅助设计Page8复数和复数运算•复数的模和辐角的计算abs(z)返回复数的模angle(z)返回复数的辐角例:angle(0)ans=0angle(exp(-i*5*pi/4))ans=2.3562angle(exp(i*5*pi/4))ans=-2.3562[angle(exp(i*pi)),angle(exp(-i*pi))]ans=3.1416-3.1416复数0的辐角系统默认为0系统返回的辐角为辐角主值,主值区间为[-π~+π]数学物理建模与计算机辅助设计Page9复数和复数运算•共轭复数conj(x)返回复数的共轭•复数的乘法和除法*和/注意:(…)/5i=(…)/(5*i)•复数的幂^例:z=sym('a+i*b');collect(z^2)ans=a^2+2*i*a*b-b^2数学物理建模与计算机辅助设计Page10复数和复数运算•复数的平方根sqrt(z)返回z的平方根例:z=1+2i;rst=sqrt(z)rst=1.2720+0.7862iabs(z)=2.2361;angle(z)=1.1071;abs(rst)=1.4953;angle(rst)=0.5536.系统求平方根默认返回模开方,辐角直接除2的那一个根2expexp0,1,1nnkzrzrknnii数学物理建模与计算机辅助设计Page11复数和复数运算•复数方程求根–用函数solve求解例:求方程x3+8=0的所有根。solve('x^3+8=0');ans=-21+i*3^(1/2)1-i*3^(1/2)•复数的三角运算–复数的三角运算采用的函数和前面的一样数学物理建模与计算机辅助设计Page12复数和复数运算•复数的指数和对数运算exp(z)返回复数的以e为底的指数的值log(z)返回复数的以e为底的对数的值例1:求复数的指数值exp(3+4i)ans=-13.1288-15.2008i例2:求复数的对数log(-3+4i)ans=1.6094+2.2143iexp34i33exp34eexp4ecos4sin4-13.1288-15.2008iiiilog34ilog34log34arg342kiiii求对数时系统默认返回对数函数的主值分支数学物理建模与计算机辅助设计Page13复变函数的图形•MATLAB画复变函数图形命令–CPLXGRID构建极坐标的复数数据网络Z=CPLXGRID(m)•创建一个(m+1)×(2m+1)个网格点的复数极坐标系下的网格源代码:%cplxgrid.mfunctionz=cplxgrid(m)r=(0:m)'/m;theta=pi*(-m:m)/m;z=r*exp(i*theta);数学物理建模与计算机辅助设计Page14复变函数的图形•MATLAB画复变函数图形命令–CPLXMAP对复变函数作图CPLXMAP(z,f(z),(optionalbound))•画出复变函数f(z)的图形,optionalbound为选择变量的范围源代码:functioncplxmap(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([-11-11mM]);caxis([-11]);s=ones(size(z));mesh(x,y,m*s,blue*s);holdonsurf(x,y,u,v);holdoffcolormap(hsv(64))数学物理建模与计算机辅助设计Page15复变函数的图形•MATLAB画复变函数图形命令例1:绘制幂函数5z,z3的图形–z=cplxgrid(30);–cplxmap(z,5*z)–colorbar('vert')–title('z')3z(2)z=cplxgrid(30);cplxmap(z,z.^3)colorbar('vert')title('z')-1-0.500.51-1-0.500.51-505z-4-3-2-101234数学物理建模与计算机辅助设计Page16复变函数的图形•MATLAB画复变函数图形命令–CPLXROOT画复数n次根的函数曲面CPLXROOT(n,m)•以m×m网格画复数的n次方根•不指定m值则缺省为m=20•既不指定m值、也不指定n值,则n值缺省为3源代码:functioncplxroot(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));数学物理建模与计算机辅助设计Page17复变函数的图形•MATLAB画复变函数图形命令例2:绘制幂函数z1/2,z1/3的图形(3)z=cplxgrid(30);cplxroot(2)colorbar('vert')title('z^{1/2}')(4)z=cplxgrid(30);cplxroot(3)colorbar('vert')title('z^{1/3}')数学物理建模与计算机辅助设计Page18复变函数的图形•MATLAB画复变函数图形命令练习:绘制复变函数1/z的图像z=5*cplxgrid(30);cplxmap(z,1./(z+eps*(abs(z)==0)),5*pi)colorbar('vert')title('1/z')数学物理建模与计算机辅助设计Page19复变函数的图形•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)')数学物理建模与计算机辅助设计Page20复变函数的图形•clf•z=2*cplxgrid(30);•z1=z;•z1(abs(z1)=1)=NaN;•w1=1;•u1=1;•fork=1:100•u1=u1.*z1;•w1=w1+u1;•end•cplxmap(z1,w1)•colorbar•axis([-1,1,-1,1])01(1)1kkzzz当时,的泰勒展开式是1z01(1)1kkzzz11z在指令窗口输入如下指令数学物理建模与计算机辅助设计Page21复变函数的图形•clf•z=2*cplxgrid(30);•z2=z;•z2(abs(z2)=1)=NaN;•w2=1./z2;•u2=1./z2;•fork=1:100•u2=u2./z2;•w2=w2+u2;•end•cplxmap(z2,-w2,10)•axis([-2,2,-2,2])•colorbar当时,的罗朗展开式是1z11(1)1kkzzz11z在指令窗口输入如下指令数学物理建模与计算机辅助设计Page22复变函数的图形•MATLAB画复变函数图形命令例4:绘制指数函数ez的图形和其泰勒展开的图形figure(1)z=5*cplxgrid(30);cplxmap(z,exp(z));figure(2)w=1;u=1;fork=1:5u=u.*z./k;w=w+u;endcplxmap(z,w)数学物理建模与计算机辅助设计Page23复变函数的图形•MATLAB画复变函数图形命令例5:绘制对数函数lnz的图形,z=cplxgrid(20);w=log(z+eps*(abs(z)==0));fork=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('lnz')endcolorbar(2)(0,1,2,3)ikzek数学物理建模与计算机辅助设计Page24复变函数的图形z=cplxgrid(20);w=log(z);fork=0:3w=w+i*2*pi;surf(real(z),imag(z),imag(w),real(w));holdontitle('lnz')endcolorbar数学物理建模与计算机辅助设计Page25复变函数的图形•MATLAB画复变函数图形命令例6.1:三角函数sinz的图形z=5*cplxgrid(30);cplxmap(z,sin(z));colorbar('vert');title('sin(z)');数学物理建模与计算机辅助设计Page26复变函数的图形•MATLAB画复变函数图形命令例6.2:三角函数cosz的图形z=5*cplxgrid(30);cplxmap(z,cos(z))