复数的计算和图示表3 MATLAB关于复数运算的函数{范例3_1}复数的加减法设有两个复数z1 = 1 + 2i和z2 = 4 + 3i,其中i是虚数单位求两个复数的和z1 + z2和差z2–z1。
[解析]复数有三种表示形式(1)代数式z = x + i y(3_1_1)(2)三角式z = r(cosθ + isinθ) (3_1_2) 其中r是复数的模,θ是复角。
代数式与三角式的换算关系是r=arctan y xθ(3_1_3)x = r cosθ,y = r sinθ(3_1_4)(3)指数式z = r e iθ(3_1_5) 其中利用了欧拉公式e iθ= cosθ + isinθ(3_1_6)设有两个复数z1 = x1 + i y1,z2 = x2 + i y2(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)hold on%保持图像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)axis equal%使坐标刻度相等(7)grid on%加网格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)hold on%保持图像quiver(0,0,x2,y2,0) %画第2个复数quiver(x1,y1,x,y,0) %画复数之差axis equal%使坐标刻度相等grid on%加网格title('两复数之差','FontSize',16) %标题[说明](1)变量i表示虚数单位,可用于形成复数。
(2)函数real和imag取复数的实部和虚部。
(3)如果已知数据的实部和虚部,也可形成复数。
(4)求复数之和时,实部与实部相加,虚部与虚部相加,形成新的复数。
(5)quiver指令画箭杆,前两个参数表示箭杆的起点坐标,后两个参数表示箭杆两个分量的长度,第5个参数表示按所给数据画箭杆。
(6)画虚线形成平行四边形,如P3_1a图所示。
(7)坐标间隔应该相等。
(8)对于复数(包括实数),abs函数求模。
(9)angle函数求复角。
(10)text指令显示文本。
(11)求复数之差时,三个复数形成三角形。
P3_1a 图 P3_1b 图{范例3_2}复数的乘除法设有两个复数z 1 = 1 + 2i 和z 2 = 4 + 3i ,求两个复数的积z 1z 2和商z 2/z 1。
[解析]复数乘法为z = z 1z 2 = (x 1 + i y 1)(x 2 + i y 2) = x 1x 2 - y 1y 2 + i(x 1y 2 + x 2y 1) (3_1_10)用指数表式为z = r 1exp(θ1)r 2exp(θ2) = r 1r 2exp(θ1 + θ2) (3_1_11)可见:两复数相乘时,其模等于两个复数的模的乘积,其复角等于两个复数的复角之和。
复数除法为22222111212122122111111111i (i )(i )()i()====i (i )(i )z x y x y x y x x y y x y x y z z x y x y x y x y ++-++-++-+ (3_1_12)用指数表式为z = r 2exp(θ2)/[r 1exp(θ1)] = (r 2/r 1)exp(θ2 – θ1) (3_1_13)可见:两复数相除时,其模等于两个复数模的商,其复角等于两个复数的复角之差。
复数的乘方用指数表示为z n = |z |n exp(i n θ) = |z |n cos(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个复数hold on %保持图像quiver(0,0,x2,y2,0) %画第2个复数quiver(0,0,x,y,0) %画复数之和(2)axis equal %使坐标刻度相等grid on %加网格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)n n kz z n θ+=,k = 0,…,n - 1(3_1_15)例如,对-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πππ1(8)2exp(i)2[cos()+isin()]2(i 133322-===+=+当k = 1时,可得第2个根1/3π2π(8)2exp(i)2(cos πisin π)23+-==+=-当k = 2时,可得第3个根1/3π4π5π5π1(8)2exp(i)2[cos()isin()]2(i )133322+-==+=-=-第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)axis equal %使坐标间隔相等grid on %加网格hold on %保持图像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)]; %被开方数文本txt=[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)利用复数画圆。