龍格-庫塔方法

龍格-庫塔方法


y(x)y(x) 是關於 xx 的連續函數,f(xn,y(xn))f\left(x_n, y\left(x_n\right)\right) 表示在 xny(xn)x_n,y\left(x_n\right) 處的導數。

顯示龍格-庫塔法的一般形式

  用積分形式表示增量:
y(xn+1)y(xn)=xnxn+1f(x,y(x))dxy\left(x_{n+1}\right) - y\left(x_n\right) = \int_{x_n}^{x_{n+1}}f\left(x, y\left(x\right)\right)dx
  以上是連續函數的表達形式,我們在使用計算機解決實際問題時,通常不是連續函數,多數爲離散問題。因此,我們可以根據上式表達一個近似:
xnxn+1f(x,y(x))dxhi=1rcif(xn+λih,y(xn+λih))\int_{x_n}^{x_{n+1}}f\left(x, y\left(x\right)\right)dx \approx h\sum_{i = 1}^r c_if\left(x_n + \lambda_i h, y\left(x_n + \lambda_ih\right)\right)
  一般來說點數 rr 越多,精度越高,上式右端相當於增量函數 φ(xn,yn,h)\varphi\left(x_n, y_n, h\right) ,因此有以下不是嚴格意義上的等式:
(1)yn+1=yn+hφ(xn,yn,h)y_{n+1} = y_n + h \varphi\left(x_n, y_n, h\right) \tag{1}
  其中
(2)φ(xn,yn,h)=i=1rciKiKi=f(xn+λih,yn+hj=1i1μijKj),     i=2,,r, \begin{array}{lcl} \varphi \left(x_n, y_n, h\right) = \sum_{i = 1}^r c_iK_i \\ \tag{2} K_i = f\left(x_n + \lambda_ih, y_n + h\sum_{j = 1}^{i - 1} \mu_{ij}K_j\right), \ \ \ \ \ i = 2, \dots, r, \end{array}
這裏 ci,λi,μijc_i, \lambda_i, \mu_{ij} 均爲常數,(1),(2)(1),(2) 稱爲 rr 級顯示 龍格-庫塔(Runge-Kutta)法,簡稱 R-K 方法。

四階顯示 R-K 方法

  要得到四階顯示 R-K 方法,必須取 r=3r=3,此時公式 (1),(2)(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) \left\{ \begin{array}{lcl} y_{n+1} = y_n + h\left(c_1K_1 + c_2K_2 + c_3K_3+c_4K_4\right) \\ K_1 = f\left(x_n, y_n\right) \\ K_2 = f\left(x_n + \lambda_2h,y_n + \mu_{21}hK_1 \right) \\ K_3 = f\left(x_n + \lambda_3h,y_n + \mu_{31}hK_1 + \mu_{32}hK_2 \right) \\ K_4 = f\left(x_n + \lambda_4h,y_n + \mu_{41}hK_1 + \mu_{42}hK_2 + \mu_{43}hK_3 \right) \end{array} \right.
  經過複雜的數學演算,可以到處各種四階龍格-庫塔公式,下列經典公式是其中常用的一個:
{yn+1=yn+h6(K1+2K2+2K3+K4)K1=f(xn,yn)K2=f(xn+h2,yn+h2K1)K3=f(xn+h2,yn+h2K2)K4=f(xn+h,yn+hK3) \left\{ \begin{array}{lcl} y_{n+1} = y_n + \frac{h}{6}\left(K_1 + 2K_2 + 2K_3+K_4\right) \\ K_1 = f\left(x_n, y_n\right) \\ K_2 = f\left(x_n + \frac{h}{2},y_n + \frac{h}{2}K_1 \right) \\ K_3 = f\left(x_n + \frac{h}{2},y_n +\frac{h}{2}K_2 \right) \\ K_4 = f\left(x_n + h,y_n + hK_3 \right) \end{array} \right.
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章