复数的计算和图示
3 MATLAB关于复数运算的函数
函数
功能
函数
功能
函数
功能
abs
模和绝对值
angle
相角弧度
conj
复数共轭
real
复数实部
imag
复数虚部
{范例3_1}复数的加减法
设有两个复数z1 = 1 + 2i和z2 = 4 + 3i,其中i是虚数单位。求两个复数的和z1 + z2和差z2z1
[解析]复数有三种表示形式
(1)代数式
z = x + iy                            (3_1_1)
(2)三角式
z = r(cosθ + isinθ)                        (3_1_2)
其中r是复数的模,θ是复角。代数式与三角式的换算关系是
                      (3_1_3)
x = rcosθy = rsinθ                        (3_1_4)
(3)指数式
z = reiθ                            (3_1_5)
其中利用了欧拉公式
eiθ = cosθ + isinθ                        (3_1_6)
设有两个复数
z1 = x1 + iy1z2 = 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)
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)函数realimag取复数的实部和虚部。
(3)如果已知数据的实部和虚部,也可形成复数。
(4)求复数之和时,实部与实部相加,虚部与虚部相加,形成新的复数。
(5)quiver指令画箭杆,前两个参数表示箭杆的起点坐标,后两个参数表示箭杆两个分量的长度,第5个参数表示按所给数据画箭杆。
(6)画虚线形成平行四边形,如P3_1a图所示。
(7)坐标间隔应该相等。
(8)对于复数(包括实数)abs函数求模。
(9)angle函数求复角。
(10)text指令显示文本。
(11)求复数之差时,三个复数形成三角形。
P3_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)
可见:两复数相乘时,其模等于两个复数的模的乘积,其复角等于两个复数的复角之和。
复数除法为
  (3_1_12)
用指数表式为
z = r2exp(θ2)/[r1exp(θ1)] = (r2/r1)exp(θ2θ1)              (3_1_13)
可见:两复数相除时,其模等于两个复数模的商,其复角等于两个复数的复角之差。
复数的乘方用指数表示为
zn = |z|nexp(i) = |z|ncos() + isin()                (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)]; %横和复角字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。