Чисельне рішення звичайних диференційних рівнянь
Багато задач фізики, хімії, екології, механіки й інших розділів науки й техніки при їхньому математичному моделюванні зводяться до диференціальних рівнянь. Тому розв’язання диференціальних рівнянь є однієї з найважливіших математичних задач. В обчислювальній математиці вивчаються чисельні методи розв’язання диференціальних рівнянь, які особливо ефективні в сполученні з використанням персональних комп’ютерів.
Серед безлічі чисельних методів розв’язання диференціальних рівнянь найбільш прості – це явні однокрокові методи. До них відносяться різні модифікації методу Рунге-Кутта.
Постановка задачі:
Потрібно знайти функцію , що задовольняє рівнянню
| (5.3) |
і приймаючу при задане значення :
| (5.4) |
При цьому розв’язок необхідно одержати в інтервалі . З теорії диференціальних рівнянь відомо, що розв’язання задачі Коші (5.3), (5.4) існує, єдино і є гладкою функцією, якщо права частина задовольняє деяким умовам гладкості. Чисельний розв’язок задачі Коші методом Рунге-Кутта 4-го порядку полягає в наступному. На заданому інтервалі вибираються вузлові точки. Значення розв’язку в нульовій точці відомо . У наступній точці визначається по формулі
| (5.5) |
Тут
| (5.6) |
– крок сітки;
тобто даний варіант методу Рунге-Кутта вимагає на кожному кроці чотириразового обчислення правої частини рівняння (5.3). Цей алгоритм реалізований у програмі ode 45. Крім цієї програми МАТLAB має у своєму розпорядженні великий набір аналогічних програм, що дозволяють успішно розв’язувати звичайні диференціальні рівняння.
Приклад 5.5
Розв’язати задачу Коші
| на при | (5.7) |
Точний розв’язок має вигляд
Приведемо розв’язання даної задачі чисельно за допомогою програми ode 45. Спочатку в М-файлі записуємо праву частину рівняння (5.7), сам М-файл оформляється як файл-функція, даємо йому ім’я
Для чисельного розв’язання задачі Коші у вікні команд набираються наступні оператори
Протокол програми
% Дескриптор @ забезпечує зв’язок з файлом-функцією правої частини
% [0 1] – інтервал, на якому необхідно одержати розв’язок
% [1] – початкове значення розв’язання
>> % Побудова графіка чисельного розв’язку задачі Коші (5.7)
% Команда дозволяє за допомогою миші нанести на графік напис y(x)
>> % Остання команда виводить таблицю чисельного розв’язку задачі
Результати розв’язання. Графік розв’язання задачі Коші (5.7) показаний на рис.5.4. Чисельний розв’язок представлений в таблиці 5.9, де наведені тільки окремі точки. У програмі за замовчуванням інтервал розбивається на 40 точок із кроком .
| Рис. 5.4 |
Таблиця 5.9
| хi | Метод Рунге-Кутта | Точний розв’язок |
| 0.0 | 1.0 | 1.0 |
| 0.1 | 1.2221 | 1.2221 |
| 0.2 | 1.4977 | 1.4977 |
| 0.3 | 1.8432 | 1.8432 |
| 0.4 | 2.2783 | 2.2783 |
| 0.5 | 2.8274 | 2.8274 |
| 0.6 | 3.5202 | 3.5202 |
| 0.7 | 4.3928 | 4.3928 |
| 0.8 | 5.4895 | 5.4895 |
| 0.9 | 6.8645 | 6.8645 |
| 1.0 | 8.5836 | 8.5836 |
Як видно з табл. 5.9 чисельний розв’язок програмою ode 45 є точним.
Варіанти завдань. Побудувати графік і вивести у вигляді таблиці розв’язок задачі Коші на інтервалі [0;1] методом Рунге-Кутта 4-го порядку.
Дані взяти з таблиці 5.10
| 1 | 0.0 | |
| 2 | 0.1 | |
| 3 | 2.0 | |
| 4 | 0.3 | |
| 5 | 0.4 | |
| 6 | 0.0 | |
| 7 | 0.1 | |
| 8 | 0.2 | |
| 9 | 0.3 | |
| 10 | 0.4 | |
| 11 | 0.5 | |
| 12 | 0.0 | |
| 13 | 0.5 | |
| 14 | 0.4 | |
| 15 | 0.3 | |
| 16 | 0.2 | |
| 17 | 0.1 | |
| 18 | 0.0 | |
| 19 | 0.1 | |
| 20 | 0.2 | |
| 21 | 0.3 | |
| 22 | 0.4 | |
| 23 | 0.5 | |
| 24 | 0.6 | |
| 25 | 0.7 | |
| 26 | 0.0 | |
| 27 | 0.1 | |
| 28 | 0.2 | |
| 29 | 0.3 | |
| 30 | 0.4 |
Нашли опечатку? Выделите и нажмите CTRL+Enter