cmath-复数的数学函数详解(3)Python语言的数学和数学模块(必读进阶学习教程)(参考资料)
该模块始终可用。它提供了对复数的数学函数的访问。此模块中的函数接受整数,浮点数或复数作为参数。它们还将接受任何具有a __complex__()
或__float__()
方法的Python对象:这些方法分别用于将对象转换为复数或浮点数,然后将该函数应用于转换结果。
注意
在硬件和系统级支持平台符号的零,涉及分支机构削减功能是连续两个 分支切割面:零的符号与其他分支切口的一侧区别。在不支持带符号零的平台上,连续性如下所述。
与极坐标的转换
z
使用矩形 或笛卡尔坐标在内部存储Python复数。它完全取决于它的实部 z.real
和虚部 z.imag
。换一种说法:
z == z.real + z.imag*1j
极坐标提供了表示复数的替代方法。在极坐标中,复数z由模数r和相角phi定义。模数r是从z到原点的距离,而相位phi是以弧度为单位的逆时针角度,从正x轴到将原点连接到z的线段。
以下函数可用于从原生直角坐标转换为极坐标和返回。
cmath.
phase
(x )- 返回的相位X(也被称为自变量的X),作为浮动。
phase(x)
相当于。结果位于[ – π,π ] 范围内,并且该操作的分支切割位于负实轴上,从上方连续。在支持带符号零(包括当前使用的大多数系统)的系统上,这意味着结果的符号与符号相同,即使 为零:math.atan2(x.imag, x.real)
x.imag
x.imag
>>> >>> phase(complex(-1.0, 0.0)) 3.141592653589793 >>> phase(complex(-1.0, -0.0)) -3.141592653589793
注意
可以使用内置函数计算复数x的模数(绝对值)abs()
。cmath
此操作没有单独的模块功能。
cmath.
polar
(x )- 返回极坐标中x的表示。返回一对,其中r是x的模数,phi是x的相位。 相当于。
(r, phi)
polar(x)
(abs(x),phase(x))
cmath.
rect
(r,phi )- 返回带有极坐标r和phi的复数x。相当于。
r * (math.cos(phi) + math.sin(phi)*1j)
功率和对数函数
cmath.
exp
(x )- 将e提升到幂x,其中e是自然对数的基数。
cmath.
log
(x [,base ] )- 返回给定基数的x的对数。如果未指定base,则返回x的自然对数。有一个分支切割,从0到负实轴到-∞,从上面连续。
cmath.
log10
(x )- 返回x的基数为10的对数。这与分支相同
log()
。
cmath.
sqrt
(x )- 返回x的平方根。这与分支相同
log()
。
三角函数
cmath.
acos
(x )- 返回x的反余弦值。有两个分支切口:一个沿实轴从1向右延伸到∞,从下方连续。另一个从-1沿实轴向左延伸到-∞,从上方连续。
cmath.
asin
(x )- 返回x的反正弦值。这与分支削减相同
acos()
。
cmath.
atan
(x )- 返回x的反正切。有两个分支切口:一个从
1j
假想轴延伸 到∞j
右边连续。另一个从-1j
假想轴延伸到-∞j
左边连续。
cmath.
cos
(x )- 返回x的余弦值。
cmath.
sin
(x )- 返回x的正弦值。
cmath.
tan
(x )- 返回x的正切值。
双曲函数
cmath.
acosh
(x )- 返回x的反双曲余弦值。有一个分支切口,沿着实轴从1向左延伸到-∞,从上方连续。
cmath.
asinh
(x )- 返回x的反双曲正弦值。有两个分支切口:一个从
1j
假想轴延伸到∞j
右边连续。另一个从-1j
假想轴延伸到-∞j
左边连续。
cmath.
atanh
(x )- 返回x的反双曲正切。有两个分支切口:一个从
1
实轴延伸到∞
从下方连续。另一个从-1
实轴延伸到-∞
从上方连续。
cmath.
cosh
(x )- 返回x的双曲余弦值。
cmath.
sinh
(x )- 返回x的双曲正弦值。
cmath.
tanh
(x )- 返回x的双曲正切值。
分类功能
cmath.
isfinite
(x )- 返回
True
如果两个实部和虚部X是有限的,False
否则。版本3.2中的新功能。
cmath.
isinf
(x )- 返回
True
如果任一真实的或虚部X是一个无穷大,False
否则。
cmath.
isnan
(x )- 返回
True
如果任一真实的或虚部X是NaN,和False
其它。
cmath.
isclose
(a,b,*,rel_tol = 1e-09,abs_tol = 0.0 )True
如果值a和b彼此接近则返回,False
否则返回。根据给定的绝对和相对容差确定两个值是否被认为是接近的。
rel_tol是相对容差 – 它是a和b之间允许的最大差值,相对于a或b的较大绝对值。例如,要设置5%的容差,请通过
rel_tol=0.05
。默认容差为1e-09
,确保两个值在大约9个十进制数字内相同。 rel_tol必须大于零。abs_tol是最小绝对容差 – 对于接近零的比较很有用。abs_tol必须至少为零。
如果没有错误发生,结果将是: 。
abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
的IEEE 754特殊值
NaN
,inf
以及-inf
将根据IEEE规则处理。具体而言,NaN
不被认为接近任何其他值,包括NaN
。inf
并且-inf
只被认为接近自己。版本3.5中的新功能。
也可以看看
PEP 485 – 用于测试近似相等的函数
常数
cmath.
pi
- 数学常数π,作为浮点数。
cmath.
e
- 数学常数e,作为浮点数。
cmath.
tau
- 数学常数τ,作为浮点数。
版本3.6中的新功能。
cmath.
inf
- 浮点正无穷大。相当于
float('inf')
。版本3.6中的新功能。
cmath.
infj
- 具有零实部和正无穷虚部的复数。相当于。
complex(0.0, float('inf'))
版本3.6中的新功能。
cmath.
nan
- 浮点“非数字”(NaN)值。相当于
float('nan')
。版本3.6中的新功能。
cmath.
nanj
- 具有零实部和NaN虚部的复数。相当于 。
complex(0.0, float('nan'))
版本3.6中的新功能。
请注意,功能的选择与模块中的功能选择相似,但不完全相同math
。拥有两个模块的原因是一些用户对复数不感兴趣,甚至可能根本不知道它们是什么。他们宁愿math.sqrt(-1)
提出异常而不是返回复数。另请注意,定义的函数cmath
始终返回一个复数,即使答案可以表示为实数(在这种情况下,复数的虚数部分为零)。
关于分支切割的注释:它们是给定函数无法连续的曲线。它们是许多复杂功能的必要特征。假设您需要使用复杂函数进行计算,您将了解分支削减。请参阅几乎所有关于复杂变量的(不太基础)的书来进行启发。有关为数字目的正确选择分支切口的信息,应提供以下良好参考:
也可以看看
Kahan,W:分支削减复杂的基本功能; 或者,很多关于没有任何标志的东西。在Iserles,A。和Powell,M。(编辑),数值分析的最新技术。Clarendon Press(1987)pp165-211。