Python3:计算复数指数和对数

时间:2013-08-17 02:49:13

标签: python python-3.x complex-numbers

math.exp()不适用于复数:

>>> math.exp (math.pi*1j)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to float

这并没有给我带来太大的伤害,因为**按预期工作:

>>> math.e ** (math.pi*1j)
(-1+1.2246467991473532e-16j)

现在的问题是对数。 math.log对负数不起作用:

>>> math.log(-1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error

(预期结果:(0+3.141592653589793j)

如何计算结果复杂的python中的对数? (最好不要自己实施)

1 个答案:

答案 0 :(得分:5)

数学文档明确表示它不支持复数。如果你想在python中使用库,你应该使用cmath代替。

Cmath代表复杂数学。

cmath具有与math相同的大部分接口,因此对于您的示例,您可以执行以下操作:

import cmath

cmath.log(-1)