Crank-Nicolson 方案中虚假振荡的起源是什么?

计算科学 稳定 曲柄尼科尔森 振荡
2021-12-11 20:44:37

我正在阅读 Crank-Nicolson 方法,并且经常说它会产生“虚假振荡”或者这种方法容易出现“振铃”,特别是对于大时间步长和刚性初始值。

我对这种现象很好奇,但我找不到任何令人满意的答案。我在这个网站上读到这可能是因为 Crank-Nicolson 方案不是 L 稳定的。

L-stable的定义是什么?这与振荡的产生有何关系?

由于傅立叶变换,我在这篇论文中找到了一个解释的开始(参见方程 9,第 255 页),但我真的不明白为什么频率φ只是介于ππ,以及为什么φ±π应该对应于“高频”。你也可以帮我吗?

最后,我想知道这种虚假振荡问题是否总是出现在 Crank-Nicolson 方案中,还是取决于您离散化的方程?

总结一下,我的问题是:

  1. 使用 Crank-Nicolson 方案时,杂散振荡的起源是什么?
  2. 这取决于我们考虑的方程式吗?
  3. 什么是 L 稳定性,它与振荡有什么关系?(如果是)
  4. 你能帮我理解eq. 本文第 9 篇,为什么π<φ<π并不是φR?
1个回答

关于双曲线问题,您应该了解一些非常基本的知识。考虑最基本的例子tu+axu=0 具有以下形式的数字行进方案

ujn+1=kckuj+kn
. 这涵盖了所有显式方案,以及所有像 Crank Nicolson 这样的隐式方案,如果您从求解三对角系统开始。它实际上涵盖了所有类型的数值方法,在加法和乘法下是线性的。自 1959 年以来已知的戈杜诺夫定理断言,任何比一阶精度更好的这种形式的方法都会产生虚假振荡。LeVeque 的书会满足您的需求。

需要强调的重要一点是,这与稳定性关系不大,但在 CFD 中绝对普遍存在,因为 F 代表流体,流体会扭曲很多,所以对流项非常重要,有些事情是无法做到的,甚至在最琐碎的情况下。

相当惊人的结论是,即使是线性双曲问题也必须通过非线性数值方法来解决才能达到合理的精度。所有成功的方法都涉及开发解决方案和数值方案之间的反馈元素。