Sympy:如何简化包含 exp(I*x) 的表达式
Sympy: How to simplify expression containing exp(I*x)
我想实现这种简化:
sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2=-2*I*sqrt(2*pi)*sin(p)/(p**2 - 4*pi**2)
但是,sympy.simplify 不能简化这个表达式:
f=sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) -\
4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
print(sympy.simplify(f))
#sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
如何用 SymPy 简化这个表达式?
另外,我不想用Piecewise((sqrt(2)*I/(2*sqrt(pi)), Eq(p, -2*pi))...)
稍微按摩一下表情。你知道,对于分数,你通常会分解它们,然后取消同类项。然后你简化之后:
from sympy import *
p = Symbol("p", real=True)
f = sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
f = simplify(expand(cancel(factor(f))))
print(f)
给予
-2*sqrt(2)*I*sqrt(pi)*sin(p)/(p**2 - 4*pi**2)
我想实现这种简化:
sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2=-2*I*sqrt(2*pi)*sin(p)/(p**2 - 4*pi**2)
但是,sympy.simplify 不能简化这个表达式:
f=sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) -\
4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
print(sympy.simplify(f))
#sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
如何用 SymPy 简化这个表达式?
另外,我不想用Piecewise((sqrt(2)*I/(2*sqrt(pi)), Eq(p, -2*pi))...)
稍微按摩一下表情。你知道,对于分数,你通常会分解它们,然后取消同类项。然后你简化之后:
from sympy import *
p = Symbol("p", real=True)
f = sqrt(2)*sqrt(pi)*(p**2 + (-p**2 + 4*pi**2)*exp(2*I*p) - 4*pi**2)*exp(-I*p)/(p**2 - 4*pi**2)**2
f = simplify(expand(cancel(factor(f))))
print(f)
给予
-2*sqrt(2)*I*sqrt(pi)*sin(p)/(p**2 - 4*pi**2)