常微分方程的數值方法

龍格-庫塔法

/ Runge-Kutta (ROONG-uh KOO-tah) /

尤拉法信任一個斜率。改良尤拉法與中點法取樣兩個斜率並把它們組合,回報是二階準確度。自然的下一個念頭是:為什麼要停在兩個?在一步之內於幾個巧選的點取樣斜率,按精心設計的配方加權,把它們混合成一個超準確的有效斜率。這就是整個龍格-庫塔的概念——一族單步方法,靠著在數個內部點取樣右端項並混合結果而建立。

精確地說,一個龍格-庫塔法在一步之內算出數個階段斜率 k1、k2、k3、...。第一個是起點的斜率;之後每一個都是在由前面階段建出的點上算的斜率(在 t 上走分數步,在 y 上相應地組合各個 k)。最終更新是加權平均:y_(n+1) = y_n + h * (b1 k1 + b2 k2 + ...)。這些係數——在哪裡取樣(節點)、如何建出每個階段(內部權重)、最終權重 b_i——並非隨意;它們被選來讓加權平均盡可能高階地重現解的真泰勒展開。吻合更多泰勒項,就得到更高階的方法。

龍格-庫塔法是自啟動的(只需當前點,不需歷史),它們讓你自由改變步長,並以每步少數幾次斜率計算達到高準確度。這種穩健與準確的結合,正是它們——尤其是經典的四階 RK4——成為非剛性問題預設主力的原因。改良尤拉法與中點法不過是這個家族的二階成員;RK4 是恰好命中準確度對比成本最佳點的四階成員。

改良尤拉法是最簡單的龍格-庫塔法(2 階段、2 階):k1 = f(t_n, y_n),k2 = f(t_n + h, y_n + h k1),然後 y_(n+1) = y_n + (h/2)(k1 + k2)。選用更多階段與不同權重,便能爬升到 3、4、5 階乃至更高。

取樣數個內部斜率、按設計配方混合——一整族不同階的方法。

更多階段不會自動意味著更高階——超過四階後,一個顯式龍格-庫塔法所需的階段數會「多於」它的階,這正是 RK4(4 階段、4 階)位於如此甜美效率點的原因之一。

又稱
RK methodRK龍格庫塔法倫格-庫塔法