Метод Рунге — Кутти

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

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

Розглянемо задачу Коші для системи диференціальних рівнянь довільного порядку, що записується у векторній формі як

\textbf{y}'=\textbf{f}(x,\textbf{y}),~~~~~ \textbf{y}(x_0)=\textbf{y}_0.

Тоді значення невідомої функції в точці \ x_{n+1} обчислюється відносно значення в попередній точці \ x_n за формулою:

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

де \ h — крок інтегрування, а коефіцієнти \textbf{k}_n розраховуються таким чином:

 \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).

Це метод 4-го порядку, тобто похибка на кожному кроці становить \ O(h^5), а сумарна похибка на кінцевому інтервалі інтегрування є величиною \ O(h^4).

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

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

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

де

 \textbf{k}_1 = \textbf{f}(x_n, \textbf{y}_n), \,
 \textbf{k}_2 = \textbf{f}(x_n+c_2h, \textbf{y}_n+a_{21}h\textbf{k}_1), \,
 \textbf{k}_3 = \textbf{f}(x_n+c_3h, \textbf{y}_n+a_{31}h\textbf{k}_1+a_{32}h\textbf{k}_2), \,
 \vdots
 \textbf{k}_s = \textbf{f}(x_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 і коефіцієнтами \ b_i, a_{ij} і \ c_i. Ці коефіцієнти часто впорядковують в таблицю

0
 c_2  a_{21}
 c_3  a_{31}  a_{32}
 \vdots  \vdots  \ddots
 c_s  a_{s1}  a_{s2}  \cdots  a_{s,s-1}
 b_1  b_2  \cdots  b_{s-1}  b_s

Для коефіцієнтів методу Рунге — Кутти мають справджуватись умови \sum_{j=1}^{i-1} a_{ij} = c_i для  i=\overline{2,s}.

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

Прямі методи розв'язку жорстких диференціальних рівнянь та їх систем неефективні внаслідок різкого збільшення кроків обчислень (при зростанні кроку інтегрування h) чи зростання похибки при недостатньо малому кроці h.

Приклад розв'язання в середовищі MATLAB[ред.ред. код]

Розв'язання систем диференціальних рівнянь методом Рунге-Кутти є одним з найбільш поширених числових методів розв'язання в техніці. В середовищі MATLAB/Octave (досить поширена і зручна мова програмування для технічних обчислень) реалізований один з його різновидів — метод Дорманда-Принса.

Див. також[ред.ред. код]

Література[ред.ред. код]

  • William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Numerical Recipes in C. Cambridge, UK: Cambridge University Press, 1988. (Розділи 16.1 і 16.2.).