Міністерство освіти і науки України
Прикарпатський національний університет імені Василя Стефаника
Факультет математики та інформатики
кафедра диференціальних рівнянь і прикладної математики
Курсова робота на тему:
Деякі скінченно-різнецеві методи розв’язування
звичайних диференціальних рівнянь
Виконав:
студент групи ПМ-41
Васьків Святослав
Перевірив:
науковий керівник:
Василишин П.Б.
Івано-Франківськ 2010
План
Вступ.
1. Чисельна ітерація рівнянь Ньютона
2. Алгоритм Бімана і Шофілда
3. Метод Рунге-Кутта
a) Метод Рунге — Кутта 4-го порядку
б) Неявні схеми Рунге-Кутта
в) Неявні інтерполяційні схеми
г) Програма Рунге-Кутта на мові С#
д) Програма Beeman
4. Метод Адамса
5.Метод Крилова
6. Метод Чаплигіна
Висновок
Список використаної літератури
Вступ
Приведемо декілька найбільш відомих скінченно-різнецевих методів рішення рівнянь руху з непереривною силою. Важливо пам'ятати про те, що успішне використання чисельного метода визначається не лише тим, наскільки добре він наближає похідну на кожному кроці, але і тим, наскільки добре він апроксимує інтеграли руху, наприклад повну енергію. Безліч алгоритмів, використовуються в наш час, свідчить про те, що жоден метод не перевершує по усіх параметрах усіх інших.
1. Чисельна ітерація рівнянь Ньютона
Для спрощення запису розглянемо одновимірний рух частини і запишемо рівняння Ньютона у виді:
(1)
(2)Метою усіх скінцеворізнецевих методів являється знаходження значень x n+1 і v n+1(точка в "фазовому просторі") у момент часу tn+1=tn+∆t Нам вже відомо, що величину кроку ∆t потрібно вибирати таким чином, щоб метод інтегрування породжував приймати однакове рішення. Один із способів перевірки стійкості методу полягає в контролі величини повною енергії і забезпеченні того, щоби вона не відхилялася від початкового значення у разі, коли повна енергія зберігалась. Досить велике значення кроку приводить до не збереження повної енергії і до різних розв’язків для хn+1 i vn+1, тобто до таких розв’язків, які все більше відхиляються з потоком часу від істинного розв’язку.
Суть багатьох алгоритмів, можна зрозуміти, розкладаючи
vn+1 ≡ v(tn+∆t) i
xn+1 ≡ x(tn+∆t ) в ряд Тейлора. Запишемо
(3)і
(4)Добре відомий метод Ейлера еквівалентний збереженню в формулі (3) членів
(5)і
(6)Оскільки ми утримали у формулах (5-6) члени порядку ∆t, то «локальна» погрішність (погрішність на кроці) складає величину O(∆t)2
Оскільки ми від кроку до кроку погрішності накопичуються, позтому можна припускати, що «глобальна» погрішність, що є сумарною погрішністю за розглядом проміжок часу, буде величиной O(∆t). Ось ця оцінка погрішності цілком правдоподібна, оскільки число кроків, на яке розбивається часовий інтервал, пропорційна
1/∆t. Звідси випливає, порядок глобальної погрішності збільшується в ∆t разів по відношенню до локальної погрішності. Оскільки прийнято "говорити, що метод має n-й порядок аппроксимації, якщо ця локальна погрішність рівна О((∆t)n+1), то метод Ейлера відноситься до методів першого порядку.Метод Ейлера являється асиметричним, оскільки він просуває вирішення на один часовий крок ∆t, а використовує при цьому інформацію про похідну тільки в початковій точці інтервалу. Ми вже переконалися в тому, що точність методу Ейлера обмежується і частенько породжуване його рішення нестійке. На щастя, як правило, немає необхідності використовувати більш складні алгоритми. Наприклад, швидше ми знайшли, що проста модифікація методу (5-6), запропонована Кромером і іншими авторами, породжує стійке рішення для коливальних систем. Для закріплення повторимо алгоритм Ейлера-Кромера або наближення по «останній точці»:
(7)і
(8)Мабуть найбільш очевидний шлях удосконалення методу Ейлера, полягає в використанні для обрахування нового значення координати середини на відрізку швидкості. Відповідний метод середньої точки можна записати в вигляді:
(9)і
(10)Замітимо, що якщо підставити вираз (9) для vn+1 в (10) то отримаємо
(11)Звідси випливає, що метод середньої точки другого порядку точності по координаті і першого порядку по швидкості. Хоча наближення по середній точці дає точні результати для випадку постійного прискорення, взагалом він не приводить до значного покращення результату, ніж метод Ейлера. На справді оці два методи однаково погані, оскільки з кожним кроком погрішність збільшується.
Метод напівкроку відноситься до методів більше за високого порядок точностіз обмеженою погрішністю. Приймається, що средияя скорість на відрізку рівна значенню швидкості в середиие відрізок. Метод напівкроку можна записати у виді:
(12)і
(13)Замітио, що метод напів кроку не являє собою «самостартючим», так чи однакще фомули не дозволять порахвати v1/2. Цю незручність модна здолати поклавши
(14)Оскільки формули (12-14) можна повторювати до безмежності, то метод напів кроку отримав широке розповсюдження в навчальній літературі.
Один із найбільш відомих алгоритмів вищого порядку привласнюєтья Верле. Запишемо в ряд Тейлора для хn-1
(15)
Якщо скласти формули інтегрування вперед і назад (вирази (3) і (14) відповідно) то отримаємо
або
(17 )Аналогічно розв'язання розкладу в ряд Тейлора для xn+1 i xn-1 дає
(18)Підмітимо, що звязок з алгоритом Верле (18) велика погрішність має третій порядок для координати і другий порядок для швидкості. Проте швидкість не бере участі в інтегруванні рівнянь руху. В літературі по чисельному аналізу алгоритм Верле називається «неявна симетричність різновидної схеми».
Менш відомим, про те математично еквівалентної версії алгоритму Верле являє собою схема
(19)і
(20)Видно, що схема (19-20), називається швидкісною формулою алгоритму Верле, являється самостартуючою і не приводить до накопичення погрішностей округлення. Формули (19-20) можна вивести із формул (16-19) наступним чином.. Спочатку додамо і віднімемо із рівнянь (16-19) по (1/2)хn+1 і запишемо:
(21)Тут ви використаємо вираз (18). Із (17) знайдемо аn для метода Верле:
(22)Легко помітити, що підстановка (22)в вираз (21) приводить до (19). В томуж дусі перепишемо (17) для vn+1
(23)Тепер перепишемо формулу (17) для хn+2 і підтавимо її в отриманий результат формули (23). Отримуємо:
(24)
Тоді використовуємо вираз (17) для xn+1, повторимо цю процедуру і поставимо xn+1 в (24); після не важких перестановок отримаємо потрібний результат (20)
2. Алгоритм Бімана і Шофілда
Інший корисний алгоритм, в якому немає нагромаження погрішностей округлення, як в алгоритмі Верле, належить Біміану і Шофілду. Запишемо алгоритм Бімана в наступному виді:
(25а)і
(25б)Підмітимо, що точність розразунку траєктторії по схемі (25) не вища, ніж в алгоритмі Верле. Її перевага заключається в тому, що просто вона краще зберігає енергію. Однак алгоритм Бімана не самостартуючий. Алгорим Бімана і алгоритм Верле в швидкісній вормулі викоритані в програмі BEEMAN