首页 > 解决方案 > Sympy简化欧拉公式不起作用

问题描述

我正在做我的物理作业,并尝试使用欧拉公式简化表达式。最小的不工作示例如下所示。

from sympy import *
x, phi = symbols("x varphi", real=True)

simplify(x * (E**(I*phi) + E**(-I*phi)))

我的 Jupiter notebook 输出完全相同的东西

1

而使用欧拉公式的所需表达式是

2

但是,sympy 实际上知道如何使用欧拉公式来表示余弦函数,因为当 x 被移除时,它可以很好地输出简化表达式:

simplify(E**(I*phi) + E**(-I*phi))

3

由于乘法的分布特性适用于复数,我不明白为什么 sympy 无法弄清楚第一个表达式的所需简化。

标签: sympy

解决方案


可能是设计使然。作为一种解决方法,您可以这样做

expr=x* (E**(I*phi) + E**(-I*phi))
expr.rewrite(cos)

这使

2*x*cos(varphi)

推荐阅读