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

如何使用python简化三角表达式?,python,wolfram-mathematica,sympy,Python,Wolfram Mathematica,Sympy,我有一个由Symphy计算的表达式: -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)) -25.0542 Cos t + 3.14159 Sin t 但当我使用Mathematica时,它返回: pi*(1.0*s

我有一个由Symphy计算的表达式:

-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))
-25.0542 Cos t + 3.14159 Sin t
但当我使用Mathematica时,它返回:

pi*(1.0*sin(1.0*t) + 0.025*cos(1.0*t) - 4.0*cos(2.0*t))
-25.0542 Cos t + 3.14159 Sin t
如何使用Python获得Mathematica这样的结果?如果我想进一步简化Mathematica给出的表达式,我该怎么办?

Symphy可以扩展cos2*t项,但它不能用浮点系数来识别它。扩展trigcos2*t工程,它会产生2*成本**2-1。我还建议使用cost而不是cos1.0*t,因为Symphy会将它们视为不同的,例如,cost-cos1.0*t不会简化为0。我还建议使用sympy.pi,因为它是符号化的,可以进行符号化简化,例如,sinsympy.pi给出0;sinmath.pi没有

正如其他人所指出的,您声称由Mathematica返回的表达式是不等价的,正如一个简单的图所示

symphy可以扩展cos2*t项,但它不能识别浮点系数。扩展trigcos2*t工程,它会产生2*成本**2-1。我还建议使用cost而不是cos1.0*t,因为Symphy会将它们视为不同的,例如,cost-cos1.0*t不会简化为0。我还建议使用sympy.pi,因为它是符号化的,可以进行符号化简化,例如,sinsympy.pi给出0;sinmath.pi没有


正如其他人所指出的,您声称由Mathematica返回的表达式是不等价的,正如一个简单的图所示

是什么让你认为你的表达可以简化?你试过在你的问题中画出这三个函数吗?虽然前两个是相同的,但Mathematica中的那个是一个完全不同的函数。真奇怪,Mathematica给了我这个。但是顺便说一句,你能告诉我如何使用python简化这个简单的表达式吗:sympy.simplemath.pi*1.0*sympy.sin1.0*t+0.025*sympy.cos1.0*t。对我来说,我们可以将它们组合成一个表达式。但是我找不到路。这两个表达式总是分开的。谢谢!你是对的,但我不知道如何在python中实现这一点。仅供参考,Mma给出了与Sympy相同的答案。投票按预期输出关闭是完全错误的@Hyukai如果你想修正/澄清问题,然后编辑问题,不要在评论中提出修改。是什么让你认为你的表达可以简化?你试过在你的问题中画出这三个函数吗?虽然前两个是相同的,但Mathematica中的那个是一个完全不同的函数。真奇怪,Mathematica给了我这个。但是顺便说一句,你能告诉我如何使用python简化这个简单的表达式吗:sympy.simplemath.pi*1.0*sympy.sin1.0*t+0.025*sympy.cos1.0*t。对我来说,我们可以将它们组合成一个表达式。但是我找不到路。这两个表达式总是分开的。谢谢!你是对的,但我不知道如何在python中实现这一点。仅供参考,Mma给出了与Sympy相同的答案。投票按预期输出关闭是完全错误的@Hyukai如果你想修正/澄清问题,然后编辑问题,不要在评论中提出修改。