首页 > 编程笔记

MATLAB复数及其运算

复数对于数学本身的发展有着极其重要的意义,MATLAB 提供了丰富的复数函数用于复数运算。

复数的表示

数学上把形如 a+bi(a, b 均为实数)的数称为复数。其中,a 称为实部(real part),记作 Rez=a;b 称为虚部(imaginary part),记作 Imz=b;i 称为虚数单位。

当虚部等于 0(即 b=0),这个复数可以视为实数;当 z 的虚部不等于 0,实部等于 0(即 a=0 且 b≠0)时,z=bi,常称 z 为纯虚数。

【实例】显示复数。MATLAB 程序如下:
>> clear             % 清除工作区的变量
>> 1+2i              % 直接输入复数
ans =
   1.0000 + 2.0000i
>> 2-3i
ans =
   2.0000 - 3.0000i
>> 5+6j
ans =
   5.0000 + 6.0000j
>> 2i
ans =
   0.0000 + 2.0000i
>> -3i
ans =
   0.0000 - 3.0000i

复数的基本元素函数

若存在复数 c1=a1+b1i 和复数 c2=a2+b2i,那么它们的加、减、乘、除运算定义为

c1+c2=(a1+a2)+(b1+b2)i
c1+c2=(a1-a2)+(b1-b2)i
c1xc2=(a1a2-b1b2)+(a1b2+b1a2)i
c1/c2=(a1a2+b1b2)/(a12+b22)+(b1a2-a1b2)/(a22+b22)i

当两个复数进行二元运算时,MATLAB 将会用上面的法则进行加法、减法、乘法和除法运算。

【实例】复数运算。MATLAB 程序如下:
>> clear             % 清除工作区的变量
>> A=1+2i;           % 创建两个变量A和B,分别赋值为复数
>> B=3+5i;
>> C=A+B             % 复数相加
C =
   4.0000 + 7.0000i
>> C=A-B             % 复数相减
C =
  -2.0000 - 3.0000i
>> C=A*B             % 复数相乘
C =
  -7.0000 +11.0000i
>> C=A/B             % 复数相除
C =
   0.3824 + 0.0294i
MATLAB 提供的复数基本函数及说明如下表所示。

表 1 复数基本函数及说明
名称 说明 名称 说明
abs complex 用实部和虚部构造一个复数
angle 复数的相角 conj 复数的共轭
imag 复数的虚部 real 复数的实部
unwrap 调整矩阵元素的相位 isreal 判断是否为实数矩阵
cplxpair 把复数矩阵排列成复共轭对    

复数的操作函数

1) 复数的模

除基本表示方式外,复数还有另一种表达方式,即极坐标表示方式,具体为

z=a+bi =r∠θ

其中,r 代表复数 z 的模,θ 代表辐角。直角坐标中的 a,b 和极坐标 z,θ 之间的关系为:


这里,调用 abs 函数可直接得到复数的模。

【实例】复数求模运算。MATLAB程序如下:
>> clear       % 清除工作区的变量
>> A=1+2i;     % 创建变量A,赋值为复数
>> B=angle(A)  % 求复数的幅角θ
B =
    1.1071
>> C=abs(A)    % 求复数的模
C =
    2.2361

2) 复数的共轭

如果复数 c=a+bi,那么该复数的共轭复数为 d=a-bi。

【实例】复数求共轭运算。MATLAB 程序如下:
>> clear      % 清除工作区的变量
>> A=1+2i;    % 创建变量A,赋值为复数
>> B=real(A)  % 得到复数的实数部分
B =
     1
>> C=imag(A)       % 得到复数的虚数部分
C =
     2
>> D=conj(A)       % 得到复数的共轭复数
D =
   1.0000 - 2.0000i

3) 构造复数

使用函数 complex(a,b) 可以构造复数;直接输入 a+bi 形式的数值,也可以得到复数。

【实例】复数构造运算。MATLAB程序如下:
>> clear             % 清除工作区的变量
>> complex(1,3)      % 使用函数构造复数
ans =
   1.0000 + 3.0000i
>> 1+3i              % 直接输入复数
ans =
   1.0000 + 3.0000i

4) 实数矩阵

若复数矩阵中的元素的虚部均为0,即显示为

c=a+bi

其中,b=0,可以简写为

c=a

则该复数矩阵称为实数矩阵。调用 isreal(X) 函数显示结果为 1,反之显示为 0。单个复数视为单元素复数矩阵处理。

【实例】复数转换为实数运算。MATLAB 程序如下:
>> clear      % 清除工作区的变量
>> A=1+2i;    % 创建变量A,赋值为复数
>> isreal(A)  % 判断复数A是否为实数矩阵
ans =
logical
     0
>> M=1        % 创建变量M,赋值为实数
M =
     1
>> isreal(M)  % 判断M是否为实数矩阵
ans =
logical
     1

推荐阅读