常微分方程的數值方法

線性多步法(linear multistep method)

龍格-庫塔的一步會丟掉它學到的一切,每步都從頭重新取樣斜率。但你早已算出並儲存了最近幾個點的斜率——何不重用它們?線性多步法正是這麼做:它由「多個過去值與過去斜率」的加權組合來預測下一個值,用便宜的歷史換取高準確度,而非重新計算。

一般形式組合最近 k 個解值與斜率:sum of alpha_j*y_{n+j} = h * sum of beta_j*f_{n+j},其中各 alpha 與 beta 是固定係數,f_j = f(t_j, y_j)。兩個著名的家族:「Adams-Bashforth」法是「顯式」的——它們只用已知的過去斜率預測新值,例如兩步公式 y_{n+1} = y_n + (h/2)*(3*f_n - f_{n-1}),把斜率趨勢外推。「Adams-Moulton」法是「隱式」的——它們也納入新的未知點處的斜率 f_{n+1},例如一步的梯形法則 y_{n+1} = y_n + (h/2)*(f_n + f_{n+1}),更準確、更穩定,但需要解出 y_{n+1}。一個 k 步方法需要 k 個起始值,所以無法自我啟動——你用龍格-庫塔法為它開機。

最大的吸引力是「成本」:因為重用儲存的斜率,多步法每步只需「一」次新的 f 計算(相對 RK4 的四次)就能達到高階,當 f 昂貴時這是重大的節省。它常與預測-校正配對搭配,這也是為什麼高階 Adams 法是許多生產級求解器的底層。誠實的代價是:它們需要另一個啟動器與儲存歷史的額外記憶體;對變動步長很不靈活(係數假設固定 h);而顯式者仍只有條件穩定。對剛性問題,你想要的特殊多步家族是向後差分公式(BDF)。

對 y' = y 用兩步 Adams-Bashforth,已知 y_0 = 1(起始)以及一步 RK4 在 h = 0.1 得 y_1 = 1.10517:f_0 = 1、f_1 = 1.10517,所以 y_2 = y_1 + (0.1/2)*(3*1.10517 - 1*1) = 1.10517 + 0.05*(2.3155) = 1.2210。真值 e^0.2 = 1.2214——靠重用儲存的 f_0,每步只算一次新斜率就達到二階準確度。

重用儲存的過去斜率以便宜地前進:一次新的 f 計算即可換來高階。

k 步方法無法自我啟動——它需要 k 個初始值,通常由一步(龍格-庫塔)方法產生,且計算中途改變步長很麻煩,因為固定的係數假設均勻間距。這些記帳的代價,就是「每步便宜的高階」所付出的價格。

又称
multistep methodAdams-BashforthAdams-MoultonLMM多步法亞當斯法