龍格-庫塔方法
y(x) 是關於
x 的連續函數,
f(xn,y(xn)) 表示在
xn,y(xn) 處的導數。
顯示龍格-庫塔法的一般形式
用積分形式表示增量:
y(xn+1)−y(xn)=∫xnxn+1f(x,y(x))dx
以上是連續函數的表達形式,我們在使用計算機解決實際問題時,通常不是連續函數,多數爲離散問題。因此,我們可以根據上式表達一個近似:
∫xnxn+1f(x,y(x))dx≈hi=1∑rcif(xn+λih,y(xn+λih))
一般來說點數 r 越多,精度越高,上式右端相當於增量函數 φ(xn,yn,h) ,因此有以下不是嚴格意義上的等式:
yn+1=yn+hφ(xn,yn,h)(1)
其中
φ(xn,yn,h)=∑i=1rciKiKi=f(xn+λih,yn+h∑j=1i−1μijKj), i=2,…,r,(2)
這裏 ci,λi,μij 均爲常數,(1),(2) 稱爲 r 級顯示 龍格-庫塔(Runge-Kutta)法,簡稱 R-K 方法。
四階顯示 R-K 方法
要得到四階顯示 R-K 方法,必須取 r=3,此時公式 (1),(2) 表示爲:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧yn+1=yn+h(c1K1+c2K2+c3K3+c4K4)K1=f(xn,yn)K2=f(xn+λ2h,yn+μ21hK1)K3=f(xn+λ3h,yn+μ31hK1+μ32hK2)K4=f(xn+λ4h,yn+μ41hK1+μ42hK2+μ43hK3)
經過複雜的數學演算,可以到處各種四階龍格-庫塔公式,下列經典公式是其中常用的一個:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧yn+1=yn+6h(K1+2K2+2K3+K4)K1=f(xn,yn)K2=f(xn+2h,yn+2hK1)K3=f(xn+2h,yn+2hK2)K4=f(xn+h,yn+hK3)