Python3:计算复数指数和对数

Hyp*_*eus 2 python complex-numbers python-3.x

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
Run Code Online (Sandbox Code Playgroud)

这不会对我造成太大伤害,因为它**按预期工作:

>>> math.e ** (math.pi*1j)
(-1+1.2246467991473532e-16j)
Run Code Online (Sandbox Code Playgroud)

现在的问题是对数.math.log不适用于负数:

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

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

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

Sla*_*off 5

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

Cmath代表复杂数学.

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

import cmath

cmath.log(-1)
Run Code Online (Sandbox Code Playgroud)