Sympy复指数的绝对值

时间:2014-06-05 13:53:23

标签: python sympy simplification

当处理极地形式的复数时,我经历了一种奇怪的行为。例如,做

from sympy import *
simplify(Abs(exp(I)))

我希望结果为1,因为如果指数只是虚数,复指数的绝对值应该总是1。然而,sympy给出了答案

Abs(exp(I))

做另类

phi=symbols('phi', real=True)
y=exp(I*phi)
sqrt(y*conj(y))

给出了预期的结果,但在我看来不如abs。我是否错过了一些限制因为只使用abs?

会阻止syy执行此简化

1 个答案:

答案 0 :(得分:3)

simplify绝对可以更聪明。

通常,为了简化使用复数的事情,请使用expand_complex,尝试将表达式重写为a + b*I,其中ab是真实的。这适合我。

In [17]: (abs(exp(I))).expand(complex=True)
Out[17]:
   ___________________
  ╱    2         2
╲╱  cos (1) + sin (1)

In [18]: simplify(abs(exp(I)).expand(complex=True))
Out[18]: 1