単純な1D反応拡散方程式の解を計算しているときに奇妙な観察をしました。
初期値定数である(B (0 、X )= B 0)、および私は上に一体に興味があるから0に1(∫ 1 0(T 、X )D T)。目的Cと方程式∂ちょうどこの積分を評価することです。
拡散と反応のカップリングにストラン分割スキームを使用しました(ハーフステップ反応、次にフルステップ拡散、そして再びハーフステップ反応)、拡散にはクランクニコルソンスキーム、そして反応の分析ソリューション(式を含む)。
分析ソリューションの1ステップは、クランクニコルソンスキームの1ステップよりも3倍以上遅いため、各反応ステップで複数のクランクニコルソンステップを作成しようとしました。Strang分割スキームのステップを減らして、全体的に速くなるようにしたいと思っていました。
ただし、反対の効果が見られます。つまり、複数のクランクニコルソンステップが使用される場合、ストラン分割スキームにはさらに多くのステップが必要です。(私はの積分の精度にのみ関心があります。それはそれ自体よりも速く収束するようです。)しばらく疑問に思った後、同じ効果がb (t 、x )= b 0 =でも発生することに気付きました。 0、そして私はこの場合の理由も理解しています。ポイントは、クランクニコルソンステップを1つだけ実行すると、全体的なスキームが台形の規則に変わるということです(b (t )= 0の場合)。
だから私は扱うならばクランクニコルソンステップの数を増加させる拡散工程の一部として(おそらく)(観察されたように)減少し、全体的な精度をもたらさないであろう。しかし、それはシステムの(非線形で潜在的に非常に硬い)反応部分に分析ソリューションを使用する目的に反するようです。
だからここに私の質問です:治療するより良い方法はありますかは、Strang分割のコンテキストでは、それを反応ステップの一部として扱うか、拡散ステップの一部として扱うかのどちらかです。私は、拡散のためにちょうど1つのクランクニコルソンステップを使用するように「強制される」ことを避けたいです。(たとえば、3Dでは、拡散をCrank Nicholsonを使用する代わりにFFTで解析的に解決したいと思います。もちろん、FFTをCrank Nicholsonと組み合わせることもできるので、それほど大したことではありません。)