hyo*_*kai 1 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))
Run Code Online (Sandbox Code Playgroud)
然后我尝试了很多为简化表达而提供的选项,但它们并没有太大作用。
当我使用时expand_trig(),它返回:
pi*(1.0*sin(1.0*t) + 0.025*cos(1.0*t) - 4.0*cos(2.0*t))
Run Code Online (Sandbox Code Playgroud)
但是当我使用 Mathematica 时,它返回:
-25.0542 Cos t + 3.14159 Sin t
Run Code Online (Sandbox Code Playgroud)
如何使用 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 返回的表达式并不等效,正如一个简单的图所示。
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |