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中的对数? (最好不要自己实施)
答案 0 :(得分:5)
数学文档明确表示它不支持复数。如果你想在python中使用库,你应该使用cmath代替。
Cmath代表复杂数学。
cmath具有与math相同的大部分接口,因此对于您的示例,您可以执行以下操作:
import cmath
cmath.log(-1)