sympy - Sympy简化欧拉公式不起作用
问题描述
我正在做我的物理作业,并尝试使用欧拉公式简化表达式。最小的不工作示例如下所示。
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 无法弄清楚第一个表达式的所需简化。
解决方案
可能是设计使然。作为一种解决方法,您可以这样做
expr=x* (E**(I*phi) + E**(-I*phi))
expr.rewrite(cos)
这使
2*x*cos(varphi)
推荐阅读
- artificial-intelligence - 我对模拟退火有概念问题?
- c++ - 从 Windows 应用程序调用 linux docker 容器
- jupyter-lab - 突出显示 Jupyterlab 3 中的事件
- php - 为什么我放 SSL 证书时 Socket.io 无法连接?
- maven - gcloud AR 无法解决依赖关系
- python - 如何保护将分发给客户端的应用程序中的 API 密钥
- angular - 如何过滤在其嵌套项目列表中包含“电视”项目的发票列表 - 使用 TypeScript
- r - 使用 dplyr、cross()、where() 和 if_else() 函数将 NA 替换为数字
- r - 用索引的名称替换字符串中的字母
- powershell - 将 CSV 文件与 Active Directory 用户进行比较并提供域