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

Методи Рунге - Кутти(в літературі зустрічаються назви:методи Рунге - Куттаабометоди Рунге - Кутта) - великий клас чисельних методів вирішення завдання Коші для звичайних диференціальних рівнянь та його систем. Перші методи даного класу були запропоновані близько 1900 німецькими математиками К. Рунге і М. В. Кутт.

До класу методів Рунге — Кутти відносяться явний метод Ейлера і модифікований метод Ейлера з перерахунком, які є відповідно методами першого і другого порядку точності. Існують стандартні явні методи третього порядку точності, що не набули широкого поширення. Найчастіше використовується та реалізований у різних математичних пакетах (Maple, MathCAD, Maxima)класичний метод Рунге — Кутти, що має четвертий порядок точності. При виконанні розрахунків із підвищеною точністю все частіше застосовуються методи п'ятого та шостого порядків точності [1] [2] . Побудова схем вищого порядку пов'язані з великими обчислювальними труднощами [3] .

Методи сьомого порядку повинні мати щонайменше дев'ять стадій, а методи восьмого порядку не менше 11 стадій. Для методів дев'ятого і вищих порядків (що мають, втім, великої практичної значимості) невідомо, скільки стадій необхідно задля досягнення відповідного порядку точності [3] .

Зміст

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

Тоді наближене значення у наступних точках обчислюється за ітераційною формулою:

Обчислення нового значення відбувається у чотири стадії:

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

Усі досі згадані методи Рунге - Кутти є явними методами [en] . На жаль, явні методи Рунге-Кутти, як правило, непридатні для вирішення жорстких рівнянь через малу область їх абсолютної стійкості [4] . Нестійкість явних методів Рунге — Кутти створює дуже серйозні проблеми і за чисельного розв'язання диференціальних рівнянь у приватних похідних [en] .

Нестійкість явних методів Рунге-Кутти мотивувала розвиток неявних методів. Неявний метод Рунге - Кутт має вигляд [5] [6] :

Наслідком цієї відмінності є необхідність на кожному кроці розв'язувати систему рівнянь для k i, i = 1, 2,. . . , s, i = 1,2. s> , де s - Число стадій. Це збільшує обчислювальні витрати, проте за досить малому h можна застосувати принцип стискаючих відображень і вирішувати цю систему методом простої ітерації [7] . У разі однієї ітерації це збільшує обчислювальні витрати лише вдвічі.

Найпростішим неявним методом Рунге - Кутт є модифікований метод Ейлера «з перерахунком». Він задається формулою:

Для його реалізації на кожному кроці необхідні як мінімум дві ітерації (і два обчислення функції).

y n + 1 = y n + h f ( x n , y n ) + f ( x n + 1 , y

Стійкість

Перевагою неявних методів Рунге-Кутти в порівнянні з явними є їх більша стійкість, що особливо важливо при вирішенні жорстких рівнянь. Розглянемо як приклад лінійне рівнянняy'= λy. Звичайний метод Рунге - Кутти, застосований до цього рівняння, зведеться до ітерації y n + 1 = r (h λ) y n = r (h \ lambda) \, y_ & gt; , зr, рівним

Відповідно до граматичних норм української мови,прізвище Кутта схиляється, тому кажуть: «Метод Рунґе — Кутти». Правила української граматики наказують схиляти всі прізвища (у тому числі й чоловічі), що закінчуються на -а, -я, яким передує згодний. Єдиний виняток - прізвища французького походження з наголосом на останньому складі типу Дюма, Золя [13] . Однак іноді зустрічається несхильний варіант "Метод Рунге - Кутта" (наприклад, у книзі [14] ).

y ″ + 4 y = cos ⁡ 3 x , y ( 0 ) = 0.8 , y ′ ( 0 ) = 2 , x ∈ [ 0 , 1 ] , h = 0.1

< y ' = z = g ( x , y , z ) z ' = cos ⁡ ( 3 x ) − 4 y = f ( x , y , z ) y' = z = g (x, y, z) \ z '=\cos(3x)-4y=f(x,y,z)\end>>

У програмі на C# використовується абстрактний клас RungeKutta, в якому слід перевизначити абстрактний метод F, що задає праві частини рівнянь.

Рішення систем диференціальних рівнянь методом Рунге - Кутти є одним із найпоширеніших чисельних методів рішень у техніці. У середовищі MATLAB реалізовано його один з різновидів - метод Дормана - Прінса [en] . Для вирішення системи рівнянь необхідно спочатку записати функцію, що обчислює похідні, тобто функціїy=g(x,y,z) таz= cos(3x) − 4y=f(x,y,z), про що сказано вище. В одному з каталогів, до якого є доступ із системи MATLAB, потрібно створити текстовий файл з ім'ям (наприклад)runge.mз таким вмістом (для MATLAB версії 5.3):

Ім'я файлу та ім'я функції має збігатися, але воно може бути будь-яким раніше.

Потім необхідно створити головний файл з іменем, наприклад,main.m, який виконуватиме основні обчислення. Цей головний файл міститиме наступний текст:

Оскільки MATLAB орієнтований працювати з матрицями, рішення за методом Рунге — Кутти дуже легко виконується цілого рядуxяк, наприклад, у наведеному прикладі програми. Тут рішення - графік функції в межах часів від0доx_fin.

Змінніxтаy, отримані в результаті роботи функціїODE45, є векторами значень. Очевидно, що рішення конкретно заданого вище прикладу - другий елементx, так як перше значення 0, крок інтегруванняh= 0,1, а значення, що цікавитьсяx= 0,1. Наступний запис у командному вікні MATLAB дасть рішення: