我有一个由 Sympy 计算的表达式:
-1.0*pi*(-1.0*sin(1.0*t) - 0.025*cos(1.0*t) + 4.0*cos(2.0*t))
然后我尝试了很多为简化表达而提供的选项,但它们都不太奏效。
当我使用 expand_trig()
时,它返回:
pi*(1.0*sin(1.0*t) + 0.025*cos(1.0*t) - 4.0*cos(2.0*t))
但是当我使用 Mathematica 时,它返回:
-25.0542 Cos t + 3.14159 Sin t
如何使用 Python 获得类似 Mathematica 的结果?如果我想进一步简化 Mathematica 给出的表达式,我应该怎么做?
最佳答案
SymPy 可以扩展cos(2*t)
项,但它不能用浮点系数识别它。 expand_trig(cos(2*t))
有效(它给出 2*cos(t)**2 - 1
)。我还建议使用 cos(t)
而不是 cos(1.0*t)
,因为 SymPy 会将它们视为不同的(例如,cos(t) - cos (1.0*t)
不会简化为 0)。我还建议使用 sympy.pi
,因为它是符号化的并且可以符号化简化(例如,sin(sympy.pi)
给出 0
;sin(math.pi)
没有)。
正如其他人所指出的,您声称由 Mathematica 返回的表达式并不等价,如简单图所示。
关于python - 如何使用python简化三角函数表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942696/