我有一个像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给出的表达式,我该怎么办?
答案 0 :(得分:4)
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返回的你声称的表达方式并不等同,正如一个简单的情节所示。