如何使用python简化三角表达式?

时间:2017-01-30 18:13:32

标签: python wolfram-mathematica sympy

我有一个像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给出的表达式,我该怎么办?

1 个答案:

答案 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返回的你声称的表达方式并不等同,正如一个简单的情节所示。