Метод Рунге-Кутта

Матеріал з Вікіпедії — вільної енциклопедії.

Методи Рунге-Кутта — важлива група чисельних алгоритмів розв'язування (систем) звичайних диференціальних рівнянь. Названи за іменами німецьких математиків Карла Рунге і Мартіна Кутти.

[ред.] Класичний метод Рунге-Кутта 4 порядку

Метод Рунге-Кутта 4 порядку настільки широко розповсюджений, що його часто называють просто метод Рунге-Кутта.

Розглянемо задачу Коші \textbf{y}'=\textbf{f}(x,\textbf{y}), \textbf{y}(x_0)=\textbf{y}_0. Тоді значення в наступній точці обчислюється по такій формулі:

\textbf{y}_{n+1} = \textbf{y}_n + {h \over 6} (\textbf{k}_1 + 2\textbf{k}_2 + 2\textbf{k}_3 + \textbf{k}_4)

де

\textbf{k}_1 = \textbf{f} \left( x_n, \textbf{y}_n \right),
\textbf{k}_2 = \textbf{f} \left( x_n + {h \over 2}, \textbf{y}_n + {h \over 2} \textbf{k}_1 \right),
\textbf{k}_3 = \textbf{f} \left( x_n + {h \over 2}, \textbf{y}_n + {h \over 2} \textbf{k}_2 \right),
\textbf{k}_4 = \textbf{f} \left( x_n + h, \textbf{y}_n + h\textbf{k}_3 \right),
h — крок по часу.

Цей метод має 4 порядок, тобто похибка на кажному кроці укладає O(h5), а сумарная похибка на кінцевому інтервалі інтегрування O(h4).

[ред.] Прямі методи Рунге-Кутта

Група прямих методів Рунге-Кутта є узагальненням метода Рунге-Кутта 4 порядку. Воно задається формулами

\textbf{y}_{n+1} = \textbf{y}_n + h\sum_{i=1}^s b_i \textbf{k}_i,

де

\textbf{k}_1 = f(x_n, \textbf{y}_n), \,
\textbf{k}_2 = f(x_n+c_2h, \textbf{y}_n+a_{21}h\textbf{k}_1), \,
\textbf{k}_3 = f(x_n+c_3h, \textbf{y}_n+a_{31}h\textbf{k}_1+a_{32}h\textbf{k}_2), \,
\vdots
\textbf{k}_s = f(t_n+c_sh, \textbf{y}_n+a_{s1}h\textbf{k}_1+a_{s2}h\textbf{k}_2+\cdots+a_{s,s-1}h\textbf{k}_{s-1}).

Конкретний метод визначається числом s і коефіцієнтами bi,aij і ci. Ці коефіцієнты часто впорядковують в таблицю

0
c2 a21
c3 a31 a32
\vdots \vdots \ddots
cs as1 as2 \cdots as,s − 1
b1 b2 \cdots bs − 1 bs

Для коефіцієнтів методу Рунге-Кутта мають бути виконані умови \sum_{j=1}^{i-1} a_{ij} = c_i для i=2, \ldots, s. Якщо ми хочемо, щоб метод мав порядок p, то варто так само забезпечити умову \bar\textbf{y}(h+x_0)-\textbf{y}(h+x_0)=O(h^{p+1}), де \bar\textbf{y}(h+x_0) — наближення, отримане по методу Рунге-Кутта. Після багаторазового диференціювання ця умова перетвориться в систему поліноміальних рівнянь на коефіцієнти методу.