Визначення жорсткої системи ODE


17

Розглянемо IVP для системи ODE y=f(x,y) , . Найчастіше ця проблема вважається жорсткою, коли матриця Якобі має як власні значення з дуже великою негативною реальною частиною, так і власні значення з дуже малою негативною реальною частиною (я вважаю лише стабільну випадок).y(x0)=y0fy(x0,y0)

З іншого боку, у випадку лише одного рівняння, наприклад рівняння Протеро-Робінсона , воно називається жорстким, коли .λ - 1y=λy+g+λgλ1

Отже, є два питання:

  1. Чому малі власні значення включаються у визначення жорсткості для систем ODE? Я вважаю, що наявності лише дуже великих негативних реальних частин цілком достатньо для жорсткості системи, оскільки це змушує нас використовувати малі часові кроки для явних методів.

  2. Так, я знаю, що найпоширеніші жорсткі проблеми (наприклад, що виникають внаслідок параболічних PDE) мають як великі, так і малі власні значення. Отже, друге питання: чи є хороший природний приклад великої жорсткої системи без дуже малих власних значень (або, як варіант, з м'яким співвідношенням )?λmax/λхв


Гаразд, давайте змінимо питання. Розглянемо дві двовимірні лінійні системи ODE: перша з власними значеннями {-1000000, -0.00000001} і друга з {-1000000, -999999}. Щодо мене, обидва вони жорсткі. Але якщо ми розглянемо визначення коефіцієнта жорсткості, друга система не є. Основне питання: чому взагалі вважається коефіцієнт жорсткості?

А друга частина питання все ще важлива, перефразовуючи це: я шукаю "природну" велику систему ОРЕ з великими негативними власними значеннями та м'яким коефіцієнтом жорсткості (не більша, скажімо, 100).


2
Ласкаво просимо до scicomp.se На ваші запитання відповів ґрунтовно на wikipedia: en.m.wikipedia.org/wiki/Stiff_equation
Девід Кетчесон

Я думаю, що між коментарем @DavidKetcheson та кількома цитованими джерелами ви побачите, що коефіцієнт жорсткості - це лише орієнтир. Це не ідеально; тому це не в визначенні. Це, можливо, є характеристикою багатьох, але не всіх жорстких систем. Що ж стосується другої частини, я думаю, що вам буде важко її знайти, якщо вона не має особливої ​​структури або не виникає в додатку. Я наводив вам приклад такої програми, коли коефіцієнт жорсткості не завжди великий, і я закликаю вас переглянути книгу Хайрера та Ваннера.
Джефф Оксберрі

1
@David: Я не можу з тобою погодитися. Візьмемо для прикладу одновимірну задачу y '= - 50 (y-cos x). "Власне значення" становить -50. Не можна вирішити цю проблему явним Ейлером із ступінчастістю більше 2/50. Якщо ми замінимо -50 на -50000, обмеження на крок часу стає 2/50000. Які "одиниці" ми можемо вибрати тут, щоб подолати цей бар'єр?
faleichik

2
@faleichik частина вашого прикладу фіксує часову шкалу "повільного колектора" (що, швидше за все, часова шкала, яка вас цікавить, хоча можливо, що вас зацікавили б набагато коротші часові шкали). Я не вірю, що можна визначити жорсткість без вибору часової шкали спостереження (можливо, неявно, вказавши властивості, які ви хочете зберегти протягом більш тривалого часу). Коефіцієнт жорсткості лише кількісно оцінює поділ шкали між найшвидшими та найповільнішими часовими шкалами автономної системи. cosх
Джед Браун

1
Існує новий, кращий відповідь на це питання в цій статті .
Девід Кетчесон

Відповіді:


10

Жорсткість передбачає деяке розділення лусочок. Взагалі, якщо вас цікавить фаза найшвидшого режиму в системі, тоді вам доведеться її вирішити, і система не є жорсткою. Але часто вас цікавить довгострокова динаміка «повільного колектора», а не точна швидкість, з якою наближається рішення від повільного колектора.

Хімічні реакції та реагуючі потоки є загальними прикладами жорстких систем. Ван - дер - Поля є спільною проблемою еталоном для ОДУ інтеграторами , який має регульований жорсткість У параметрі.

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

Пов’язано: Коли слід використовувати неявні методи інтеграції гіперболічних ФДЕ?

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


10

Частина 1

Невеликі власні значення не включаються до визначення жорсткості для систем ODE (початкове значення). Я не знаю задоволеного визначення жорсткості, але найкращі визначення, які я натрапив, це:

Якщо числовий метод з кінцевою областю абсолютної стійкості, застосований до системи з будь-якими початковими умовами, змушений використовувати в певному інтервалі інтеграції довжину кроку, яка є надмірно малою щодо гладкості точного рішення в цьому інтервалі , тоді, як кажуть, система в цьому інтервалі жорстка. (Lambert, JD (1992), Числові методи для звичайних диференціальних систем , Нью-Йорк: Wiley.)

[0,б]

Рівняння жорсткості - це рівняння, де деякі неявні методи, зокрема BDF, працюють краще, як правило, надзвичайно краще, ніж явні. (CF Curtiss & JO Hirschfelder (1952): Інтеграція рівнянь жорсткості. PNAS, т. 38, стор. 235-243)

Стаття Вікіпедії про жорсткі рівняння продовжує приписувати Ламберту такі "твердження":

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

  2. Жорсткість виникає тоді, коли вимоги до стійкості, а не точності, обмежують довжину кроку. [Зауважте, що це "спостереження" є по суті визначенням Ашера та Петцольда.]

  3. Жорсткість виникає, коли деякі компоненти розчину розпадаються набагато швидше, ніж інші.

Кожне з цих спостережень має контрприклади (хоча, правда, я не міг створити жодного з верхівки голови).

Частина 2

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

У книзі Хайрера і Ваннера в своєму першому розділі (ряд IV частини, розділ 1) наведено ще кілька прикладів, які ілюструють багато інших прикладів жорстких рівнянь. (Ваннер, Г., Хайер, Е., Розв’язування звичайних диференціальних рівнянь II: Стиглі та диференціально-алгебраїчні задачі (2002), Спрінгер.)

Нарешті, варто вказати на спостереження CW Gear:

Незважаючи на те, що є загальним говорити про «жорсткі диференціальні рівняння,» рівняння самі по собі не є жорстким, конкретним завданням Коші для цього рівняння може бути жорсткими, в деяких регіонах, але розміри цих областей залежать від початкових значень і допущення помилок. (CW Gear (1982): Автоматичне виявлення та лікування коливальних та / або жорстких звичайних диференціальних рівнянь. В: Числова інтеграція диференціальних рівнянь, Лекційні записки в Математиці, т. 968, с. 190-206.)


Шановний Джефф, дякую за толерантність :-) Я хотів зробити своє запитання простим, але, врешті-решт, вважався недосвідченим. Насправді я знаю всі ці визначення, але.
faleichik

1. Малі власні значення неявно діють при визначенні коефіцієнта жорсткості: це велике, коли демонстратор малий. 2. Для одновимірного лінійного випадку коефіцієнт жорсткості завжди один, навіть для рівнянь жорсткості. 3. Чи є у вас якісь посилання на зазнану вами проблему хімічної кінетики? І 4. Спробую уточнити питання в коментарях.
faleichik

2
Ви можете знайти хімічні механізми у форматі CHEMKIN тут . Проблеми досить великі, що потрібні вхідні файли, а рівняння встановлюються автоматично за допомогою хімічного пакету. Я пропоную використовувати вхідні файли спільно з хімічним пакетом Cantera та набором рішень ODE / DAE SUNDIALS , які є відкритим кодом. Потім ви можете вирішити подібні проблеми в C ++ або MATLAB.
Джефф Оксберрі

Я особисто приймаю пропозицію Кертісса-Гіршфельдера як своє робоче визначення жорсткості; якщо явний RK або Adams займає занадто багато часу, щоб вирішити вашу проблему, то це, ймовірно, жорстке.
JM

2

Насправді Джед Браун очистив питання для мене. Те, що я зараз роблю, - це просто викласти його слова в контекст.

  1. Обидві 2-лінійні системи ODE зверху жорсткі (тобто важко вирішити з явними методами) на відносно великих інтервалах часу (наприклад, [0,1]).

  2. Лінійні системи з великим коефіцієнтом жорсткості можна вважати "більш жорсткими", оскільки, швидше за все, потрібно інтегрувати їх на великому часовому інтервалі. Це пов’язано з повільними компонентами, що відповідають найменшим власним значенням: розчин повільно тягнеться до стаціонарного стану, і цього стійкого стану зазвичай важливо досягти.

  3. З іншого боку, інтеграція систем з малим коефіцієнтом жорсткості на великих інтервалах не представляє інтересу: у цьому випадку стаціонарний стан досягається дуже швидко, і ми можемо його просто екстраполювати.

Дякую всім за цю дискусію!


1

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

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

Розглянемо дві двовимірні лінійні системи ODE: перша з власними значеннями {-1000000, -0.00000001} і друга з {-1000000, -999999}. Щодо мене, обидва вони жорсткі. Але якщо ми розглянемо визначення коефіцієнта жорсткості, друга система не є. Основне питання: чому взагалі вважається коефіцієнт жорсткості?

Гаразд, розглянемо приклад другого випадку:

у1'(т)=-1000000у1(т)
у2'(т)=-999999у2(т)

т=1000000т

у1'(т)=-у1(т)
у2'(т)=-0,999999у2(т)

Примітка 1: Я вибрав діагональну систему, щоб зробити її абсолютно очевидною, але якщо ви спробуєте її з іншою системою з тими власними значеннями, ви побачите той самий ефект, оскільки множення матриці на константу множить її власні значення на ту саму постійну.

|λ|1


Девіде, ти не розглядав інтервал інтеграції. Нехай це буде [0,1] у першому випадку. Якщо припустити явні обмеження стійкості Ейлера, максимально дозволений крок - 2/1000000. Тому нам потрібно зробити щонайменше 500 000 кроків. Коли ви масштабуєте час, максимальний крок збільшується до 2, але весь інтервал інтеграції стає 1 000 000, і ми знову досягаємо мінімум 500 000 кроків.
faleichik

@faleichik Так, тепер у вас є. Жорсткість пов'язана не з абсолютною величиною власних значень, а з їх розміром відносно вашої часової шкали інтересів, як Джед зазначив вище.
Девід Кетчесон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.