9.3. cmath为复数提供的数学函数

本模块始终是可用的。它提供对数学函数为复数的访问。本模块中的函数作为参数接受整数、 浮点数或复数。他们也将接受任何 Python 对象,是__complex__()__float__()方法: 这些方法用于将对象分别转换为复杂或浮点数,并将函数然后应用于转换的结果。

在平台上的硬件和系统级支持签名的零,涉及分支函数是连续的两边的分支切割: 零的标志区分的分支切割从另一侧。在做的平台上不支持签署的零的连续性是作为以下指定的内容。

9.3.1. Conversions to and from polar coordinates

复数z是一条巨蟒存储内部使用矩形笛卡儿坐标。它完全取决于它的实部 z.realz.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 版本新。

可以使用内置的abs()函数计算复杂的数字x的模量 (绝对值)。还有对于此操作没有单独cmath模块的功能。

cmath.polar(x)

返回在极坐标系中的x表示。返回对(r 皮皮)其中rx的模量,皮皮是x的阶段。 polar(x)等于(abs(x), phase(x))

在 2.6 版本新。

cmath.rect(r, phi)

返回复数x用极坐标rphi相当于r * (math.cos(phi) + math.sin(phi)*1j)

在 2.6 版本新。

9.3.2. Power and logarithmic functions

cmath.exp(x)

返回指数值e * * x

cmath.log(x[, base])

返回给定x的对数。如果未指定的基地,返回x的自然对数。那里是一个分支切断,从 0 到-∞,负实轴沿连续从上面。

2.4 版本中的更改:添加的基本参数。

cmath.log10(x)

返回x的对数。这具有的相同的分支切割作为log ()

cmath.sqrt(x)

返回x的平方根。这具有的相同的分支切割作为log ()

9.3.3. Trigonometric functions

cmath.acos(x)

返回x的反余弦。有两个分支割痕: 一个延伸权从 1 沿着实轴到 ∞,连续从下面。其他左延伸从沿着实轴-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的正切值。

9.3.4. Hyperbolic functions

cmath.acosh(x)

返回x的反双曲余弦。那里是一个分支切割,从 1 沿着实轴左延伸到-∞,连续从上面。

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的双曲正切值。

9.3.5. Classification functions

cmath.isinf(x)

如果真实或 x 的虚部为正或负无穷大,则返回True

在 2.6 版本新。

cmath.isnan(x)

如果 x 的实部或虚部的部分不是数字 (NaN),则返回True

在 2.6 版本新。

9.3.6. Constants

cmath.pi

数学常量π,作为一个浮点数。

cmath.e

数学常数e,作为一个浮点数。

请注意函数的选择是相似但不是相同,在模块数学有两个模块的原因是一些用户不感兴趣复数,并且也许甚至不知道它们是什么。他们宁愿math.sqrt(-1)引发异常比返回一个复数。此外注意到总是在cmath中定义这些函数将返回一个复杂的数字,即使答案可以表示为一个实数 (在这种情况下复杂的数字有虚部为零)。

分支的一个注记: 他们是沿其给定的函数不能连续的曲线。他们是的很多复杂的功能的必要特征。假设如果你需要计算复杂的功能,您将了解分支割痕。启蒙咨询几乎任何 (不太浅) 书上复杂的变量。数值用于分支削减的适当选择的信息,很好的参考应该如下:

请参见

汗,w: 分支削减对于复杂的初等函数 ;或者,无事生非的符号位。在 Iserles,A.和鲍威尔,M.(编),先进数值分析中。克拉伦登出版社 (1987) pp165-211。