
今天直接把张强书上的第6章大部分内容完成掉. 主要讲对流方程数值格式的相容性、稳定性以及数值振荡的分析方法。
参考书:
(1) J.W. Thomas - Numerical Partial Differential Equations_ Finite Difference Methods (1995, Springer)
(2) 张强《偏微分方程的有限差分方法》科学出版社,2019年1月版。
(3) K. W. Morton, D. F. Mayers - Numerical solution of partial differential equations (2005, Cambridge University Press)
今天内容:
1 五种差分格式的数值表现
考虑初值函数
同时具有光滑部分与间断部分, 比较迎风格式与LW格式的数值表现. (图来自张强书的插图)


- 在真解光滑的区域, 两个格式的数值表现都比较理想, LW格式相容阶更高, 误差更小.
- 在间断界面附近, 迎风格式的间断界面(也叫数值过渡区域)是平滑的; 但LW格式出现了数值振荡与上下溢出. 即使加密网格也不会得到明显改善. (网格加密后, 数值震荡明显可见的时间仅仅是被推迟了, 不可能消除)
- 这个例子表明双曲方程的数值困难, 即高阶精度与数值振荡是无法调和的两个对立面.迎风格式与LW格式各有优缺点, 我们希望构造尽可能保持高阶精度且保持间断面的形态.
下面用Lax格式与迎风格式进行对比. 空间步长

- 根据数值结果, 两个格式捕捉间断界面位置都比较精确. 但是在间断界面附近, Lax格式的数值过渡区域更宽, 峰值下降程度更厉害, 即Lax格式比迎风格式有更强的数值耗散机制.
下面绘制蛙跳格式在不同时刻的数值解. 空间步长

- 可以发现: 数值振荡出现在波后, 污染区域(振荡区域)随时间发展而变宽.
下面观察盒子格式的效果, 初值改为
空间步长

可以发现, 数值振荡出现在波前, 污染区域随着时间发展而逐渐变宽.
2 线性常系数差分格式
考虑如下的线性常系数差分格式:
其中
2.1 相容性
定理 差分方程与对流方程
相容的充要条件是
![]()
若相容, 则局部截断误差至少为一阶.
证明:差分方程的局部截断误差是
由Taylor展开到二阶项即可证明结论. QED
由于对流方程有行波解结构, 差分方程
均满足差分方程, 则局部截断误差至少达到k阶. 所以这个定理也可以改写为
函数1与均精确满足差分方程, 则差分方程相容.
例 给出差分方程达到k阶相容的充要条件.
由Taylor展开到k项,
由局部截断误差的定义,
如果要让格式是k阶相容的, 只需
化简得
2.2 单调格式与数值振荡
一个差分格式是单调保持格式指: 若数值初值单调, 则由这个差分格式得到的数值解也保持一定的单调性. (否则, 单调性刻画出现错误, 数值振荡随之产生. 所以单调保持性质是数值格式避免数值振荡的前提条件. )
单调格式指差分系数
注:由前面的相容性定理, 如果一个单调格式是相容格式, 则它具有凸组合的系数结构. 所以相容的单调格式满足离散最大模原理, 具有最大模稳定性! 也可以证明相容的单调格式有
定理 单调格式也是单调保持格式, 反之亦然.
证明:用归纳法证明即可. 逆命题可以考虑用下面的反例证明: 如果数值格式有负系数, 不妨设
考虑初值
数值解不再保持单增性质, 出现虚假数值振荡. QED
定理 [Godunov]单调格式至多具有一阶局部截断误差.
证明:设格式是相容的, 由Taylor展开, 局部截断误差为
由Cauchy-Schwarz不等式与相容性条件,
等号成立的条件是
注:高阶相容的线性格式必定存在负系数, 数值振荡现象不可避免. 若要建立高阶无振荡格式, 需要跳出单调格式框架, 后面还会介绍TVD格式.
例1 LW格式、蛙跳格式、盒子格式都是高阶相容的, 不是单调格式, 由Godunov定理, 数值解会有数值振荡现象. 例2 迎风格式与Lax格式都是一阶相容, 在CFL条件下, 它们都是单调格式, 不会出现数值振荡.
2.3 数值耗散与数值色散
首先回顾一下Fourier方法. 对流方程
对流方程的数值解形如
- 如果
此时数值格式的振幅会膨胀, 出现反数值耗散性质, 则格式不稳定;
- 如果
则模态解是衰减的(damped), 出现数值耗散现象.
- 如果
则简谐波振幅保持不变, 此时格式是无耗散的.
把上面的
称为相位函数, k为波数,
把不同波数k的模态解(简谐波)叠加起来得到的整体波形就是原PDE的真解:
这里
- 如果
是线性函数, 则各个简谐波的波速
相同, 所以整体的波形不变.
- 如果
不是线性函数, 则不同波数
的简谐波有不同的波速
, 此时整体波形会发生变化, 这样的物理现象叫
沿着波的传播方向, 位于波面(整体波形的波峰或者波谷或者间断界面)前面的位置叫波前, 位于波面后面的位置叫波后.
前面指出了, 增长因子的模
数值解的相位与真解的相位的比为
其中
- 若
则数值简谐波超前于真实简谐波;
- 若
则数值简谐波滞后于真实简谐波.
通常数值相位速度
注:数值色散现象会导致整体波形出现明显变化, 进而产生虚假的数值振荡现象, 如果
注: 数值耗散与数值色散是导致数值误差的两个根本原因, 上述分析方法也适用于其他PDE的各种格式.
例1 LW格式的数值振荡出现在波后.
答: 设
所以数值解的相位与真解相位的比为
由于
注:数值色散是数值振荡的根本原因, 数值耗散与数值色散的平衡关系决定数值振荡的具体表现.
例2 LW格式的增长因子满足![]()
当时, LW格式是有耗散的. 但是数值耗散的速度
比数值色散的速度
慢.
我们可以把前面涉及到的五种格式的
- 迎风格式与Lax格式都有较强的数值耗散(耗散速度为
), 而LW格式有弱数值耗散(
). 蛙跳格式与盒子格式无数值耗散.
- 迎风格式和Lax格式是单调格式, 所以不会出现数值振荡现象. LW格式、蛙跳格式、盒子格式的阶数为2, 根据Godunov定理, 它们不是单调格式, 必定有数值振荡.
- 当
时, LW格式、蛙跳格式的数值振荡出现在波后, 而盒子格式的数值振荡出现在波前. (当
时相反)