Чому методи вищого порядку Runge – Kutta не використовуються частіше?


17

Мені було просто цікаво, чому методи високого порядку (тобто більше, ніж 4) Runge – Kutta майже ніколи не обговорюються / не застосовуються (принаймні, наскільки мені відомо). Я розумію, що для цього потрібен більший обчислювальний час за крок (наприклад, RK14 з вбудованим кроком 12-го порядку ), але чи є інші недоліки використання методів Біг-Кутта вищого порядку (наприклад, питання стабільності)? Якщо застосовувати до рівнянь із сильно коливаючими рішеннями на екстремальних часових масштабах, чи не були б такі переважні методи більш високого порядку?


2
Я думаю, що це дуже суб’єктивне питання. Як ви вже відзначали, найбільший недолік - це обчислення. Як правило, ми намагаємось збалансувати точність та обчислювальний час. У PDE, коли люди говорять про вищі порядки, вони, як правило, думають про 3-й чи 4-й порядки. І час крокування також зберігається в тому самому порядку.
Вікрам

3
У PDE схема точності високого порядку для тимчасової залежності не має сенсу, якщо просторова точність гірша. Насправді точність просторової залежності здебільшого приблизно 2-го чи 3-го порядку, особливо при роботі над неструктурованими сітками. Люди повинні контролювати глобальне усунення помилок з найменшими витратами, отже, вважає Рунге-Кутта досить високим порядком точності в окремих випадках.
tqviet

@tqviet Якщо використовувати зворотні чи центральні наближення різниці до порядку 8 для просторових похідних, RK8 буде придатним, ні? Загалом, чи існують якісь питання щодо точності чи стійкості з використанням таких наближених кінцевих різниць наближення просторових похідних?
Mathews24

1
@ Mathews24: Я не згадував про стабільність, яка сильно залежить від рівняння. Коли до просторової залежності застосовується високоточна схема, ми приймаємо РК до часової залежності щонайменше з таким же порядком точності, але умова стійкості може зажадати меншого значення . Δт
tqviet

Відповіді:


17

Існують тисячі паперів і сотні кодів, використовуючи методи Runge-Kutta п’ятого порядку або вище. Зауважимо, що найпоширенішим явним інтегратором у MATLAB є ODE45, який просуває рішення за допомогою методу Runge-Kutta 5-го порядку.

Приклади широко використовуваних методів Рунге-Кутти високого порядку

У статті Dormand & Prince, що дає метод 5-го порядку, налічується понад 1700 цитат за даними Google Scholar . Більшість із них - це документи, що використовують їхній метод, щоб вирішити якусь проблему. Документ методу Кеш-Карпа містить понад 400 цитат . Мабуть, найбільш широко застосовуваний метод замовлення вище 5 - це метод 8-го порядку Принца-Дорманда, який має понад 400 цитат на Google Scholar . Я міг би навести багато інших прикладів; і майте на увазі, що багато людей (якщо не більшість) людей, які використовують ці методи, ніколи не цитують паперів.

Зауважимо також, що екстраполяція високого порядку та відкладена корекція - це методи Runge-Kutta .

Методи високого порядку та помилка округлення

Якщо ваша точність обмежена помилками округлення, то вам слід використовувати метод вищого порядку . Це пояснюється тим, що методи вищого порядку вимагають меншої кількості кроків (і менше оцінок функцій, хоча є більше оцінок на крок), тому вони допускають менше помилок округлення. Ви можете легко перевірити це самостійно простими експериментами; це хороша проблема домашнього завдання для першого курсу чисельного аналізу.

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

Методи високого порядку можуть бути настільки ж стабільними

АБ

Методи високого порядку в небесній механіці

Ви запитаєте

Якщо застосовувати до рівнянь із сильно коливаючими рішеннями на екстремальних часових масштабах, чи не були б такі переважні методи більш високого порядку?

Ви абсолютно праві! Прекрасним прикладом цього є небесна механіка. Я не фахівець у цій галузі. Але цей документ , наприклад, порівнює методи для небесної механіки і навіть не вважає порядок меншим за 5. Він робить висновок, що методи порядку 11 або 12 найчастіше є найбільш ефективними (метод принца-Дорманда порядку 8 також часто дуже ефективний).


Кетчсон: чи можете ви надати якісь докази чи пояснення щодо цього твердження: "екстраполяція високого порядку та відкладені корекції - це методи Рунге-Кутти"? Особливо "відкладені методи корекції". Спасибі.
tqviet

@David Ketcheson Чи можете ви обговорити, як змінилась би ваша відповідь, якщо використовувати перевірені (перевірені) обчислювальні методи, такі як зовнішній округлий інтервал або радіальна арифметика? Як щодо того, якби було використано вище, ніж подвійна точність зовнішнього округлого інтервалу або радіальна арифметика? Що буде з обгортанням та залежністю, коли замовлення Runge-Kutta буде збільшено, і просто заради задоволення скажемо, що ODE дуже жорсткий.?
Марк Л. Стоун

@ MarkL.Stone Це зовсім інший набір питань. Якщо ви хочете їх задати, будь ласка, опублікуйте їх як окремі запитання. Однак я не знаю цих речей і не зможу відповісти.
Девід Кетчесон

1
@tqviet Погляньте на цей документ для пояснення.
Девід Кетчесон

12

Поки ви використовуєте стандартну арифметику з плаваючою точкою подвійної точності, для отримання рішення з високою точністю за розумну кількість кроків не потрібні методи високого порядку. На практиці я вважаю, що точність рішення зазвичай обмежується відносною помилкою 1,0e-16 завдяки подвійній точності подання плаваючої точки, а не кількістю / довжині кроків, які виконуються з RKF45.

Якщо ви переключитесь на деяку арифметичну схему з плаваючою точкою, що перевищує подвійну точність, то, можливо, варто використати метод 10-го порядку.


5
Я думаю, що ця відповідь вводить в оману. Методи високого порядку призводять до значно меншої помилки округлення, тоді як методи низького порядку страждають від того, що помилка округлення є домінуючою, коли потрібна точність велика або часовий інтервал довгий; дивіться мою відповідь нижче.
Девід Кетчесон

2
Справа в тому, що з плаваючою точкою з подвійною точністю ви навіть не можете представляти рішення з кращою порівняно точністю 1,0e-16. У багатьох практичних ситуаціях добрий старий RKF45 приведе вас до рівня точності протягом періоду, який вас цікавить, не вимагаючи невеликих кроків. Це може бути не найкращим вибором для жорстких систем або ситуацій, коли вимагається симплектичний інтегратор, але метод Бігге Кутта вищого порядку теж не є чудовим рішенням у цих ситуаціях. Я погоджуюсь, що протягом дуже тривалих періодів методи вищого порядку Runge Kutta можуть мати певний сенс.
Брайан Борчерс

10

Просто, щоб додати відмінну відповідь Брайана Борчера, багато додатків у реальному житті допускають дуже жорсткі ODE або DAE. Інтуїтивно ці проблеми відчувають не плавні, різкі зміни з плином часу, тому їх краще моделювати за допомогою поліномів низького порядку, які тонко розподіляються на короткі розміри кроків, на відміну від поліномів високого порядку, розтягнутих на довгі розміри кроків. Крім того, стабільність часто потребує використання неявних методів, для яких обчислювальна кара більш високого порядку набагато крутіша.

Більш суворо, методи вищого порядку менш стійкі, ніж методи нижчого порядку для жорстких проблем. У нас є, наприклад, бар'єри Далквіста для лінійних багатоступеневих методів.

r2

Подібні (але набагато складніші) твердження можна зробити для L-стійкості у формулах RK. У всіх випадках збільшення порядку часто не завжди призводить до більш точних рішень. Далі наведено уривок з випускного документу 1974 року Протеро та Робінсона:

Використовуючи A-стійкі однокрокові методи для розв’язання великих систем жорстких нелінійних диференціальних рівнянь, ми виявили, що
(a) деякі A-стійкі методи дають дуже нестабільні рішення, і
(b) точність рішень, отриманих при рівняннях жорсткість часто виявляється не пов'язаною з порядком використовуваного методу.

Про ще більш жорсткі трактування цієї теми дивіться класичний текст Хайрера та Ваннера "Розв’язання звичайних диференціальних рівнянь II: Жорсткі та диференціальні - алгебраїчні задачі", 1991 рік.

На практиці жорсткі рівняння майже завжди вирішуються за допомогою трапецієподібного правила або формули TR-BDF2 (функції ode23t та ode23tb в MATLAB). І те й інше - неявні методи другого порядку. Звичайно, коли стабільність не є проблемою (тобто в нестандартних рівняннях), ми можемо вибирати з ряду варіантів; RK45 - найпоширеніший вибір.


Дуже цікаво. Чи є якесь (інтуїтивне) пояснення того, чому порядок повинен бути меншим або рівним 2, щоб він був стійким багатоступеневим методом? І просто для уточнення, коли ви говорите, що подібні твердження можна зробити для формул РК, чи це ще раз 2 порядку?
Mathews24

Але для методів Рунге-Кутти існують A-стабільні методи довільного порядку.
Девід Кетчесон

@DavidKetcheson Так, але вони не є сильно A-стійкими (тобто L-стійкими). У них виникає багато проблем при використанні для вирішення ДАЕ, наприклад, імітують прості схеми транзисторів. Дійсно, TR відомий тим, що викликає штучний дзвінок у SPICE, саме це мотивувало розвиток TR-BDF2.
Річард Чжан

@DavidKetcheson Для ознайомлення див. Doi.org/10.1090/S0025-5718-1974-0331793-2 . Поняття A-стабільності недостатньо сильне для DAE, і високостандартні A-стабільні методи часто дають дивні результати при використанні для вирішення DAE.
Річард Чжан

Зрозуміло, але питання не в DAE або в багатоступеневих методах.
Девід Кетчесон

9

Налаштування орієнтиру

У програмному забезпеченні Julia DifferentialEquations.jl ми реалізували безліч методів вищого порядку, включаючи методи Feagin. Ви можете побачити це в нашому списку методів , а потім є багато інших, які ви можете використовувати як надані таблиці . Оскільки всі ці методи зібрані разом, ви можете легко орієнтуватися між ними. Тут ви можете побачити орієнтири, які в мене є в Інтернеті , і побачити, що дуже просто порівняти багато різних алгоритмів. Тож якщо ви хочете зайняти кілька хвилин, щоб запустити орієнтири, перейдіть до цього. Ось підсумок того, що виходить.

Перш за все важливо зазначити, що якщо ви подивитесь на кожен із орієнтирів, ви побачите, що наші DP5(Порядок Дорманд-Принц 5) та DP8методи швидші, ніж коди Хайрера Фортран ( dopri5і dop853), і тому ці реалізації дуже добре оптимізовані . Вони показують, що, як зазначається в іншій нитці, надмірне використання методів Дорманд-Прінса полягає в тому, що методи вже написані, а не тому, що вони все ще є найкращими. Таким чином, реальне порівняння між найбільш оптимізованими реалізаціями - це між методами Цітору, Вернером та методами Феагіна від DifferentialEquations.jl.

Результати

Як правило, методи замовлення, що перевищує 7, мають додаткову обчислювальну вартість, яка, як правило, не перевищує порядок, враховуючи вибрані допуски. Однією з причин цього є те, що вибір коефіцієнтів для методів нижчого порядку більш оптимізований (вони мають невеликі "принципові коефіцієнти помилок усікання", які важливіше, якщо ти не асимптотично малий). Ви можете бачити, що в багатьох проблемах, таких як методи Verner Efficient 6 і 7, дуже добре, але такі методи, як Verner Efficient 8, можуть мати менший нахил. Це тому, що "виграші" вищого порядку складаються при менших допусках, тому завжди існує допуск, де методи вищого порядку будуть більш ефективними.

Однак тоді питання, наскільки низький? У добре оптимізованій реалізації, це стає досить низьким з двох причин. Перша причина полягає в тому, що методи нижчого порядку реалізують щось, що називається FSAL (перший же, як і останній). Це властивість означає, що методи нижчого порядку повторно використовують оцінку функції з попереднього кроку на наступному кроці і, таким чином, фактично мають одну оцінку менш функцій. Якщо це використовувати правильно, то щось на зразок методу 5-го порядку (Ціторус або Дорманд-Прінс) насправді бере 5 оцінок функцій замість 6, які запропонували таблиці. Це справедливо і для методу Вернера 6.

Інша причина пов'язана з інтерполяціями. Однією з причин використовувати метод дуже високого порядку - робити менше кроків і просто інтерполювати проміжні значення. Однак, щоб отримати проміжні значення, інтерполяційній функції може знадобитися більше оцінок функції, ніж було використано для здійснення кроку. Якщо подивитися на методи Вернера, для отримання методу «Порядок 8» потрібно 8 додаткових оцінок функції для методу «Порядок 8». Багато разів методи низького порядку забезпечують "вільний" інтерполянт, наприклад, більшість методів 5-го порядку мають вільну інтерполяцію 4-го порядку (без додаткових оцінок функцій). Отже, це означає, що якщо вам потрібні проміжні значення (які вам знадобляться для хорошої ділянки, якщо ви використовуєте метод високого порядку), є деякі додаткові приховані витрати. Фактор у тому, що ці інтерпольовані значення дійсно важливі для обробки подій та вирішення диференціальних рівнянь затримки, і ви бачите, чому додаткові інтерполяційні фактори вартості в.

Отже, що про методи Feagin?

Тож ви побачите, що методи Feagin підозріло відсутні у орієнтирів. Вони прекрасні, тести на збіжність працюють на довільних числах точності тощо, але щоб насправді зробити їх добре, потрібно запитати про деякі досить абсурдно низькі допуски. Наприклад, я знайшов в неопублікованих тестах , що Feagin14перевершує по Vern9(9 - й порядку Вернера ефективного методу) при допусках подобається 1e-30. Для додатків з хаотичною динамікою (як, наприклад, у Плейдесах чи проблемах з астрофізикою 3-х тіл), можливо, вам потрібна ця кількість точності через чутливу залежність (помилки в хаотичних системах швидко з'єднуються). Однак більшість людей, ймовірно, обчислюють цифри з плаваючою точкою подвійної точності, і я не знайшов орієнтиру, де вони перевершують цю область толерантності.

Крім того, не існує інтерполянта, який би поєднувався з методами Феагіна. Тож я просто покладу на них інтерполяцію Hermite третього порядку, щоб такий спосіб існував (і це працює напрочуд добре). Однак якщо немає стандартної інтерполяційної функції, ви можете виконати рекурсивний метод Герміта (використовуйте цю інтерполяцію, щоб отримати середину, потім зробити інтерполяцію 5-го порядку тощо), щоб отримати інтерполяцію високого порядку, але це дуже дорого і Інтерполяція не обов'язково має низький принцип помилки усікання (так що це добре лише тоді, коли dtнасправді мало, що є прямо протилежною справі, яку ми хочемо!). Тож якщо вам колись потрібна справді хороша інтерполяція, щоб відповідати вашій точності, вам потрібно хоча б повернутися до чогось подібного Vern9.

Примітка про екстраполяцію

Зауважимо, що методи екстраполяції - це просто алгоритми для генерації методів Рунге-Кутти довільного порядку. Однак для свого замовлення вони роблять більше кроків, ніж необхідно, і мають високі принципові коефіцієнти помилок усікання, і тому вони не настільки ефективні, як добре оптимізований метод РК у заданому порядку. Але, враховуючи попередній аналіз, це означає, що існує область надзвичайно низької толерантності, де ці методи будуть краще, ніж "відомі" методи РК. Але в кожному етапі, який я пробігав, здається, що я не досяг такого низького рівня.

Примітка про стабільність

Вибір насправді не має нічого спільного з питаннями стабільності. Насправді, якщо ви пройдете через таблицю DifferentialEquations.jl (можна просто plot(tab)для регіонів стабільності), ви побачите, що більшість методів мають підозріло подібні області стабільності. Це насправді вибір. Зазвичай при виведенні методів автор зазвичай виконує такі дії:

  1. Знайдіть найнижчі принципові похибки усікання (тобто коефіцієнти для умов наступного порядку)
  2. З урахуванням обмежень замовлення
  3. І зробіть область стабільності близькою до методу Орден Дорманд-Принц 5.

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

Висновок

У кожному виборі методу є компроміси. Методи РК найвищого порядку просто не настільки ефективні при менших допусках як тому, що складніше оптимізувати вибір коефіцієнтів, так і тому, що кількість сполук для оцінки функцій (і зростає навіть швидше, коли задіяні інтерполяції). Однак якщо толерантність стає достатньо низькою, вони виграють, але необхідні допуски можуть бути значно нижчими від "стандартних" застосувань (тобто реально застосовуються лише до хаотичних систем).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.