复数对于数学本身的发展有着极其重要的意义,MATLAB提供了丰富的复数函数用于复数运算。
数学上把形如 a + b i( a , b 均为实数)的数称为复数。其中, a 称为实部(real part),记作Rez= a ; b 称为虚部(imaginary part),记作Imz= b ;i称为虚数单位。
当虚部等于0(即 b =0),这个复数可以视为实数;当 z 的虚部不等于0,实部等于0(即 a =0且 b ≠0)时, z = b i,常称 z 为纯虚数。
例2-27: 显示复数。
解 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
若存在复数 c 1 = a 1 + b 1 i和复数 c 2 = a 2 + b 2 i ,那么它们的加、减、乘、除运算定义为
当两个复数进行二元运算时,MATLAB将会用上面的法则进行加法、减法、乘法和除法运算。
例2-28: 复数运算。
解 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提供的复数基本函数及说明如表2-25所示。
表2-25 复数基本函数及说明
除基本表示方式外,复数还有另一种表达方式,即极坐标表示方式,具体为
z = a + b i = r ∠ θ
其中, r 代表复数 z 的模, θ 代表辐角。直角坐标中的 a , b 和极坐标 z , θ 之间的关系为
这里,调用abs函数可直接得到复数的模。
例2-29: 复数求模运算。
解 MATLAB程序如下:
>> clear % 清除工作区的变量 >> A=1+2i; % 创建变量A,赋值为复数 >> B=angle(A) % 求复数的幅角θ B = 1.1071 >> C=abs(A) % 求复数的模 C = 2.2361
如果复数 c = a + b i,那么该复数的共轭复数为 d = a - b i。
例2-30: 复数求共轭运算。
解 MATLAB程序如下:
>> clear % 清除工作区的变量 >> A=1+2i; % 创建变量A,赋值为复数 >> B=real(A) % 得到复数的实数部分 B = 1 >> C=imag(A) % 得到复数的虚数部分 C = 2 >> D=conj(A) % 得到复数的共轭复数 D = 1.0000 - 2.0000i
使用函数complex(a,b)可以构造复数;直接输入 a + b i形式的数值,也可以得到复数。
例2-31: 复数构造运算。
解 MATLAB程序如下:
>> clear % 清除工作区的变量 >> complex(1,3) % 使用函数构造复数 ans = 1.0000 + 3.0000i >> 1+3i % 直接输入复数 ans = 1.0000 + 3.0000i
若复数矩阵中的元素的虚部均为0,即显示为
c = a + bi
其中, b =0,可以简写为
c = a
则该复数矩阵称为实数矩阵。调用isreal(X)函数显示结果为1,反之显示为0。单个复数视为单元素复数矩阵处理。
例2-32: 复数转换为实数运算。
解 MATLAB程序如下:
>> clear % 清除工作区的变量 >> A=1+2i; % 创建变量A,赋值为复数 >> isreal(A) % 判断复数A是否为实数矩阵 ans = logical 0 >> M=1 % 创建变量M,赋值为实数 M = 1 >> isreal(M) % 判断M是否为实数矩阵 ans = logical 1