您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > MATLAB可视化方法和技巧1-3复数的计算和图示
1复数的计算和图示表3MATLAB关于复数运算的函数函数功能函数功能函数功能abs模和绝对值angle相角弧度conj复数共轭real复数实部imag复数虚部{范例3_1}复数的加减法设有两个复数z1=1+2i和z2=4+3i,其中i是虚数单位i=1。求两个复数的和z1+z2和差z2–z1。[解析]复数有三种表示形式(1)代数式z=x+iy(3_1_1)(2)三角式z=r(cosθ+isinθ)(3_1_2)其中r是复数的模,θ是复角。代数式与三角式的换算关系是22=rxy,=arctanyx(3_1_3)x=rcosθ,y=rsinθ(3_1_4)(3)指数式z=reiθ(3_1_5)其中利用了欧拉公式eiθ=cosθ+isinθ(3_1_6)设有两个复数z1=x1+iy1,z2=x2+iy2(3_1_7)复数加法是z=z1+z2=(x1+x2)+i(y1+y2)(3_1_8)复数减法是z=z1-z2=(x1-x2)+i(y1-y2)(3_1_9)[程序]P3_1plus.m如下。%复数的加减法clear%清除变量z1=1+2i;%第1个复数(1)x1=real(z1);%取第1个复数的实部(2)y1=imag(z1);%取第1个复数的虚部(2)x2=4;%第2个复数的实部y2=3;%第2个复数的虚部z2=x2+i*y2;%形成第2个复数(3)z=z1+z2;%两复数之和(4)x=real(z);%取复数的实部y=imag(z);%取复数的虚部figure%创建图形窗口quiver(0,0,x1,y1,0)%在复平面画第1个复数(5)2holdon%保持图像quiver(0,0,x2,y2,0)%画第2个复数(5)quiver(0,0,x,y,0)%画复数之和(5)plot([x1,x],[y1,y],'--')%画虚线(6)plot([x2,x],[y2,y],'g--')%画虚线(6)axisequal%使坐标刻度相等(7)gridon%加网格r=abs(z);%求模(8)theta=angle(z)*180/pi;%求复角(9)text(0,0,num2str(theta),'FontSize',16)%显示复角(10)text(x,y,num2str(r),'FontSize',16)%显示模(10)title('两复数之和','FontSize',16)%显示标题z=z2-z1;%两复数之差x=real(z);%取复数的实部y=imag(z);%取复数的虚部figure%创建图形窗口quiver(0,0,x1,y1,0)%在复平面画第1个复数(11)holdon%保持图像quiver(0,0,x2,y2,0)%画第2个复数quiver(x1,y1,x,y,0)%画复数之差axisequal%使坐标刻度相等gridon%加网格title('两复数之差','FontSize',16)%标题[说明](1)变量i表示虚数单位,可用于形成复数。(2)函数real和imag取复数的实部和虚部。(3)如果已知数据的实部和虚部,也可形成复数。(4)求复数之和时,实部与实部相加,虚部与虚部相加,形成新的复数。(5)quiver指令画箭杆,前两个参数表示箭杆的起点坐标,后两个参数表示箭杆两个分量的长度,第5个参数表示按所给数据画箭杆。(6)画虚线形成平行四边形,如P3_1a图所示。(7)坐标间隔应该相等。(8)对于复数(包括实数),abs函数求模。(9)angle函数求复角。(10)text指令显示文本。(11)求复数之差时,三个复数形成三角形。3P3_1a图P3_1b图{范例3_2}复数的乘除法设有两个复数z1=1+2i和z2=4+3i,求两个复数的积z1z2和商z2/z1。[解析]复数乘法为z=z1z2=(x1+iy1)(x2+iy2)=x1x2-y1y2+i(x1y2+x2y1)(3_1_10)用指数表式为z=r1exp(θ1)r2exp(θ2)=r1r2exp(θ1+θ2)(3_1_11)可见:两复数相乘时,其模等于两个复数的模的乘积,其复角等于两个复数的复角之和。复数除法为22222111212122122111111111i(i)(i)()i()====i(i)(i)zxyxyxyxxyyxyxyzzxyxyxyxy(3_1_12)用指数表式为z=r2exp(θ2)/[r1exp(θ1)]=(r2/r1)exp(θ2–θ1)(3_1_13)可见:两复数相除时,其模等于两个复数模的商,其复角等于两个复数的复角之差。复数的乘方用指数表示为zn=|z|nexp(inθ)=|z|ncos(nθ)+isin(nθ)(3_1_14)[程序]P3_2times.m如下。%复数的乘除法clear%清除变量z1=input('请输入第1个复数(包括实数和虚数)z1:');%键盘输入第1个复数(1)z2=input('请输入第1个复数(包括实数和虚数)z2:');%键盘输入第2个复数(1)x1=real(z1);%取第1个复数的实部y1=imag(z1);%取第1个复数的虚部x2=real(z2);%取第2个复数的实部y2=imag(z2);%取第2个复数的虚部z=z1*z2;%两复数之积x=real(z);%取复数的实部y=imag(z);%取复数的虚部figure%创建图形窗口quiver(0,0,x1,y1,0)%在复平面画第1个复数holdon%保持图像quiver(0,0,x2,y2,0)%画第2个复数4quiver(0,0,x,y,0)%画复数之和(2)axisequal%使坐标刻度相等gridon%加网格r1=abs(z1);%求第1个复数的模theta1=angle(z1)*180/pi;%求第1个复数的复角txt=[num2str(r1),',',num2str(theta1)];%横和复角字符串text(x1,y1,txt,'FontSize',16)%显示模和复角r2=abs(z2);%求第2个复数的模theta2=angle(z2)*180/pi;%求第2个复数的复角txt=[num2str(r2),',',num2str(theta2)];%模和复角字符串text(x2,y2,txt,'FontSize',16)%显示模和复角r=abs(z);%求模theta=angle(z)*180/pi;%求复角txt=[num2str(r),',',num2str(theta)];%模和复角字符串text(x,y,txt,'FontSize',16)%显示模和复角z=z2/z1;%两复数之商x=real(z);%取复数的实部y=imag(z);%取复数的虚部r=abs(z);%求模quiver(0,0,x,y,0)%画复数之和theta=angle(z)*180/pi;%求复角txt=[num2str(r),',',num2str(theta)];%模和复角字符串text(x,y,txt,'FontSize',16)%显示模和复角title('两复数之积和商','FontSize',16)%显示标题[说明](1)两个复数都从键盘输入。(2)当两个复数分别为1+2i和4+3i时,结果如P3_2图所示。P3_2图{范例3_3}复数的开方求复数z的开整数次方。[解析]复数开方的公式(棣莫佛公式)为1/1/2π||exp(i)nnkzzn,k=0,…,n-1(3_1_15)5例如,对-8开三次方,由于-8=8exp(πi)=8(cosπ+isinπ)=8exp(iπ)所以1/31/3π2π(8)8exp(i)3k,k=0,1,2当k=0时,可得第1个根1/3πππ13(8)2exp(i)2[cos()+isin()]2(i)1i333322当k=1时,可得第2个根1/3π2π(8)2exp(i)2(cosπisinπ)23当k=2时,可得第3个根1/3π4π5π5π13(8)2exp(i)2[cos()isin()]2(i)1i333322第1个根与第第3个根互相共轭。[程序]P3_3complex.m如下。%复数的开方clear%清除变量z=input('请输入复数(包括实数和虚数)z:');%键盘输入被开方数n=input('请输入被开方的整数n:');%键盘输入开方次数r0=abs(z)^(1/n);%开方后的模th0=angle(z)/n;%开方后的主复角k=0:n-1;%整数向量th=th0+2*pi*k/n;%开方后的复角向量r=r0*exp(i*th);%开方后的向量figure%创建图形窗口plot(r0*exp(i*linspace(0,2*pi)),'--');%画圆(1)axisequal%使坐标间隔相等gridon%加网格holdon%保持图像plot(r,'r*')%画点(2)plot(z^(1/n),'o')%画直接开方的点(3)o=zeros(1,n);%全零向量x=real(r);%各点横坐标y=imag(r);%各点纵坐标plot([o;x],[o;y])%画线(4)fs=16;%字体大小text(x,y,num2str(r.',4),'FontSize',fs)%显示各点之值(5)xlabel('\itx','FontSize',fs)%横坐标ylabel('\ity','FontSize',fs)%纵坐标title('复数的开方','FontSize',fs)%标题txt=['\itz\rm=',num2str(z)];%被开方数文本6txt=[txt,',\itn\rm=',num2str(n)];%连接指数文本txt=[txt,',\it\theta\rm_0=',num2str(th0*180/pi),'\circ'];%连接角度文本txt=[txt,',\itr\rm_0=',num2str(r0)];%连接模文本text(0,0,txt,'FontSize',fs)%显示角度等文本[说明](1)利用复数画圆。(2)根据复数可直接画出所有根。当z=-8,n=3时,结果如P3_3a图所示。当z=i,n=2时,结果如P3_3b图所示。(3)直接对一个复数开方,将得出第一个根。(4)利用矩阵画每个根到圆心的连线。(5)当-8开三次方时,第二个根的虚部应该是零,计算的结果是一个很小的数。将很小的数改为零的方法是前面插入如下语句l=abs(imag(r))1e-8;%虚部太小的数为逻辑真r(l)=real(r(l));%逻辑真者取其实部(虚部为零)如果实部太小,则插入如下语句。l=abs(real(r))1e-8;%实部太小的数为逻辑真r(l)=imag(r(l))*i;%逻辑真者取其虚部(实部为零)P3_3a图P3_3b图[作业]求复数的乘方,画矢量图。
本文标题:MATLAB可视化方法和技巧1-3复数的计算和图示
链接地址:https://www.777doc.com/doc-4662850 .html