什么是复数?
1. 复数是"双部分"的数字
想象一下,你有一块巧克力🍫和一颗糖🍬。复数就像同时记录巧克力数量和糖果数量的"超级数字"!
比如:3 + 4j
- 3 是巧克力数量(实数部分)
- 4j 是糖果数量(虚数部分 ,
j
是标记,就像糖果袋子上的标签)
2. 为什么需要复数?
问题 :你学过负数吗?比如 2²=4 ,那什么数的平方是 -1 呢?
- 普通数字(实数)做不到,所以数学家发明了 j ,规定 j² = -1 !
就像超人🦸♂️会飞一样,j
是数学里的"超级符号"!
3. 复数的样子
- 例子1:2 + 5j → 2块巧克力 + 5颗糖果
- 例子2:-1j → 没有巧克力,欠了1颗糖果(虚数可以是负数哦!)
4. 复数的运算
(1) 加法:同类相加
- 例子 :
(3 + 2j) + (1 + 4j) = (3+1) + (2j+4j) = 4 + 6j
→ 巧克力总数是4块,糖果总数6颗!
(2) 减法:同类相减
- 例子 :
(5 + 3j) - (2 + 1j) = (5-2) + (3j-1j) = 3 + 2j
(3) 乘法:用分配律
- 例子 :
(1 + 2j) × (3 + 4j)
= 1×3 + 1×4j + 2j×3 + 2j×4j
= 3 + 4j + 6j + 8j²
但 j² = -1,所以变成:3 + 10j + 8×(-1) = -5 + 10j
5. 复数画在纸上
把复数想象成地图上的点📍:
- 横坐标是巧克力数量(实部)
- 纵坐标 是糖果数量(虚部)
比如:3 + 4j 就在 右3格,上4格 的位置。
在 Python 中,complex
是用于表示复数 的内置类型。复数的形式为 a + bj
(或 a + bJ
),其中:
a
是实部(实数部分),b
是虚部 (虚数部分,j
或J
表示虚数单位)。
核心特性
-
直接定义复数
通过字面量直接赋值:
inipython z = 3 + 4j # 实部 3,虚部 4
-
使用
complex()
构造函数通过
complex(real, imag)
创建:inipython z = complex(2, -5) # 等效于 2 - 5j
-
属性访问
z.real
:获取实部。z.imag
:获取虚部。
phppython z = 1 + 3j print(z.real) # 输出 1.0 print(z.imag) # 输出 3.0
-
共轭复数
使用
.conjugate()
方法获取共轭复数(虚部取反):inipython z = 2 + 5j print(z.conjugate()) # 输出 (2-5j)
运算示例
1. 基础运算(加减乘除)
scss
python
a = 1 + 2j
b = 3 - 4j
# 加法
print(a + b) # (4-2j)
# 乘法
print(a * b) # (11+2j) # 计算:1*3 + 1*(-4j) + 2j*3 + 2j*(-4j) = 3 -4j +6j -8j² = 3 +2j +8(因 j²=-1)
# 除法
print(a / b) # (-0.2 + 0.4j)
2. 幂运算
scss
python
z = 1 + 1j
print(z**2) # 输出 (0+2j) # 计算:(1+1j)*(1+1j) = 1 + 2j + j² = 1 +2j -1 = 2j
3. 数学函数
复数支持 cmath
模块中的数学函数(如 sqrt
, exp
等):
ini
python
import cmath
z = -1
print(cmath.sqrt(z)) # 输出 1j(虚数解)
注意事项
-
虚数单位必须用
j
或J
:inipython z = 3 + 4i # 错误!Python 中虚数单位必须是 j
-
复数不能直接比较大小:
bashpython print(3+4j > 1+2j) # 报错:TypeError(复数无序)
-
类型转换:
-
int(z)
或float(z)
会抛出错误(复数无法直接转实数)。 -
可从实部或虚部分别提取数值:
inipython z = 5 + 0j if z.imag == 0: real_value = int(z.real) # 输出 5
-
实际应用场景
复数常用于科学计算、信号处理、量子力学等领域。例如:
-
傅里叶变换
频谱分析中复数表示频率分量:
inipython import numpy as np # 生成复数信号 signal = np.array([1+2j, 3-1j, 0+4j]) fft_result = np.fft.fft(signal)
-
电路分析
阻抗计算(实部为电阻,虚部为电抗):
inipython impedance = 50 + 30j # 50Ω电阻 + 30Ω感抗 current = 2 + 0j # 2A电流 voltage = impedance * current # (100+60j)伏
总结
complex
类型是 Python 处理复数的核心工具,通过清晰的属性(.real
/.imag
)和方法(如 .conjugate()
)简化了复数操作。它在科学和工程领域的数学计算中至关重要。