MATLAB编程-简介
完成条件
复数(Complex Numbers)
MATLAB 也支持复数的使用。复数由两部分组成:实部 和 虚部,其形式为:
z=a+bi或z=a+bjz = a + bi \quad \text{或} \quad z = a + bj
其中 i
或 j
表示虚数单位,它们等价于 −1\sqrt{-1}。无论使用 i
还是 j
,MATLAB 都会自动将其识别为虚数单位。
注意:
i
和j
是可以互换使用的,MATLAB 会统一将j
显示为i
。如果你在表达式中混用了i
和j
,MATLAB 也会正确处理。
在 MATLAB 中声明复数
复数在 MATLAB 中的底层类型是 double
,包含实部和虚部。声明复数时,可以使用 i
或 j
:
>> compnum = 1 + i
compnum = 1.000 + 1.000i
>> compnum = 1 + j
compnum = 1.000 + 1.000i
注意事项:
-
使用
j
声明复数时,MATLAB 依然会显示为i
。 -
不要将
i
或j
用作变量名,否则会导致混淆。
错误示例:
>> i = 1; % 不推荐!
>> a = 1 + i
a = 2
推荐使用显式写法:
>> i = 3;
>> a = 1i + 1
a = 1.000 + 1.000i
为了避免混淆,即使需要在程序中使用 i
作为变量,声明复数时也推荐使用 1i
这种形式。
推荐方式:使用 complex
函数
>> complex(2, 6)
ans =
2.0000 + 6.0000i
如果只需声明纯虚数,可以使用开平方负数:
>> sqrt(-49)
ans =
0.0000 + 7.0000i
创建多个复数
可以通过两个向量分别表示实部和虚部,然后使用 complex
函数组合成复数向量:
>> RE = [1, 2, 3]; % 实部
>> IM = [4, 5, 6]; % 虚部
>> complex(RE, IM)
ans =
1.0000 + 4.0000i 2.0000 + 5.0000i 3.0000 + 6.0000i
会生成复数的运算
某些运算天然会生成复数:
-
偶次方根的负数结果:
>> (-1)^0.5
ans = 0.000 + 1.000i
>> (-3)^0.25
ans = 0.9306 + 0.9306i
-
负数的对数:
>> log(-1)
ans = 0 + 3.1416i
-
使用
roots
求解多项式根时,也常返回复数结果。
复数处理函数
判断实数或复数
使用 isreal
判断是否为实数(即虚部为 0):
>> A = [complex(2,3), complex(4,0)];
>> isreal(A)
ans =
logical
0
>> isreal(A(2))
ans =
logical
1
同一个数组中可以同时包含实数和复数,因为它们都是 double
类型。
提取实部和虚部
使用 real
和 imag
:
>> real(A)
ans =
2 4
>> imag(A)
ans =
3 0
共轭复数(Complex Conjugate)
共轭复数 a+bia + bi 的共轭为 a−bia - bi,可使用 conj
函数:
>> conj(A)
ans =
2.0000 - 3.0000i 4.0000 + 0.0000i
相位角(Phase Angle)
使用 angle
函数获取复数的相位角(以弧度为单位):
>> angle(A)
ans =
0.9828 0
参考资料:
最后修改: 2025年04月15日 星期二 09:43