【问题标题】:Sympy simplify Euler's formula not workingSympy简化欧拉公式不起作用
【发布时间】:2021-09-13 02:51:30
【问题描述】:

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

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

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

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

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

然而,sympy 实际上知道如何使用欧拉公式来表示余弦函数,因为它在移除 x 时很好地输出了简化的表达式:

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

给予

由于乘法的分配属性适用于复数,我不明白为什么 sympy 无法计算出所需的第一个表达式的简化。

【问题讨论】:

    标签: sympy


    【解决方案1】:

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

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

    给了

    2*x*cos(varphi)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多