Оптимальне використання стрункового розщеплення (для рівняння дифузії реакції)


9

Я зробив дивне спостереження, обчислюючи рішення для простого 1D рівняння дифузії реакції:

ta=2x2aab

tb=ab

tc=a

Початкове значення - константа ( ), і мене цікавить лише інтеграл над від до ( ). Мета та рівняння - просто оцінити цей інтеграл.bb(0,x)=b0a0101a(t,x)dtctc=a

Я використовував схему розщеплення Странга для з'єднання між дифузією та реакцією (реакція на півкроку, потім повну ступінчату дифузію, а потім знову реакцію на півкроку), схему дифузії Кранка Ніколсона та аналітичний розчин для реакції ( включаючи рівняння ).tc=a

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

Однак можна спостерігати протилежний ефект, а саме, що для використання більше ніж одного кроку Кранка Ніколсона потрібно набагато більше кроків для схеми розщеплення Стренга. (Я стурбований тільки з точністю до інтеграла по , який , здається, сходяться швидше , ніж сама.) Після того, як цікаво , на яке - той час, я помітив , що той же ефект також відбувається для , і що я навіть розумію, чому саме в цьому випадку. Річ у тім, що якщо я роблю рівно один крок Нікалсона, тоді загальна схема перетворюється на правило трапеції (якщо ).aab(t,x)=b0=0b(t)=0

Тож якби я розглядав част як частину кроку дифузії, збільшення кількості кроків Кранка Ніколсона (ймовірно) не призвело б до зниження загальної точності (як це спостерігалось). Але це, здається, перешкоджає використанню аналітичного рішення для (нелінійної та потенційно дуже жорсткої) реакційної частини системи.tc=a

Тож ось моє запитання: чи є кращий спосіб розглянути в контексті розщеплення Странга, ніж або трактувати його як частину етапу реакції, або лікувати це як частина етапу дифузії. Я хочу, щоб не було «змушене» використовувати саме один крок Нікалсона Кран для дифузії. (Наприклад, в 3D, я вважаю за краще вирішити дифузію аналітичним методом FFT, а не використовувати Crank Nicholson. Звичайно, я також можу комбінувати FFT з Crank Nicholson, тому це не така вже й велика справа.)tc=a


У People.maths.ox.ac.uk/dellar/OperatorLB.html схожий ефект, схоже, описаний. Висновок полягає в тому, що замість точного рішення вирішальним є використання Кранка Ніколсона. Тож, можливо, відповідь на моє запитання - простий ні.
Томас Клімпель

Щось здається не так у ваших рівняннях. не з'являється в перших двох, що робить з'єднання одностороннім, і це означає, що ви можете обчислити в будь-якому як етап після обробки. ccт
Білл Барт

@BillBarth Я змінив питання, щоб уточнити роль . Отже, - це лише засіб для обчислення . Будь ласка, дайте мені знати, чи є у вас якісь пропозиції, як обчислити цей інтеграл точніше (ніж те, що я отримую з комбінації розщеплення Струнга і Кранка Ніколсона, описаного вище), потенційно використовуючи етап після обробки. cc01a(t,x)dт
Томас Клімпель

Зараз уже давно минуло, але чи визнали ви, що цю систему рівнянь можна записати як параболічний PDE у із терміном експоненціальної реакції? Напевно, мені цікаво, чи дійсно ви хочете вирішити цю 3-змінну систему замість спрощеної. c
Білл Барт

@BillBarth Мені було б цікаво дізнатись, як ця система може бути записана як параболічний PDE з експоненціальним терміном реакції. Швидкість рішення цієї моделі є обмежуючим фактором під час калібрування моделі (що може зайняти кілька годин), навіть тому використана точність відносно інтеграції часу є далеко не повною конвергенцією.
Томас Клімпель

Відповіді:


6

Я буду писати це як відповідь, хоча це прямо не відповідає на питання.

Підключивши друге рівняння і третє рівняння до першого, а третє підключивши до другого, разом даємо: Перестановка цих двох дає: Тепер ми можемо інтегрувати обидва рази в , залишаючи для перше рівняння:

2cт2=2х2cт+бтбт=-(cт)б
т(cт-2cх2-б)=01б(бт)=-cт
т
cт-2cх2=б+А(х)
Використовуючи третє рівняння, ми можемо виразити "константу" інтеграції як . Друге рівняння трохи складніше. Трохи переписавши, у нас є: Це призводить до рішення Або Експоненціація дає: І, нарешті, підключення цього до PDE для дає А(х)=а0-2c0х2-б0
0т1б(х,т')(б(х,т')т')гт'=-0тc(х,т')т'гт'
lnб(х,т)-lnб0(х)=-c(х)+c0(х)
lnбб0=-c+c0
б=б0еc0-c
c
cт-2cх2=б0еc0-c+А(х)

Замінивши на , або еквівалентно використовуючи початкові умови , це рівняння спрощується до Тепер вам слід мати змогу знайти значну літературу щодо найкращого способу вирішення цього рівняння. Я не знаю, чи Кранк-Ніколсон є хорошим вибором для експонентного терміну, але це здається правдоподібним. Певно слід подбати про те, щоб гарантувати, що скрізь, або рішення може швидко підірватись.cc-c0c0(х)=0

cт=2cх2+а0-(1-е-c)б0
c>c0

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

Вирішуючи це, поки і оцінюючи слід дати вам відповідь, яку ви шукаєте.т=1c(х,1)


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

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