Деякі скінченно-різнецеві методи розв’язування звичайних диференціальних рівнянь

курсовая работа

6. Неявні інтерполяційні схеми

Алгоритм неявних інтерполяційних методів дослівно повторює алгоритм звичайних (явних) інтерполяційних методів. Єдина відмінність полягає в тому, що ми не використовуємо звичайну (явну) схему Рунге-Кутта другого порядку:

Ми заміняємо її на неявну схему Рунге-Кутта другого порядку:

Нагадаємо, що для цієї схеми можна використовувати два різних рецепта:

• шукати точне рішення цієї системи нелінійних рівнянь методом Ньютона;

• обмежитися лінеаризованим рівнянням, тобто зробити тільки перший крок методу Ньютона :

У будь-якому випадку доведеться вирішувати СЛР. В більшості випадків можна обійтись другим варіантом, але в дуже нестійких завданнях доведеться вдатися до першого (до речі, при цьому не доведеться сильно міняти текст програми).

Нагадаємо, що існують варіанти інтерполяційного методу з фіксованим кроком Н і змінним порядком m, з фіксованому порядку те і змінним кроком Н і, нарешті, із змінними m і Н. Тут можна привечти тільки простий алгоритм з фіксованим H.

Алгоритм:

Вибираємо постійний крок H за часом (як правило слід брати H близько 0.2). Рухаємося по траєкторії з цим кроком. Кожен окремий крок реалізується так:

Для k = 1,2,.. виконуємо наступне:

Для чергового Nk з набору {4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128} обчислюємо крок hk = H/Nk.

За допомогою цього кроку hk знаходимо

тут tn = t+nhk, n = 0.. Nk-1; при цьому . Зрозуміло, тут не слід обчислювати зворотну матрицю, потрібно просто вирішувати СЛР.

Для кожного хі по k точок:

виконуємо поліноміальну інтерполяцію взалежності Y(X) в точку X = 0. Результат інтерполяції, отриманий на k -му етапі, означаємо . Оцінюємо погрішність

як

Перетворюємо вектор на число характеризуючи погрішність. Якщо менше замовленого те вважаємо і завершуємо даний крок t>t+H.

Перша неприємна відмінність від явного методу полягає в тому, що кожен маленький крок на hk (великий крок H складається з Nk штук таких кроків) вимагає рішення СЛР.

Друга неприємна відмінність від явного методу полягає в тому, що тут набагато складніше перетворити вектор на одне число , оцінюючи погрішність. На жаль, рецепт цього перетворення слідує підібрати залежно від конкретного завдання, тобто від конкретних властивостей "швидких" і "повільних" змінних.

На перший погляд, цей алгоритм приведе не просто до багатьох помилок в описі динаміки "швидких" змінних, а до помилок якісних. Дійсно, якщо рівняння для "швидкої" змінної має вигляд , то при Ch>>1 неявна схема Рунге-Кутта другого порядку замість експоненціального вибуває дає x(t+h)?-x(t), тобто |x(t+H)|?|x(t)|. На щастя, наступна інтерполяція виправляє ситуацію. Інтерполяційний алгоритм "помічає", що у міру зменшення hk абсолютна величина x(k)(t+H) зменшується. Причому це зменшення тим помітніше, чим менше hk - В результаті остаточна відповідь буде помітна менше за абсолютною величиною, чим x(t).

Делись добром ;)