cmath模块详解

python不需要导入库即可进行复数运算,但配合cmath则更加得心应手。

直角坐标和极坐标的转换:

1
2
# 返回复数x的极坐标形式(r, phi)
cmath.polar(x)
1
2
# 返回直角坐标形式的复数x
cmath.rect(r, phi)
1
2
3
4
5
6
7
8
9
# 复数的模直接使用内置函数abs()即可

# 返回复数x的相位,范围在-π到π之间
cmath.phase(x)
# Attention:
phase(complex(-1.0, 0.0))
# 3.141592653589793
phase(complex(-1.0, -0.0))
# -3.141592653589793

指数和对数函数:

1
2
3
4
5
6
cmath.exp(x)
# base未指定即ln(x)
cmath.log(x[, base])
# 即lg(x)
cmath.log10(x)
cmath.sqrt(x)

三角函数:

1
2
3
4
5
6
cmath.sin(x)
cmath.cos(x)
cmath.tan(x)
cmath.asin(X)
cmath.acos(x)
cmath.atan(x)

双曲函数:

1
2
3
4
5
6
7
8
9
10
11
12
# 返回x的双曲正弦值
cmath.sinh(x)
# 返回x的双曲余弦值
cmath.cosh(x)
# 返回x的双曲正切值
cmath.tanh(x)
# 返回x的反双曲正弦值
cmath.asinh(X)
# 返回x的反双曲余弦值
cmath.acosh(x)
# 返回x的反双曲正切值
cmath.atanh(x)

分类函数:

1
2
3
4
5
6
7
8
9
10
# 若复数x的实部和虚部均是有限的,返回True
cmath.isfinite(x)
# 若复数x的实部或虚部是无限的,返回True
cmath.isinf(x)
# 若复数x的实部或虚部是NaN,返回True
cmath.isnan(x)
# 若复数a和b接近则返回True,否则False
# 两个值是否接近由给定的相对误差或绝对误差决定
# 相对误差默认为1e-09,必须大于0;绝对误差必须大于等于0
cmath.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)

常量:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmath.pi
# 3.141592653589793
cmath.e
# 2.718281828459045
cmath.tau
# 6.283185307179586
cmath.inf
# inf
cmath.infj
# infj
cmath.nan
# nan
cmath.nanj
# nanj