韋爾萊積分法(Verlet integration)
/ vair-LAY /
當你必須追蹤一顆公轉的行星或一盒互相推擠的原子,不只走幾步而是走上數百萬步時,你需要一個不會慢慢漏掉或灌入能量的積分器。韋爾萊積分法正是這樣的積分器:一種讓牛頓方程往前推進的特定方式,能在極長的模擬中把總能量維持在有界範圍內,即使每一單步本身並不特別精確。凡是講究守恆系統長時間動力學忠實度的地方,它都是標準工具。
把位置同時往前與往後做泰勒展開,寫出 r(t + h) 與 r(t - h),再相加。奇次冪的項——也就是那些需要速度的項——會相消,留下 r(t + h) = 2 r(t) - r(t - h) + a(t) h^2,其中 a = F / m 是加速度。你只需要位置與加速度,位置的局部誤差為 h^4 階,而且關鍵在於此格式是辛的、也是時間可逆的,因此它守恆一個鄰近的「影子」能量、不出現長期能量漂移。速度韋爾萊變體 r(t + h) = r(t) + v(t) h + (1/2) a(t) h^2 搭配 v(t + h) = v(t) + (1/2)[a(t) + a(t + h)] h,提供同步的速度以計算動能與溫度。
這正是為何在分子動力學與重力多體模擬中,預設的積分器是韋爾萊法、而非局部更精確的 RK4:在長時間積分中,它的能量只在固定的帶狀範圍內振盪,而 RK4 會慢慢漂離。誠實的警告是:辛方法把能量誤差界住,卻不消除每步誤差,而韋爾萊法只有二階精度。它以短時間的峰值精度換取出色的長時間穩定性——對守恆動力學這是對的取捨,但當你需要在短區間內達到高精度時,這就是錯的取捨。
把太陽系或一個分子動力學盒子積分數百萬步,韋爾萊法能讓總能量永遠在一條狹窄的固定帶內振盪,而顯式尤拉法會使軌道向外盤旋,RK4 儘管局部精度更高,卻會讓能量緩慢漂移。
既是辛的又是時間可逆的:能量振盪,卻永不失控。
韋爾萊法的長處不在於階數高,而在於它辛的、時間可逆的結構,正是這一點壓制了長期能量漂移;這也是為何一個名義上「更精確」的非辛方法(如 RK4)在長時間哈密頓積分中反而可能更差。