如何在一维平流方程的数值解中推导出寄生振荡的界限?

计算科学 pde 有限差分 平流
2021-12-07 07:03:28

假设我有以下周期性一维平流问题:

ut+cux=0Ω=[0,1]
u(0,t)=u(1,t)
u(x,0)=g(x)
在哪里g(x)x(0,1).

据我了解,对于高于一阶的线性有限差分方案,随着时间的推移,不连续点附近会出现寄生振荡,从而导致解与其预期波形失真。根据维基百科的解释,似乎这些振荡通常发生在用有限傅立叶级数逼近不连续函数时。

出于某种原因,我似乎无法理解如何在这个 PDE 的解决方案中观察到有限傅立叶级数。特别是,我如何通过分析估计“过冲”的界限?

4个回答

一阶迎风法是单调的;它不会引入虚假振荡。但它只是一阶准确的,导致数值扩散如此之多,以至于无法用于许多目的。Godunov 定理指出,高于一阶的线性空间离散化不能是单调的。为了严格控制振荡,我们使用总变差减少 (TVD)方案。TVD 方法通常限于二阶精度。对于更高阶,我们必须要么放宽我们的要求,导致总变分有界(TVB)方法,如(加权)基本非振荡((W)ENO),要么我们必须将 TVD 的定义放宽为“最大原则保持”或类似的,其中初始极值是根据初始重构解决方案,导致特殊限制方案

具有周期性边界的一维问题的线性有限差分离散化导致形式的离散化

Un+1=LUn

在哪里L是一个循环矩阵任何循环矩阵的特征向量都是离散傅里叶模式

vj=exp(ijhξ)
(这里h是网格间距和ξ是波数,范围从零到网格上可表示的最高波数)。这些特征向量构成了所有可以在网格上表示的函数的基础。如果你用这些离散傅立叶模式来表达解,那么数值方法是对角化的,即每个傅立叶分量在每一步都乘以一个(通常是复数的)标量因子。标量因子通常被称为放大因子,我刚才描述的就是所谓的冯诺依曼分析它类似于线性偏微分方程的傅里叶分析,其中使用傅里叶基来“对角化”线性微分算子。

例如,您可以在StrikwerdaLeVeque的文本中找到很好的解释

并非所有的杂散振荡都是吉布斯现象。它们看起来很相似,但是对于不连续函数的所有有限傅里叶近似都有吉布斯振荡(随着您添加更多项,它们会变得更小)。然而,不连续函数的非振荡表示是由不需要无限级数的 PDE 的有限差分逼近的解产生的。

Bathe ( Inf-sup testing of upwind methods , PDF) 有一篇关于一维有限元方法(对流-扩散,IIRC)的论文,其中涉及计算inf-条件并将其与振荡相关联。您可能会从中获得一些见解。sup

至于你关于有限傅立叶级数和有限元近似之间联系的最后一个问题:一般来说,如果你试图将一个带有跳跃的函数投影到一个基函数是连续的有限维空间上,你会得到吉布斯现象。如果基是有限傅立叶级数(其中基函数是正弦和余弦)或者基是通常的有限元帽子函数,则这是正确的——它是投影的属性加上基函数的不适用性。