MathLabs
定理証明済み

古典的ルンゲ・クッタ法の精度の次数

内容

古典的な4次のルンゲ・クッタ法は、段k1=f(tn,yn)k_1 = f(t_n, y_n)、k2=f(tn+h2,yn+h2k1)k_2 = f\left(t_n+\frac{h}{2}, y_n+\frac{h}{2}k_1\right)、k3=f(tn+h2,yn+h2k2)k_3 = f\left(t_n+\frac{h}{2}, y_n+\frac{h}{2}k_2\right)、k4=f(tn+h,yn+hk3)k_4 = f(t_n+h, y_n+hk_3)と更新式yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n + \frac{h}{6}(k_1+2k_2+2k_3+k_4)で定義され、1ステップあたりの局所打ち切り誤差はO(h5)O(h^5)であり、前と同じリプシッツ条件のもとでnnステップ後の大域誤差はO(h4)O(h^4)である。

なぜ正しいのか?

RK4は、1回ではなく巧妙に選ばれた中間点で1ステップあたり4回傾きを評価し、重み1,2,2,11,2,2,1を66分の1として平均する。この追加の手間により、オイラー法に比べて精度が3次高くなる。すなわち、1次の項で止めるのではなく、真の解のテイラー展開にh4h^4の項まで一致させることができる。

証明の概略

各段を(tn,yn)(t_n, y_n)のまわりでテイラー級数展開する。k1=f(tn,yn)=y′(tn)k_1=f(t_n,y_n)=y'(t_n)であり,k2,k3k_2, k_3は前の段の方向に半ステップずらしたyny_nを用いてffを中点で評価するので,y′=fy'=f、y′′=ft+fyfy''=f_t+f_yf、y′′′=ftt+2ftyf+fyyf2+fy(ft+fyf)y'''=f_{tt}+2f_{ty}f+f_{yy}f^2+f_y(f_t+f_yf)の連鎖律を各kik_iに代入すると,各段が捉えられる次数までy′(tn),y′′(tn),y′′′(tn)y'(t_n), y''(t_n), y'''(t_n)に一致するhhの4つの多項式が得られる。

重み付き結合16(k1+2k2+2k3+k4)\frac{1}{6}(k_1+2k_2+2k_3+k_4)を作りhhを掛けると,この和におけるh1,h2,h3h^1, h^2, h^3とh4h^4の係数は,テイラー展開y(tn+h)=y(tn)+hy′(tn)+h22y′′(tn)+h36y′′′(tn)+h424y(4)(tn)+⋯y(t_n+h) = y(t_n) + hy'(t_n) + \frac{h^2}{2}y''(t_n) + \frac{h^3}{6}y'''(t_n) + \frac{h^4}{24}y^{(4)}(t_n) + \cdotsのh4h^4の項までの係数とちょうど一致する——これはまさに,RK4表の係数c=(0,12,12,1)c=(0,\frac12,\frac12,1)とb=(16,13,13,16)b=(\frac16,\frac13,\frac13,\frac16)が満たすように選ばれた古典的な次数条件そのものである。

2つの級数がh4h^4まで一致するので,両者が異なりうる最初の項はO(h5)O(h^5)の項であり,したがって局所打ち切り誤差は1ステップあたりO(h5)O(h^5)である。オイラーの場合と同様に,固定時刻に到達するために必要なn≈(T−t0)/hn\approx (T-t_0)/hステップにわたってこれらの局所誤差をffのリプシッツ条件を用いて積み重ねると,hhのべきがちょうど1つ失われ,大域誤差はO(h4)O(h^4)となる。

この定理を使うトピック

ステップごとの証明

この定理のステップごとの証明はまだありません。

参考文献

  1. J. C. Butcher (2016). Numerical Methods for Ordinary Differential Equations
  2. E. Hairer, S. P. Norsett, G. Wanner (1993). Solving Ordinary Differential Equations I: Nonstiff Problems