常微分方程的數值方法

經典四階龍格-庫塔法

/ RK4 (ar-kay-FOUR) /

在所有龍格-庫塔配方中,有一個已經標準到「龍格-庫塔法」這個說法不加任何限定詞時,幾乎總是指它:經典四階方法 RK4。它在每一步內於四個點取樣斜率——起點一次、中間兩次、接近終點一次——並用偏重兩個中間取樣的權重把它們混合。結果是一個極好的有效斜率,好到這一步在 h 的四階之內都吻合真解。

精確地說,四個階段斜率是 k1 = f(t_n, y_n);k2 = f(t_n + h/2, y_n + (h/2) k1);k3 = f(t_n + h/2, y_n + (h/2) k2);k4 = f(t_n + h, y_n + h k3)。更新是 y_(n+1) = y_n + (h/6)(k1 + 2 k2 + 2 k3 + k4)。讀讀那些權重:兩個中點斜率 k2 與 k3 算兩倍、兩個端點斜率各算一倍,全部除以 6——一個讓人想起積分中辛普森法則的加權平均。巧妙的鏈接(每個階段都用前一個的斜率來算)正是讓四個取樣重現四個泰勒項的關鍵。

RK4 是常微分方程計算的主力,原因很簡單:它位於最佳點。身為四階,它的全域誤差為 h^4 量級,所以 h 減半、誤差縮成十六分之一——每步只算四次斜率就有絕佳準確度。它自啟動、十幾行就能寫完、對中等步長很寬容。對絕大多數非剛性問題,RK4(或像 RKF45 這樣的自適應內嵌表親)正是人們直接拿來用的東西。它唯一真正的弱點是剛性,此時身為顯式逼得它走小到要命的步,必須改用隱式方法。

對 y' = y, y(0) = 1, h = 0.1:k1 = 1, k2 = 1.05, k3 = 1.0525, k4 = 1.10525;y1 = 1 + (0.1/6)(1 + 2(1.05) + 2(1.0525) + 1.10525) = 1.1051708。精確值 e^0.1 = 1.1051709——單單一步就準確到七位數。

四個斜率取樣、辛普森式權重——全域誤差為 h^4 量級的準確度。

RK4 是顯式的,所以不適合剛性問題——在那裡它狹小的絕對穩定區域逼得步長小到不切實際,必須改用隱式方法(後向尤拉、BDF)。RK4 的盛名是針對非剛性情形。

又稱
RK4the classical RK4經典 RK4四階龍格-庫塔法