Verlet integration公式推导
Verlet integration 是一种用于数值积分牛顿运动方程的方法,以下是其推导过程:
基于泰勒展开的推导
- 设粒子的位置矢量为 \(x(t)\),速度为 \(v(t)\),加速度为 \(a(t)\),根据泰勒公式,有:
\[\begin{align*}
x(t+\Delta t) &=x(t)+v(t)\Delta t+\frac{1}{2}a(t)\Delta t^2+\frac{1}{6}c(t)\Delta t^3+O\left(\Delta t^4\right) \\
x(t-\Delta t) &=x(t)-v(t)\Delta t+\frac{1}{2}a(t)\Delta t^2-\frac{1}{6}c(t)\Delta t^3+O\left(\Delta t^4\right)
\end{align*}
\]
- 将上述两式相加,得到:
\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2+O\left(\Delta t^4\right)
\]
- 这样,就可以根据当前时刻 \(\Delta t\) 和前一时刻 \(t-\Delta t\) 的位置以及当前时刻的加速度来计算下一时刻 \(t+\Delta t\) 的位置,忽略高阶无穷小项 \(O\left(\Delta t^4\right)\),得到 Verlet integration 的基本公式:
\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2
\]
从二阶导数的中心差分近似推导
- 二阶导数的中心差分近似公式为:
\[\frac{d^2x}{dt^2}=\frac{x(t+\Delta t)-2 x(t)+x(t-\Delta t)}{\Delta t^2}+O\left(\Delta t^2\right)
\]
- 根据牛顿运动定律 \(a(t)=\frac{d^2x}{dt^2}\),将其代入上式,得到:
\[a(t)=\frac{x(t+\Delta t)-2 x(t)+x(t-\Delta t)}{\Delta t^2}+O\left(\Delta t^2\right)
\]
- 整理可得:
\[x(t+\Delta t)=2 x(t)-x(t-\Delta t)+a(t)\Delta t^2+O\left(\Delta t^4\right)
\]
- 同样忽略高阶无穷小项 \(O\left(\Delta t^4\right)\),得到 Verlet integration 的基本公式。
Velocity Verlet 算法的推导
- Velocity Verlet 算法在基本 Verlet integration 的基础上,引入了速度的计算。其推导过程如下:
- 首先,根据泰勒展开,位置和速度的更新公式分别为:
\[\begin{align*}
x(t+\Delta t) &=x(t)+v(t)\Delta t+\frac{1}{2} a(t)\Delta t^2 \\
v(t+\Delta t) &=v(t)+\frac{1}{2}\left[a(t)+a(t+\Delta t)\right]\Delta t
\end{align*}
\]
- 在实际计算中,先计算位置更新:
\[x(t+\Delta t)=x(t)+v(t)\Delta t+\frac{1}{2} a(t)\Delta t^2
\]
- 然后计算新的加速度 $a(t+\Delta t)$,再根据新的加速度计算速度更新:
\[v(t+\Delta t)=v(t)+\frac{1}{2}\left[a(t)+a(t+\Delta t)\right]\Delta t
\]
- 这样,Velocity Verlet 算法在计算位置和速度时,使用了当前和新的加速度信息,提高了计算精度。

浙公网安备 33010602011771号