Sympy 简化欧拉公式不起作用
Sympy simplify Euler's formula not working
我正在做物理作业并尝试使用欧拉公式简化表达式。最小的无效示例如下所示。
from sympy import *
x, phi = symbols("x varphi", real=True)
simplify(x * (E**(I*phi) + E**(-I*phi)))
我的 Jupiter 笔记本输出完全相同的东西
而使用欧拉公式的期望表达式是
不过,sympy其实知道如何用欧拉公式来表示余弦函数,因为去掉x后它输出的简化表达式很好:
simplify(E**(I*phi) + E**(-I*phi))
给予
由于乘法的分配律 属性 适用于复数,我不明白为什么 sympy 无法计算出第一个表达式的所需简化。
可能是设计使然。作为解决方法,您可以执行
expr=x* (E**(I*phi) + E**(-I*phi))
expr.rewrite(cos)
这给出了
2*x*cos(varphi)
我正在做物理作业并尝试使用欧拉公式简化表达式。最小的无效示例如下所示。
from sympy import *
x, phi = symbols("x varphi", real=True)
simplify(x * (E**(I*phi) + E**(-I*phi)))
我的 Jupiter 笔记本输出完全相同的东西
而使用欧拉公式的期望表达式是
不过,sympy其实知道如何用欧拉公式来表示余弦函数,因为去掉x后它输出的简化表达式很好:
simplify(E**(I*phi) + E**(-I*phi))
给予
由于乘法的分配律 属性 适用于复数,我不明白为什么 sympy 无法计算出第一个表达式的所需简化。
可能是设计使然。作为解决方法,您可以执行
expr=x* (E**(I*phi) + E**(-I*phi))
expr.rewrite(cos)
这给出了
2*x*cos(varphi)