Адаптивний розмір кроку використовують у математиці та чисельних методах для чисельного розв'язання звичайних диференціальних рівнянь та чисельного інтегрування, щоб контролювати похибки методу та забезпечувати його стійкість. Використання адаптивного розміру кроку має особливе значення, коли є велика варіація в розмірі похідної. Наприклад, під час моделювання руху супутника кеплеровою орбітою навколо Землі може бути достатнім використовувати фіксований крок за часом. Однак все складніше, якщо потрібно моделювати рух космічного корабля з урахуванням як Землі, так і Місяця, як у задачі трьох тіл. Там виникають сценарії, коли можна робити великі кроки за часом, коли космічний корабель знаходиться далеко від Землі та Місяця, але якщо космічний корабель тісно наближається до одного з масивних тіл, то потрібні малі часові кроки. Метод Ромберга та метод Рунге — Кутти — Фельберга є прикладами методів чисельного інтегрування, які використовують адаптивний розмір кроку.
Приклад Для простоти в наступному прикладі використовується найпростіший метод інтегрування, метод Ейлера; на практиці перевагу надають методам вищого порядку, таким як методи Рунге-Кутти, завдяки їхнім кращим властивостям збіжності та стійкості.
Розгляньмо задачу
де y та f можуть бути й векторами (у цьому випадку це рівняння є системою зв'язаних звичайних диференціальних рівнянь від кількох змінних).
Нам задано функцію f (t, y) та початкові умови (a, ya), і нас цікавить знаходження розв'язку в точці t = b. Нехай y(b) позначає точний розв'язок у точці b, а yb позначає розв'язок, який ми обчислюємо. Запишемо , де — похибка чисельного розв'язку.
Для послідовності (tₙ) значень t, де tₙ = a + nh, метод Ейлера дає наближення до відповідних значень y (tₙ) як
Локальна похибка усічення цього наближення визначається як
За теоремою Тейлора можна показати, що (за умови достатньої гладкості f) локальна похибка усічення пропорційна квадрату розміру кроку:
де c — деяка константа пропорційності.
Ми позначили цей розв'язок та його похибку знаком .
Значення c нам невідоме. Тепер застосуймо метод Ейлера знову з іншим кроком, отримавши друге наближення до y(tₙ + 1). Ми отримаємо другий розв'язок, який позначимо як Візьмемо новий розмір кроку рівним половині початкового розміру кроку та застосуємо два кроки методу Ейлера. Цей другий розв'язок має бути точнішим. Оскільки нам доводиться застосовувати метод Ейлера двічі, локальна похибка (у найгіршому випадку) вдвічі перевищує початкову похибку.
Тут ми припускаємо, що коефіцієнт похибки є сталим на всьому інтервалі . Насправді його швидкість зміни пропорційна Віднімання розв'язків дає оцінку похибки:
Ця оцінка локальної похибки має точність третього порядку.
Оцінку локальної похибки можна використовувати для визначення того, як слід модифікувати розмір кроку для досягнення бажаної точності. Наприклад, якщо дозволено локальний допуск (від ), ми можемо дозволити h змінюватись так:
є безпековим коефіцієнтом, що гарантує успіх наступної спроби. Мінімум і максимум призначені для запобігання екстремальним змінам від попереднього розміру кроку. Це, в принципі, має дати похибку приблизно у наступній спробі. Якщо , вважаємо крок успішним, а оцінку похибки використовуємо для покращення розв'язку:
Цей розв'язок насправді має локальну точність третього порядку (а глобальну — другого порядку), але оскільки для нього немає оцінки похибки, це не допомагає зменшити кількість кроків. Цей метод називають екстраполяцією Річардсона.
Починаючи з початкового розміру кроку , ця теорія полегшує кероване інтегрування звичайного диференціального рівняння від точки до , використовуючи оптимальну кількість кроків за заданої локальної похибки. Недоліком є те, що розмір кроку може стати надмірно малим, особливо при використанні методу Ейлера низького порядку.
Подібні методи можна розробити і для методів вищого порядку, таких як метод Рунге — Кутти 4-го порядку.
Вбудовані оцінки похибки Адаптивні методи з урахуванням розміру кроку, що використовують так звану «вбудовану» оцінку похибки, включають методи , Рунге — Кутти — Фельберга, та . Вважають, що ці методи більш ефективні з обчислювальної точки зору, але мають нижчу точність в оцінці похибок.
Щоб проілюструвати ідеї вбудованого методу, розгляньмо наступну схему, яка оновлює :
Наступний крок передбачають на основі попередньої інформації .
Для вбудованого методу Рунге — Кутти обчислення включає метод Рунге — Кутти нижчого порядку Тоді похибку можна записати як
Тут — ненормалізована похибка. Для її нормалізації ми порівнюємо її з означеним користувачем допуском (рівнем толерантності), який складається з абсолютного та відносного допуску:
Потім ми порівнюємо нормалізовану похибку з 1, щоб передбачити :
Параметр q — це порядок, що відповідає методу Рунге — Кутти , що має нижчий порядок. Наведена вище формула збільшує крок, якщо оцінена локальна похибка менша за допуск, і зменшує крок в іншому випадку.
Наведений вище опис є спрощеною процедурою, використованою для керування кроком для явних методів Рунге — Кутти. Детальніший опис можна знайти в підручнику ГайрераE. Hairer, S. P. Norsett G. Wanner, «Solving Ordinary Differential Equations I: Nonstiff Problems», Sec. II.. Розв'язувачі звичайних диференціальних рівнянь у багатьох мовах програмування використовують таку процедуру як стратегію за замовчуванням для адаптивного керування кроком, хоча можуть також використовуватись інші параметри й налаштування, щоб зробити систему більш стійкою.
Примітки
Література
William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Numerical Recipes in C, Second Edition, CAMBRIDGE UNIVERSITY PRESS, 1992. Kendall E. Atkinson, Numerical Analysis, Second Edition, John Wiley & Sons, 1989. ISBN 0-471-62489-6