cmath
cmath — Mathematical functions for complex numbers
该模块始终可用。它提供对复数的数学函数的访问。该模块中的函数接受整数,浮点数或复数作为参数。它们还将接受任何具有a __complex__()
或a __float__()
方法的Python对象:这些方法分别用于将对象转换为复数或浮点数,然后将该函数应用于转换结果。
注意
在硬件和系统级支持平台符号的零,涉及分支机构削减功能是连续两个
分支切割面:零的符号与其他分支切口的一侧区别。在不支持带符号零的平台上,连续性如下所述。
1.转换到极坐标和从极坐标转换
Python复数z
使用矩形
或笛卡尔
坐标在内部存储。它完全由其实部
z.real
和虚部决定
z.imag
。换一种说法:
z == z.real + z.imag*1j
极坐标
给出了表示复数的另一种方式。在极坐标
中,复数z
由模量r
和相位角φ定义
。模数r
是从z
到原点的距离,而相位φ
是从正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.1415926535897931
>>> phase(complex(-1.0, -0.0))
-3.1415926535897931
2.6版本中的新功能。
注意
复数x
的模数(绝对值)可以使用内置abs()
函数来计算。cmath
此操作没有单独的模块功能。
cmath.polar(x)
返回极坐标中x
的表示形式。返回一对(r, phi)
,其中r
是x
的模数,phi是x
的相位。polar(x)
相当于(abs(x), phase(x))
。
2.6版本中的新功能。
cmath.rect(r, phi)
用极坐标r
和phi
返回复数x
。相当于。r * (math.cos(phi) + math.sin(phi)*1j)
2.6版本中的新功能。
2.功率和对数函数
cmath.exp(x)
返回指数值e**x
。
cmath.log(x[, base])
将x
的对数返回给定的基数
。如果未指定基数
,则返回x
的自然对数。有一个分支从0开始沿负实轴旋转到-∞,从上向下连续。
在版本2.4中更改:添加了基本
参数。
cmath.log10(x)
返回x
的基数为10的对数。这个分支与之相同log()
。
cmath.sqrt(x)
返回x的
平方根。这个分支与之相同log()
。
3.三角函数
cmath.acos(x)
返回x的反
余弦。有两个分支切割:一个从实轴向右延伸至∞,从下向下延伸。另一个从实轴-1从左向上延伸到-∞,从上面连续。
cmath.asin(x)
返回x的
反正弦。这与之相同的分支切割acos()
。
cmath.atan(x)
返回x的
反正切。有两个分支切割:一个从1j
虚轴延伸到∞j
右连续。另一个从-1j
虚轴延伸到-∞j
从左边连续。
版本2.6中改变:上切的连续性方向颠倒
cmath.cos(x)
返回x
的余弦。
cmath.sin(x)
返回x
的正弦值。
cmath.tan(x)
返回x
的正切值。
4.双曲函数
cmath.acosh(x)
返回x
的反双曲余弦。有一个分支切割,从实轴向左延伸到-∞,从上面连续。
cmath.asinh(x)
返回x
的反双曲正弦。有两个分支切割:一个从1j
虚轴延伸到∞j
右连续。另一个从-1j
虚轴延伸到-∞j
从左边连续。
在版本2.6中进行了更改:分支切割已移至符合C99标准推荐的分割
cmath.atanh(x)
返回x
的反双曲正切。有两个分支切割:一个从1
实轴延伸到下一个∞
连续。另一个从-1
实轴延伸到-∞
从上面继续。
在版本2.6中改变了:右切割的连续性方向被逆转
cmath.cosh(x)
返回x
的双曲余弦。
cmath.sinh(x)
返回x
的双曲正弦。
cmath.tanh(x)
返回x
的双曲正切。
5.分类功能
cmath.isinf(x)
返回True
如果实际或x的虚部为正或负无穷大。
2.6版本中的新功能。
cmath.isnan(x)
返回True
如果x的实部或虚部不是数字(NaN)。
2.6版本中的新功能。
6.常量
cmath.pi
数学常数π
,作为一个浮点数。
cmath.e
数学常数e
,作为一个浮点数。
请注意,功能的选择与模块中的功能类似,但不完全相同math
。有两个模块的原因是一些用户对复数不感兴趣,甚至不知道它们是什么。他们宁愿math.sqrt(-1)
举起一个例外,而不是返回一个复数。还要注意cmath
,即使答案可以表示为实数(在这种情况下复数的虚数部分为零),定义的函数也会返回一个复数。
关于分支切割的注意事项:它们是给定函数无法连续的曲线。它们是许多复杂功能的必备功能。假设如果您需要使用复杂的函数进行计算,您将了解有关分支切割的信息。请教关于复杂变量的几乎任何(不太简单)的书籍。有关为数字目的正确选择分支切割的信息,请参考以下内容: