ベレの方法
これは特性多項式の根を求めること、すなわち q 2 − 2 ( 1 + 1 2 ( w h ) 2 ) q + 1 = 0 {\displaystyle q^{2}-2\left(1+{\tfrac {1}{2}}(wh)^{2}\right)q+1=0} の解を求めることにより解くことができ、以下の根が得られる。
q ± = 1 + 1 2 ( w h ) 2 ± w h 1 + 1 4 ( w h ) 2 {\displaystyle q_{\pm }=1+{\tfrac {1}{2}}(wh)^{2}\pm wh{\sqrt {1+{\tfrac {1}{4}}(wh)^{2}}}}
上の線形漸化式のbasis solutionsは x n = q + n {\displaystyle x_{n}=q_{+}^{n}} および x n = q − n {\displaystyle x_{n}=q_{-}^{n}} である。これらを厳密解と比較するため、テイラー展開すると以下を得る。
q + = 1 + 1 2 ( w h ) 2 + w h ( 1 + 1 8 ( w h ) 2 − 3 128 ( w h ) 4 + O ( h 6 ) ) = 1 + ( w h ) + 1 2 ( w h ) 2 + 1 8 ( w h ) 3 − 3 128 ( w h ) 5 + O ( h 7 ) .
v → ( t + 1 2 Δ t ) = v → ( t ) + 1 2 a → ( t ) Δ t {\displaystyle {\vec {v}}\left(t+{\tfrac {1}{2}}\,\Delta t\right)={\vec {v}}(t)+{\tfrac {1}{2}}\,{\vec {a}}(t)\,\Delta t} を計算する。
x → ( t + Δ t ) = x → ( t ) + v → ( t + 1 2 Δ t ) Δ t {\displaystyle {\vec {x}}(t+\Delta t)={\vec {x}}(t)+{\vec {v}}\left(t+{\tfrac {1}{2}}\,\Delta t\right)\,\Delta t} を計算する。
x → ( t + Δ t ) {\displaystyle {\vec {x}}(t+\Delta t)} を用いて相互作用ポテンシャルを計算し、 a → ( t + Δ t ) {\displaystyle {\vec {a}}(t+\Delta t)} を導出する。
v → ( t + Δ t ) = v → ( t + 1 2 Δ t ) + 1 2 a → ( t + Δ t ) Δ t {\displaystyle {\vec {v}}(t+\Delta t)={\vec {v}}\left(t+{\tfrac {1}{2}}\,\Delta t\right)+{\tfrac {1}{2}}\,{\vec {a}}(t+\Delta t)\Delta t} を計算する。
関連する、より広く用いられているアルゴリズムとして速度ベルレ法があげられる。この手法はリープ・フロッグ法に似ているが、同時刻の位置と速度を計算する点(リープ・フロッグ法では名前の含意するとおり計算しない)で違う。速度ベルレ法とベルレ法は似ているが、陽に速度を扱い、初期ステップにおける速度を明示的に解く点で異なる。
x → ( t + Δ t ) = x → ( t ) + v → ( t ) Δ t + 1 2 a → ( t ) Δ t 2 , {\displaystyle {\vec {x}}(t+\Delta t)={\vec {x}}(t)+{\vec {v}}(t)\,\Delta t+{\frac {1}{2}}\,{\vec {a}}(t)\Delta t^{2},}
v → ( t + Δ t ) = v → ( t ) + a → ( t ) + a → ( t + Δ t ) 2 Δ t {\displaystyle {\vec {v}}(t+\Delta t)={\vec {v}}(t)+{\frac {{\vec {a}}(t)+{\vec {a}}(t+\Delta t)}{2}}\Delta t}
速度ベルレ法とベルレ法の誤差は同じオーダーであることは示すことができる。ベルレ法では2時刻における位置を記憶しておく必要があるため、1時刻における位置と速度を記憶する速度ベルレ法の法がメモリ消費量が多いとは限らない。
x → 1 = x → 0 + v → 0 Δ t + 1 2 A → ( x → 0 ) Δ t 2 {\displaystyle {\vec {x}}_{1}={\vec {x}}_{0}+{\vec {v}}_{0}\,\Delta t+{\frac {1}{2}}{\vec {A}}({\vec {x}}_{0})\,\Delta t^{2}} と置く。
n = 1、2、...について次を繰り返す。 x → n + 1 = 2 x → n − x → n − 1 + A → ( x → n ) Δ t 2 . {\displaystyle {\vec {x}}_{n+1}=2{\vec {x}}_{n}-{\vec {x}}_{n-1}+{\vec {A}}({\vec {x}}_{n})\,\Delta t^{2}.}