使用 sympy dsolve 进行简谐运动 returns 错误的解决方案

Using sympy dsolve for simple harmonic motion returns the incorrect solution

所以我尝试使用 sympy 的 dsolve 函数来解决简谐运动的非常简单的情况,即:

我是这样做的:

w = sympy.symbols('ω', real = True, positive=True, nonzero=True)
t = sympy.symbols('t', real = True)
x = sympy.symbols('x')

eq = sympy.diff(sympy.diff(x(t), t), t) + w**2*x

sympy.pprint(sympy.dsolve(eq, x(t)))

当我这样做时,我得到以下解决方案:

而不是我预期的

这是为什么?

您还没有定义d.e。适当地。应该是

eq = sympy.diff(sympy.diff(x(t), t), t) + w**2*x(t)

请注意,您可以使用更具可读性的 .diff 方法

eq = x(t).diff(t,2) + w**2*x(t)