我试图了解一些结果,并希望对解决非线性问题提出一些一般性意见。
Fisher方程(非线性反应扩散PDE),
以离散的形式
其中是微分算子,是离散化模具。
方法
我希望应用隐式方案,因为我需要稳定性和不受限制的时间步长。为此,我使用方法(请注意,提供了完全隐式的方案,提供了梯形或“ Crank-Nicolson”方案),
但是,对于非线性问题,这无法完成,因为方程式不能以线性形式编写。
为了解决这个问题,我一直在探索两种数值方法,
IMEX方法
最明显的途径是忽略反应项的非线性部分,而只用可能的最佳值(即上一个时间步长)更新反应项。这导致IMEX方法。
牛顿求解器
完整的方法方程可以使用Newton-Raphson迭代来求解,以找到将来的求解变量。其中是迭代索引(),是的雅可比矩阵。在这里,我将符号用于迭代变量,以使它们在实时点与方程的解区分开。实际上,这是经过修改的牛顿求解器,因为并不是每次迭代都更新雅可比行列式。ķ ķ ≥ 0 甲Ñ ˚F (瓦特Ñ)ν ķ ù Ñ
结果
以上结果是针对相当大的时间步长计算的,它们显示了时间步长方法与完整的牛顿迭代求解器之间的差异。
我不明白的事情:
令我感到吃惊的是,时间步长方法的确“可以”,但随着时间的流逝,它最终落后于分析解决方案。(注意,如果我选择了较小的时间步长,则时间步长方法可使结果接近分析模型)。为什么采用时间步长法对非线性方程给出合理的结果?
牛顿模型的性能要好得多,但是随着时间的推移,它开始引领分析模型。为什么牛顿法的准确性会随着时间而降低?精度可以提高吗?
为什么会有一个普遍的特征,那就是在经过多次迭代之后,数值模型和解析模型开始出现分歧?这仅仅是因为时间步长太大还是会一直发生?