我对PDE的常见离散化方案不是很熟悉。我知道Crank-Nicolson是离散化扩散方程的流行方案。平流期也是一个不错的选择吗?
我对解决反应扩散对流方程很感兴趣,
其中是物质的扩散系数和是速度。
对于我的特定应用,方程式可以写成
这是我应用的Crank-Nicolson方案,
注意和条件。这使方案可以在以下之间移动:
- Crank-Niscolson,
- 它是完全隐式的
- 完全明确
值可以不同,从而允许扩散项为Crank-Nicolson,对流项为其他。什么是最稳定的方法,您会推荐什么?
我对PDE的常见离散化方案不是很熟悉。我知道Crank-Nicolson是离散化扩散方程的流行方案。平流期也是一个不错的选择吗?
我对解决反应扩散对流方程很感兴趣,
其中是物质的扩散系数和是速度。
对于我的特定应用,方程式可以写成
这是我应用的Crank-Nicolson方案,
注意和条件。这使方案可以在以下之间移动:
值可以不同,从而允许扩散项为Crank-Nicolson,对流项为其他。什么是最稳定的方法,您会推荐什么?
Answers:
这是一个结构合理的问题,非常容易理解。Korrok正确地将您引荐给von Neumann分析和LeVeque的书。我可以添加更多。我想写一个详细的答案,但目前我只有一点时间:
使用,您将获得一种对于任意大步长绝对稳定且二阶精确的方法。但是,该方法不是L稳定的,因此不会抑制非常高的频率,这是不物理的。
使用,您获得的方法也是无条件稳定的,但仅精确到一阶。此方法非常耗散。它是L稳定的。
如果采用,则您的方法可以理解为对中心差半离散应用加性Runge-Kutta方法。这种方法的稳定性和准确性分析要复杂得多。关于这种方法的一篇很好的论文在这里。
推荐哪种方法在很大程度上取决于的大小,您要处理的初始数据的类型以及所追求的精度。如果可接受非常低的精度,则是非常可靠的方法。如果是中等或较大,则问题是扩散为主且非常僵硬。通常会给出很好的结果。如果非常小,则对流项使用显式方法和高阶迎风可能会比较有利。
一般而言,您需要对抛物线方程式(扩散部分)使用隐式方法-抛物线PDE的显式方案需要很短的时间步才能稳定。相反,对于双曲部分(平流),您将需要一种显式方法,因为它更便宜并且不会破坏您必须通过使用隐式扩散方法解决的线性系统的对称性。在这种情况下,您要避免像这样的居中差异,而切换到单面差异出于稳定性的原因,。
我建议您看Randy Leveque的书或Dale Durran的 “冯·诺伊曼稳定性分析”书。如果您具有周期性边界条件,这是确定离散化方案稳定性的一种通用方法。(还有一个很好的维基文章在这里。)
基本思想是假设您的离散近似值可以写成平面波的总和,其中是波数,是频率。您将平面波塞入到PDE的近似值中,并祈祷它不会爆炸。我们可以将平面波重写为并希望确保。
通过说明,考虑具有完全隐式微分的普通扩散方程:
如果我们用平面波替代,然后除以和,我们得到方程
现在清理一点,我们得到:
。
这总是小于一,因此您无事。尝试将其应用于对流方程的显式集中式方案:
,看看你。(这次将有一个虚构的部分。)您会发现,这真是令人难过的时刻。因此,我告诫您不要使用它。如果可以做到,那么为整个对流扩散方程找到稳定的方案就不会有太多麻烦。
就是说,我将对扩散部分使用完全隐式的方案。改变在平流部分的差分到,如果和,如果,并选择一个时间步长,使得。(这是Courant-Friedrichs-Lewy条件。)它仅是一阶精确的,因此,如果您对此感兴趣,则可能需要查找更高阶的离散化方案。