$$ F = \frac{d^2 r}{dt^2} $$ $$ \Rightarrow F_i (r_i (t),t) = \frac{d^2r_i}{dt^2} $$
$$ \simeq \frac{r_i(t+h) + r_i(t-h) -2r_i(t)}{h^2} $$
$$ \Rightarrow r_i(t+h) \simeq 2r_i(t) - r_i (t-h) + h^2F_i(t) + O(h^4) $$
$$ r(-h) = r(0) - hv(0) + \frac{h^2}{2} F(0) $$ ( $$v(0)$$ = 초기속도 )
$$ r(0), r(-h) $$ 에서 $$r(h)$$ 구할 수 있다.
$$ \Rightarrow v_i(t) \simeq \frac{r_i(t+h)-r_i(t-h)}{2h} + O(h^2) $$
이의 과정을 반복하여 업데이트한다.
알고리즘에서 알 수 있듯 Euler method와 같은 이유로 오차가 발생할 수 있지만, 이 경우는 dynamics의 추적이 아니라 equilibrium condition으로의 수렴이므로 오랜 iteration 이후에는 동일한 결과를 얻게 된다.