Оптимальний метод ODE для фіксованої кількості оцінок РЗС


14

На практиці час виконання чисельного вирішення IVP x ( t 0 ) = x 0 часто переважає тривалість оцінки правої частини (RHS) f . Отже, припустимо, що всі інші операції є миттєвими (тобто без обчислювальних витрат). Якщо загальний час виконання для вирішення IVP обмежений, то це еквівалентно обмеженню кількості оцінок f до деякого N

x˙(t)=f(t,x(t)) for t[t0,t1]
x(t0)=x0
ff .NN

Нас цікавить лише кінцеве значення .x(t1)

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

Якщо, наприклад, ми могли б вирішити IVP, використовуючи два явні кроки Ейлера шириною ( t 1 - t 0 ) / 2 або один крок шириною t 1 - t 0, використовуючи метод середини. Мені не відразу зрозуміло, який із них кращий. Для більших NN=2(t1t0)/2t1t0N можна, звичайно, також думати про багатоступеневі методи, ітераційні схеми Runge-Kutta тощо.

Я шукаю результати, подібні до тих, що існують, наприклад, для правил квадратури: Ми можемо вибрати ваг { w i } і пов'язані з ними точки { x i } такі, що правило квадратури n i = 1 w i g ( x i ) є точним для всіх многочленів g таким, що d e g ( g ) 2 n - 1 .n{wi}{xi}i=1nwig(xi)gdeg(g)2n1

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

РЕДАКТУВАННЯ: Деякі основні відомості: Це стосується важких додатків у режимі реального часу, тобто результат повинен бути доступний до відомого терміну. Звідси обмеження кількості оцінок РЗСx(t1) як домінуючого коефіцієнта витрат. Зазвичай наші проблеми жорсткі та порівняно невеликі.N

EDIT2: На жаль, у мене немає точних вимог до термінів, але можна припустити, що буде досить малим (безумовно, <100, можливо ближче до 10). Враховуючи вимогу в реальному часі, ми повинні знайти компроміс між точністю моделей (з кращими моделями, що призводять до більш тривалого часу виконання RHS і, отже, до нижнього N ), і точністю методу ODE (з кращими методами, що вимагають вищих значення N ).NNN


Звичайна відповідність методів Рунге-Кутта з фіксованим кроком методам Ньютона-Котса застосовується до випадку, коли метод РК застосовується до IVP ; наприклад, застосування класичного методу четвертого порядку до цього IVP еквівалентно виконанню правила Сімпсона щодо f ( x ) . y=f(x)f(x)
JM

@JM: Я знаю про це. Я мав намір використовувати правила квадратури як приклад характеристики точності числового методу для певного набору входів, коли кількість оцінок функції обмежена. Крім цього мене цікавлять "справжні" ODE, тобто ті, які не зводяться до стандартної інтеграції.
Флоріан Брюкер

1
Це стає цікавішим. Тепер число саме по собі нічого не означає. Що може бути корисним, це знати λ N / T , де T - тривалість інтервалу інтегрування, а λ - константа Ліпшица з f по відношенню до x . Це покаже нам, наскільки жорстка проблема насправді. Якщо припустити, що він жорсткий, ймовірним кандидатом є метод BDF другого порядку. NλN/TTλfx
Девід Кетчесон

@DavidKetcheson: Мене більше цікавить загальний підхід до вибору підходящого методу для даної проблеми, а не оптимальний метод для конкретної проблеми. У нас є більша кількість моделей, які сильно відрізняються вимогами жорсткості та часу.
Флоріан Брюкер

Ви кажете, що оцінити дуже дорого. Чи можете ви взагалі обчислити якобійців? А як щодо деякого наближення, яке може виправити принципову жорсткість? Ви не в хорошій формі, якщо ваша проблема дуже жорстка і у вас немає способу її виправити. f
Джед Браун

Відповіді:


7

Я думаю, що ключовим посиланням на відповідь на ваше запитання є цей документ Хосей та Шампіна . Зараз я дам деяку інформацію.

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

S={zC:|P(z)|1}.

Тут - функція стійкості методу; див., наприклад, текст Hairer et. ін. Необхідною умовою стабільності є те, що λ h S, де λ знаходиться в межах власних значень якобіану f і hP(z)λhSλfh - розмір кроку. Це не завжди є достатньою умовою для нелінійних проблем, але це, як правило, хороше правило і використовується на практиці.

Детальну інформацію про проблему пошуку (явних) методів, які дозволяють отримати великі стабільні розміри кроків, дивіться в цій статті про поліноми стійкості та цю оптимізацію методів Рунге-Кутти для моделювання стисливих рідин .

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

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

Точність та ефективність стабільності широкого спектру методів можна обчислити простим та автоматизованим способом за допомогою NodePy (відмова від відповідальності: NodePy розроблений мною).


Дякую. Папір Хосі та Шампіна справді дуже цікавий. Чи знаєте ви подібні результати для жорстких проблем? Я знаю, що для них зазвичай використовуються неявні методи, але вони не апріорно пов'язані з кількістю оцінок РЗС, тому в моєму випадку вони мало корисні.
Флоріан Брюкер

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

6

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

Я збираюся зосередитись на явних методах, оскільки неявний випадок набагато менш очевидний, скільки оцінок РЗС вам потрібно буде використовувати .. Це повністю залежить від того, як ви вирішите вирішити отриману систему.

Для не жорстких систем:

Існують обмеження на етапи для явних методів Runge-Kutta, для яких кажуть, скільки етапів (оцінки RHS) потрібно для досягнення певного порядку точності. Після четвертого порядку кількість ступенів перевищує порядок точності, і нерівномірність продовжує зростати. Велика книга ODE для М'ясника: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC

робить гарну роботу, пояснюючи деякі з цих «неіснуючих» доказів.

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

Ось стаття про спектрально відкладену корекцію:

https://www.google.com/search?q=spectral+deferred+correction&aq=f&oq=spectral+deferred+correction&aqs=chrome.0.57j0l2j62.3336j0&sourceid=chrome&ie=UTF-8

Я не впевнений, як ці методи інтеграції протистоять стандартним явним методам, їм часто потрібно набагато більше пам’яті для збереження станів рішення на квадратурних вузлах, тому я ніколи сам не використовував їх.

Для жорстких систем:

S2S2S1S


2
Може статися, що використання методу змінного кроку (або навіть змінного порядку) може бути більш ефективним, ніж догматичне дотримання методу фіксованого кроку. Наприклад, можна подумати про використання екстраполятивного методу, наприклад, Bulirsch-Stoer: зробити кілька оцінок на деяких етапах, а потім побудувати (нібито) більш точні оцінки за результатами цих кроків.
JM

Правда. Власне кажучи, багато оптимальних методів в деякому сенсі еквівалентні версії з змінною ступінкою іншого крокового часу. Наприклад, Рунге-Кутта-Чебшев можна розглядати як застосований вперед Ейлер із змінними часовими кроками, що є точками Чебишева.
Рейд.Атчесон

@JM: Саме так. Але чи є можливість судити про точність цих підходів, окрім чисельних оцінок РЗС, окрім чисельних експериментів (які були б дуже задіяні, враховуючи велику кількість можливих підходів)?
Флоріан Брюкер

@Florian, не взагалі. Ви припускаєте, що ви чули про рівняння Лоренца?
JM

1
@JM: Так :) Тому я згадав приклад квадратури, де вимірюється точність wrt підмножиною (поліномами) вихідного проблемного простору. Буду задоволений результатами, які працюють лише для певного набору проблем.
Флоріан Брюкер

3

1014f(x)

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


+1. Щоразу, коли хтось запитує про ефективні вирішувачі ODE, я просто припускаю, що вони зацікавлені у величезних системах ODE, що надходять із напівдискретизації PDE або великих проблем з n-тілом.
Девід Кетчесон

Чи можете ви поясніть, як це стосується мого питання? Я не бачу зв'язку, оскільки мені цікавий випадок, коли оцінювання f(x)не є безкоштовним, а досить дорогим, що кількість оцінок обмежена.
Флоріан Брюкер

@DavidKetcheson: Тут не так. Це швидше, що у нас дуже жорсткі вимоги до часу (жорсткий реальний час) щодо слабкого обладнання (вбудованих пристроїв). Самі системи ODE порівняно невеликі.
Флоріан Брюкер

NNNN

NNN<1000

1

O(dim3)O(dim2)

Отже, перший пункт - переконатися, чи справді ваша РЗС дорожча, ніж основна лінійна алгебра.

Другий момент: з літератури відомо, що вирішення, засноване на «дорогих» методах (тобто явних методах РК), іноді працює швидше, ніж «дешевші» (явні багатоступеневі методи).

Підводячи підсумки, я думаю, що ви не повинні враховувати лише кількість оцінок РЗЗ.


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