You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sympy使用simplify结合欧拉公式化简表达式失效问题咨询

原因说明

SymPy的通用simplify函数通过多规则加权的方式判断化简收益,仅当调整后的表达式在运算步数、字符长度等维度的综合复杂度明显低于原式时,才会执行对应变换。当指数和结构外层存在乘法系数x时,simplify不会默认主动拆分乘积结构对内层做专项匹配,判定两种形式的复杂度差异不大,因此直接返回输入表达式。
无外层系数时,输入结构可以直接命中欧拉公式的化简规则,因此可以正常输出2*cos(varphi)的结果。

可用解决方案

以下三种方案都可以得到你期望的2xcosφ化简结果:

  • 直接用rewrite方法指定将表达式重写为余弦形式,匹配效率最高,无多余计算:
from sympy import *
x, phi = symbols("x varphi", real=True)
expr = x * (E**(I*phi) + E**(-I*phi))
print(expr.rewrite(cos))
  • 先拆分乘积结构再执行通用化简:
print(simplify(expr.expand()))
  • 使用针对三角/复数指数场景优化的trigsimp函数完成化简:
print(trigsimp(expr))

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:12:00