有人可以帮我解决二阶微分,初始条件?(简单振荡器)

Can someone help me with solving a second orden differential,with initial condition?(Simple oscillator)

我是这个社区的新手,我正在寻求帮助,但找不到,所以我正在做这个问题。 我正在做关于在 python 上使用 sympy 的作业,可以提前编写方程式并求解它以获得通用解决方案。这是我的代码:

import sympy as sym
t=sym.symbols('t') #time
x=sym.Function('x')(t) #position
m=sym.symbols('m') #mass
k=sym.symbols('k')#const. 0<k
ac=x.diff(t,t)#acceleration
eos=sym.Eq(m*ac, -k*x)#equation
ecres=sym.dsolve(eos,x)#the general solution

这很好用,给我一个 C1 和一个 C2。但现在我正在尝试获得初始条件的解决方案。

x0=sym.symbols('x0')#initial condition for position
v0=sym.symbols('v0')#initial condition for velocity
vel=x.diff(t)#velocity
ics={t:0,x:x0,vel:v0}
ayuda=[[t,0],[x,x0],[vel,v0]]

我试过

ecres.evalf(subs={ics})
ecres.evalf(subs={ayuda})

终于

ecres.subs(t,0).subs(x,x0).subs(vel,v0)

但还是无法更改解决方案的C1 和C2。 ¿我需要什么命令来改变它们? 非常感谢您的帮助。

Ps:抱歉有点长。

调用 dsolve 时应传递 ics。有一种指定 ics 的特定格式:

In [48]: t, m, k, x0, v0 = symbols('t, m, k, x0, v0')

In [49]: x = Function('x')(t)

In [50]: ac = x.diff(t, t)

In [51]: eos = Eq(m*ac, -k*x)

In [52]: dsolve(eos, x)
Out[52]: 
                  _____             _____
                 ╱ -k              ╱ -k  
           -t⋅  ╱  ───        t⋅  ╱  ─── 
              ╲╱    m           ╲╱    m  
x(t) = C₁⋅ℯ             + C₂⋅ℯ           


In [54]: dsolve(eos, x, ics={x.subs(t, 0):x0, x.diff(t).subs(t, 0):v0})
Out[54]: 
                                    _____                              _____
                                   ╱ -k                               ╱ -k  
       ⎛             _____⎞  -t⋅  ╱  ───    ⎛            _____⎞  t⋅  ╱  ─── 
       ⎜            ╱ -k  ⎟     ╲╱    m     ⎜           ╱ -k  ⎟    ╲╱    m  
       ⎜-v₀ + x₀⋅  ╱  ─── ⎟⋅ℯ               ⎜v₀ + x₀⋅  ╱  ─── ⎟⋅ℯ           
       ⎝         ╲╱    m  ⎠                 ⎝        ╲╱    m  ⎠             
x(t) = ────────────────────────────────── + ────────────────────────────────
                        _____                               _____           
                       ╱ -k                                ╱ -k             
                  2⋅  ╱  ───                          2⋅  ╱  ───            
                    ╲╱    m                             ╲╱    m