Use of semi-implicit

Explicit Euler
for(int k=0; k<N; ++k) {
    p = p + h*v;
    v = v + h * F/m;
}
(-) Always diverges for elastic problem
Semi-Implicit Euler
for(int k=0; k<N; ++k) {
    v = v + h * F/m;
    p = p + h*v;
}
(+) Permanent oscillation for sufficiently small \(h\).