Fiz uma observação estranha ao calcular a solução para uma simples equação de difusão da reação 1D:
O valor inicial de é uma constante ( ), e só estou interessado na integral sobre de a ( ). O propósito de e a equação é apenas para avaliar esta integral.
Usei um esquema de divisão de Strang para o acoplamento entre difusão e reação (uma reação de meio passo, depois uma difusão de passo completo e, novamente, uma reação de meio passo), um esquema de Crank Nicholson para a difusão e uma solução analítica para a reação ( incluindo a equação ).
Como uma etapa da solução analítica era mais que um fator 3 mais lenta que uma etapa do esquema Crank Nicholson, tentei fazer mais de uma etapa Crank Nicholson para cada etapa da reação. Eu esperava seguir com menos etapas do esquema de divisão do Strang, para que eu fosse mais rápido no geral.
No entanto, o efeito oposto pode ser observado, a saber, que muito mais etapas para o esquema de divisão de Strang são necessárias se mais de uma etapa da Crank Nicholson for usada. (Estou preocupado apenas com a precisão da integral sobre , que parece convergir mais rápido que própria.) Depois de pensar por algum tempo, notei que o mesmo efeito também ocorre para , e que eu até entendo o porquê desse caso. O ponto é que, se eu fizer exatamente uma etapa do Crank Nicholson, o esquema geral se transformará em uma regra trapezoidal (se ).
Portanto, se eu tratasse como parte da etapa de difusão, aumentar o número de etapas da Crank Nicholson (provavelmente) não levaria a uma precisão geral reduzida (como observado). Mas isso parece anular o propósito de usar uma solução analítica para a parte de reação (não linear e potencialmente muito rígida) do sistema.
Então, eis a minha pergunta: existe uma maneira melhor de tratar no contexto de uma divisão de Strang, do que tratá-lo como parte da etapa da reação ou tratar como parte da etapa de difusão. Quero evitar ser "forçado" a usar exatamente uma etapa do Crank Nicholson para a difusão. (Por exemplo, em 3D, eu preferiria resolver a difusão analiticamente por uma FFT em vez de usar Crank Nicholson. É claro que também posso combinar a FFT com a Crank Nicholson, para que não seja tão importante.)
fonte
Respostas:
Vou escrever isso como uma resposta, embora não responda diretamente à pergunta.
Ao conectar a segunda equação e a terceira equação na primeira e conectar a terceira na segunda, dê-se: Reorganizando essas duas opções: Agora, podemos integrar os dois uma vez em , deixando para a primeira equação:
Substituindo por , ou equivalente usando as condições iniciais , esta equação simplifica para Agora, você deve conseguir literatura considerável sobre a melhor maneira de resolver essa equação. Não sei se Crank-Nicholson é uma boa escolha para o termo exponencial, mas parece plausível. Alguns cuidados provavelmente devem ser tomados para garantir que em lugar ou a solução possa explodir rapidamente.c c−c0 c0(x)=0
Eu só passei por essa derivação duas vezes, então pode haver um erro ou dois, mas tem a sensação certa para mim. Se todos os lugares, então esta é claramente a solução certa e, de outra forma, tem um cheiro de plausibilidade.b0=0
Resolver isso até e avaliar deve fornecer a resposta que você está procurando.t=1 c(x,1)
fonte