Я сделал странное наблюдение, вычисляя решение простого одномерного уравнения диффузии реакции:
Начальное значение является константой ( ), и меня интересует только интеграл по от до ( ). Цель и уравнение состоит в том, чтобы просто оценить этот интеграл.
Я использовал схему расщепления Штранга для связи между диффузией и реакцией (полуэтапная реакция, затем полноэтапная диффузия, а затем снова полуэтапная реакция), схема Кранка Николсона для диффузии и аналитическое решение для реакции ( включая уравнение ).
Поскольку один шаг аналитического решения был более чем в 3 раза медленнее, чем один шаг по схеме Крэнка Николсона, я попытался сделать более одного шага Кранка Николсона для каждого этапа реакции. Я надеялся пройти с меньшим шагом схемы раскола Strang, так что я буду быстрее в целом.
Однако можно наблюдать противоположный эффект, а именно, что для схемы расщепления Штранга требуется гораздо больше шагов, если используется более одного шага Крэнка Николсона. (Я озабочен только с точностью до интеграла по , который , кажется, сходятся быстрее , чем сама.) После того, как интересно , на какое - то время, я заметил , что тот же эффект также происходит для , и это я даже понимаю, почему для этого случая. Дело в том, что если я сделаю ровно один шаг Крэнка Николсона, то общая схема превратится в правило трапеции (если ).
Поэтому, если бы я рассматривал как часть шага диффузии, увеличение числа шагов Крэнка Николсона (вероятно) не приведет к снижению общей точности (как наблюдалось). Но это, кажется, лишает смысла использование аналитического решения для (нелинейной и потенциально очень жесткой) реакционной части системы.
Итак, вот мой вопрос: есть ли лучший способ обработать в контексте расщепления Странга, чем рассматривать его как часть этапа реакции или обрабатывать это как часть этапа диффузии. Я хочу избежать того, чтобы меня «заставляли» использовать для диффузии ровно один шаг Крэнка Николсона. (Например, в 3D я предпочел бы решать диффузию аналитически с помощью БПФ, а не с помощью Крэнка Николсона. Конечно, я также могу комбинировать БПФ с Крэнком Николсоном, так что это не такая уж большая проблема.)
источник
Ответы:
Я собираюсь написать это как ответ, хотя он не дает прямого ответа на вопрос.
Подсоединяя второе уравнение и третье уравнение к первому, и подключая третье ко второму, вместе получим: Перестановка этих двух значений дает: Теперь мы можем интегрировать оба из них один раз в , оставляя для первое уравнение:
Заменив на или эквивалентно используя начальные условия , это уравнение упрощается до Теперь вы сможете найти значительную литературу о том, как лучше всего решить это уравнение. Я не знаю, является ли Кранк-Николсон хорошим выбором для экспоненциального термина, но это кажется правдоподобным. Вероятно, следует позаботиться о том, чтобы везде, иначе решение может быстро взорваться.c c−c0 c0(x)=0
Я только дважды прошел этот отрывок, так что в нем может быть одна или две ошибки, но мне это кажется правильным. Если везде, то это, безусловно, правильное решение, и в противном случае оно имеет правдоподобие.b0=0
Решение этого до и оценка должны дать вам ответ, который вы ищете.t=1 c(x,1)
источник