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

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

Який би метод ми не використовували, головне завдання полягає у виборі хорошого кроку. Ідеально, ми хочемо вибрати h якомога більшим, але не настільки великим, щоб отримати надмірну помилку, або навіть гірше, спричинити нестабільність. Якщо ми оберемо фіксований крок, ми зможемо просуватись настільки швидко, наскільки нам дозволить найгірша секція x(t). Чого б нам хотілось, так це змінювати крок під час обчислень. Кожного разу коли ми можемо збільшити крок без введення завеликої помилки, ми повинні робити це. Відповідно, коли крок потрібно зменшити, щоб уникнути надмірної помилки, ми також повинні це робити. Це і є ідеєю адаптивного (пристосовного) крокування: зміна кроку h під час розв’язування звичайного диференціального рівняння (ЗДР).

У цій статті ми розглянемо пристосовне крокування для метода Ейлера. Базова ідея така. Припустимо, що ми маємо певний крок h, і ми хочемо знати як сильно ми можемо змінити його.

Спочатку з’ясуємо який розмір похибки дає нам метод Ейлера. Ключем для розуміння цього є ряд Тейлора. Припустивши, що x(t) є гладкою, ми можемо виразити значення наприкінці кроку як нескінченну суму:
x(t_0 + h) = x(t_0) + h \dot x(t_0) + \frac{h^2}{2}\ddot x(t_0) + \dots
Як ви можете побачити, ми отримуємо формулу Ейлера просто відкидаючи праворуч усі доданки окрім перших двох. Помилку, різницю між повним рядом і формулою Ейлера, можна оцінити як її найбільший доданок (h^2/2)\ddot x(t_0). Отже, ми можемо записати її як O(h^2).

Припустимо ми обчислили дві оцінки для x(t_0 + h). Ми обчислили першу оцінки x_a з кроком h від t_0 до t_0 + h. Ми також обчислили оцінку x_b з кроком h/2 цього разу за два кроки. Обидві оцінки x_a, x_b відрізняться від справжнього значення x(t_0 + h) на O(h^2). З цього випливає, що x_a різниться від x_b теж на O(h^2). У висліді ми можемо записати оцінку поточної помилки e як
e = \|x_a - x_b\|.
Це дає нам зручну оцінку помилки у випадку кроку h.

Припустимо, що ми бажаємо мати помилку 10^{-4} за крок, і що отримана помилка лише 10^{-8}. Оскільки помилка зростає як h^2, ми можемо збільшити крок до
\big(\frac{10^{-4}}{10^{-8}}\big)^{1/2}h = 100 h.

І навпаки, якби ми мали помилку 10^{-3} і могли б дозволити помилку 10^{-4}, ми мусили б зменшити розмір кроку до
\big(\frac{10^{-4}}{10^{-3}}\big)^{1/2}h = .316 h.

Пристосовне крокування є дуже рекомендованою технікою.

Дивись також

У статті використані матеріали з циклу лекцій Physically Based Modeling: Principles and Practice

Advertisements
  1. Коментарів ще немає.
  1. No trackbacks yet.

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: