您的位置:  首页 » Python » 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),作为浮动。 phase(x)相当于。结果位于[ – ππ ] 范围内,并且该操作的分支切割位于负实轴上,从上方连续。在支持带符号零(包括当前使用的大多数系统)的系统上,这意味着结果的符号与符号相同,即使 为零:math.atan2(x.imag, x.real)x.imagx.imag

>>>
>>> phase(complex(-1.0, 0.0))
3.141592653589793
>>> phase(complex(-1.0, -0.0))
-3.141592653589793

 

注意

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

cmath.polar
返回极坐标中x的表示。返回一对,其中rx的模数,phi是x的相位。 相当于。(r, phi)polar(x)(abs(x),phase(x))
cmath.rectrphi 
返回带有极坐标rphi的复数x。相当于。r * (math.cos(phi) + math.sin(phi)*1j)

功率和对数函数

cmath.exp
e提升到幂x,其中e是自然对数的基数。
cmath.log[base 
返回给定基数x的对数。如果未指定base,则返回x的自然对数。有一个分支切割,从0到负实轴到-∞,从上面连续。
cmath.log10
返回x的基数为10的对数。这与分支相同 log()
cmath.sqrt
返回x的平方根。这与分支相同log()

三角函数

cmath.acos
返回x的反余弦值。有两个分支切口:一个沿实轴从1向右延伸到∞,从下方连续。另一个从-1沿实轴向左延伸到-∞,从上方连续。
cmath.asin
返回x的反正弦值。这与分支削减相同acos()
cmath.atan
返回x的反正切。有两个分支切口:一个从1j假想轴延伸 到∞j右边连续。另一个从-1j假想轴延伸到-∞j左边连续。
cmath.cos
返回x的余弦值。
cmath.sin
返回x的正弦值。
cmath.tan
返回x的正切值。

双曲函数

cmath.acosh
返回x的反双曲余弦值。有一个分支切口,沿着实轴从1向左延伸到-∞,从上方连续。
cmath.asinh
返回x的反双曲正弦值。有两个分支切口:一个从1j假想轴延伸到∞j右边连续。另一个从-1j假想轴延伸到-∞j左边连续。
cmath.atanh
返回x的反双曲正切。有两个分支切口:一个从1实轴延伸到从下方连续。另一个从-1实轴延伸到-∞从上方连续。
cmath.cosh
返回x的双曲余弦值。
cmath.sinh
返回x的双曲正弦值。
cmath.tanh
返回x的双曲正切值。

分类功能

cmath.isfinite
返回True如果两个实部和虚部X是有限的, False否则。

版本3.2中的新功能。

cmath.isinf
返回True如果任一真实的或虚部X是一个无穷大,False否则。
cmath.isnan
返回True如果任一真实的或虚部X是NaN,和False其它。
cmath.iscloseab*rel_tol = 1e-09abs_tol = 0.0 
True如果值ab彼此接近则返回, False否则返回。

根据给定的绝对和相对容差确定两个值是否被认为是接近的。

rel_tol是相对容差 – 它是ab之间允许的最大差值,相对于ab的较大绝对值。例如,要设置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特殊值NaNinf以及-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。