使用 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)))
当我这样做时,我得到以下解决方案:
&space;=&space;C_1&space;+&space;C_2&space;t&space;-&space;%5Cdfrac%7Bt%5E2x%5Comega%5E2%7D%7B2%7D)
而不是我预期的
或
。
这是为什么?
您还没有定义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)
所以我尝试使用 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)