数值格式的色散耗散分析
考虑数值格式的色散耗散性质分析,我们希望数值格式所表现出的性质尽可能与精确满足PDE的波函数一致。下面的基本概念是针对一般的数值格式的,但是例子主要是对流方程的数值格式,因为对它的分析非常典型。
基本概念
取一个离散的谐波解 \[ v_j^n = e^{i(k x_j + \widetilde{w} t^n)} = e^{i( k j \Delta x + \widetilde{w} n \Delta t)} \] 代入离散后的差分系统,可以得到差分系统所对应的广义色散关系(复值) \[ \widetilde{w} = \widetilde{w}(k) \] 实部对应的是波数,虚部对应的是振幅,即 \[ \widetilde{w} = \text{Re} \widetilde{w}(k) + i\, \text{Im} \widetilde{w}(k) \Rightarrow \left\{ \begin{aligned} w(k) &= \text{Re} \widetilde{w}(k)\\ A &= e^{- \text{Im} \widetilde{w}(k) t} \end{aligned} \right. \] 波速 \[ c(k) = - \frac{w(k)}{k} = - \frac{\text{Re} \widetilde{w}(k)}{k} \]
放大因子
考虑Fourier分析中的放大因子,它与广义色散关系也存在密切联系 \[ \lambda = \lambda(k) = \frac{v_j^{n+1}}{v_j^n} = e^{i \widetilde{w} \Delta t} = e^{- \text{Im} \widetilde{w} \Delta t} e^{i \text{Re} \widetilde{w} \Delta t} \] 物理含义为在同一个位置\(\Delta t\)时间后,振幅和相位的变化:
- 振幅乘以一个因子 \(e^{- \text{Im} \widetilde{w} \Delta t}\)
- 相位增加 \(\text{Re} \widetilde{w} \Delta t\)
有时不易直接求得\(\widetilde{w}\)的表达式,但是放大因子\(\lambda = \lambda(k)\)总是易得的,我们需要据此反解出广义色散关系的表达式 \[ \begin{aligned} \text{Re} \widetilde{w}(k) &= \frac{\text{arg} \lambda(k)}{\Delta t} ( = w(k)) \\ \text{Im} \widetilde{w}(k) &= -\frac{\ln \vert \lambda(k) \vert}{\Delta t}\\ \end{aligned} \] 第一个式子也是差分格式的数值相位速度,数值格式的波速即 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \]
注:我们约定\(\widetilde{w}(0)=0\),并且保持\(\widetilde{w}=\widetilde{w}(k)\)关于\(k\)的连续性,这个约定可以避免周期性带来的问题,例如辐角的反解。
差分格式的性质
差分格式的耗散性
差分格式的解的耗散性质(即振幅变化)体现为\(\widetilde{w}\)的虚部:
- 若\(\text{Im} \widetilde{w} > 0\),则振幅因子小于1,振幅随时间衰减,差分格式是耗散的(稳定)
- 若\(\text{Im} \widetilde{w} = 0\),则振幅因子等于1,与时间无关,差分格式是无耗散的(稳定)
- 若\(\text{Im} \widetilde{w} < 0\),则振幅因子大于1,振幅随时间迅速增长,差分格式是逆耗散的(不稳定)
通常情况下,我们都会要求设计的差分格式是耗散的,否则会出现很多问题,例如局部截断误差不会衰减等。
差分格式的色散性
差分格式的波速如下 \[ c(k) = - \frac{w(k)}{k} = - \frac{\text{Re} \widetilde{w}(k)}{k} \] 或者基于放大因子 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \] 据此得到解的色散性分析:
- 若\(c(k)\)为常数,则不同波数的波传播速度一致,差分格式是无色散的
- 若\(c(k)\)不为常数,则不同波数的波传播速度不一致,差分格式是有色散的
通常很难保证设计的差分格式完全没有色散。
差分格式的群速度
数值格式所对应的波包的群速度定义如下 \[ C_{\Delta x}(k) = - \frac{d w(k)}{d k} \] 也可以通过放大因子计算,注意到\(w(k) = \text{arg} \lambda(k) / \Delta t\), 由于在下文中通常使用\(\eta= k \Delta x\)作为\(\lambda\)的自变量,这里顺便进行一个转换 \[ C_{\Delta x}(k) = - \frac{d\,\text{arg} \lambda(k)}{d k} = - \frac{\Delta x}{\Delta t} \frac{d\, \text{arg} \lambda(\eta)}{d \eta} \]
数值振荡的出现与数值群速度密切相关:(显然至少会保证数值群速度与PDE的群速度方向相同,否则格式不可能相容和收敛)
- 如果数值群速度的大小大于PDE的群速度,则在波前可能会产生数值振荡
- 如果数值群速度的大小小于PDE的群速度,则在波后可能会产生数值振荡
差分格式与PDE的性质比较
我们不关心差分格式所表现的自身的耗散性和色散性,而是希望与我们求解的PDE自身的耗散性和色散性更加契合,这就导出来数值耗散和数值色散的概念。
为了与数值格式的放大因子进行比较,我们对PDE也定义相应的放大因子,这里使用\(e\)下标来强调是PDE自身的概念 \[ \lambda_e = e^{i \widetilde{w}_e \Delta t} = e^{- \text{Im} \widetilde{w}_e \Delta t} e^{i \text{Re} \widetilde{w}_e \Delta t} \]
数值耗散
关于数值耗散的直观解释:
- 如果数值格式表现出比PDE更强的耗散性,称为数值正耗散
- 如果数值格式表现出比PDE更弱的耗散性,称为数值逆耗散
具体而言,就是比较振幅因子\(e^{- \text{Im} \widetilde{w} \Delta t}\) 和\(e^{- \text{Im} \widetilde{w}_e \Delta t}\)的大小:
- 数值正耗散:如果\(\text{Im} \widetilde{w} > \text{Im} \widetilde{w}_e\)
- 数值逆耗散:如果\(\text{Im} \widetilde{w} < \text{Im} \widetilde{w}_e\)
也可以把表达式换成基于放大因子的,比较\(\vert \lambda(k) \vert\)和\(\vert \lambda_e(k) \vert\)的大小:
- 数值正耗散:如果\(\vert \lambda(k) \vert < \vert \lambda_e(k) \vert\)
- 数值逆耗散:如果\(\vert \lambda(k) \vert > \vert \lambda_e(k) \vert\)
数值色散
关于数值色散的直观解释:
- 如果数值格式的相位超前于PDE对应的谐波,称为数值正色散
- 如果波向右传播,波速均为正值,相位超前的含义为数值解的波速大于PDE的波速
- 如果波向左传播,波速均为负值,相位超前的含义为数值解的波速小于PDE的波速
- 如果数值格式的相位滞后于PDE对应的谐波,称为数值负色散
具体而言,就是比较波速\(c(k)\)和\(c_e(k)\)的比值与1的关系:(显然两者至少是同号的,比值为正,否则格式不可能相容和收敛)
- 数值正色散:如果\(c(k)/c_e(k) > 1\),亦即\(w(k) > w_e(k)\)
- 数值正色散:如果\(c(k)/c_e(k) < 1\),亦即\(w(k) < w_e(k)\)
也可以把表达式换成基于放大因子的,比较\(\text{arg} \lambda(k)\)和\(\text{arg} \lambda_e(k)\)的比值与1的关系:
- 数值正色散:如果\(\text{arg} \lambda(k)/\text{arg} \lambda_e(k) > 1\)
- 数值正色散:如果\(\text{arg} \lambda(k)/\text{arg} \lambda_e(k) < 1\)
数值色散与数值振荡的产生密切相关,数值振荡表现的是高频波冲破了波包的包络线。但是注意:存在数值色散并不一定会出现数值振荡,例如下文对迎风格式和LF格式的分析,虽然都有数值色散,但是由于两个格式都是单调格式,不会产生振荡,也可以从耗散的角度解释:数值耗散的效应很强,抑制了可能出现的高频振荡。
数值色散是数值振荡产生的根本原因,数值耗散同数值色散的平衡关系,决定了数值振荡的具体表现。(摘自张强的书)
对流方程
这一部分考虑对流方程 \[ u_t + \alpha u_x = 0 (\alpha >0) \] 以及对应的数值格式。
PDE自身的性质
针对PDE自身的分析结果如下:
- 广义色散关系:\(\widetilde{w}_e = -\alpha k\)
- 色散关系:\(w_e = \text{Re} \widetilde{w}_e = -\alpha k\)
- 放大因子:\(\lambda_e = e^{- i \alpha k \Delta t}\)
- 波速:\(c_e = \alpha\)
例一:迎风格式
我们考虑迎风格式(FTBS格式) \[ v_j^{n+1} = v_j^n - \alpha \frac{\Delta t}{\Delta x}(v_j^n - v_j^{n-1}) \]
对于FTBS格式的分析从放大因子入手:(记\(r = \alpha \frac{\Delta t}{\Delta x}\))
\[ \lambda = 1 - r (1 - e^{-i k \Delta x}) = 1 - r + r \cos(k\Delta x) - i\, r \sin(k \Delta x) \]
差分格式的性质
差分格式的耗散性分析: 当\(0 < r \le 1\)时,满足稳定性条件,放大因子满足\(|\lambda | \le 1\),此时 \[ \text{Im} \widetilde{w} = -\frac{\ln \vert \lambda \vert}{\Delta t} \ge 0 \] 因此差分格式是耗散的。(舍弃等于0的情形)
差分格式的色散性分析:这里我们只关注\(\eta = k \Delta x\)很小的情形。
通过放大因子来计算波速 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \] 首先需要计算放大因子的辐角,对实部和虚部分别展开 \[ \begin{aligned} \text{Re} \lambda &= 1 - r + r\left( 1 - \frac{\eta^2}2 + \frac{\eta^4}{4!} + \cdots \right) \\ \text{Im} \lambda &= -r (\eta - \frac{\eta^3}{3!} + \dots) \end{aligned} \] 在\(|\eta|\)接近0时,显然辐角也在0附近,通过对\(\arctan\)函数在0附加泰勒展开 \[ \begin{aligned} \text{arg} \lambda &= \arctan \frac{ -r (\eta - \frac{\eta^3}{3!} + \dots) }{ 1 - r + r\left( 1 - \frac{\eta^2}2 + \frac{\eta^4}{4!} + \cdots \right) }\\ &= - r \eta + \frac16 (r - 3r^2 + 2r^3) \eta^3 + O(\eta^5)\\ &= - r\eta \left[ 1 - \frac16 (1-r)(1-2r)\eta^2 + O(\eta^4) \right] \end{aligned} \] 得到数值格式的波速 \[ c(k) = -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r)(1-2r)\eta^2 + O(\eta^4) \right] \] 由于\(\eta = k \Delta x\),显然波速与\(k\)有关,因此数值格式具有色散性。
差分格式的群速度计算:根据下式 \[ C_{\Delta x}(k) = - \frac{\Delta x}{\Delta t} \frac{d\,\text{arg} \lambda(\eta)}{d \eta} \] 代入放大因子的辐角表达式 \[ \text{arg} \lambda(\eta) =- r\eta \left[ 1 - \frac16 (1-r)(1-2r)\eta^2 + O(\eta^4) \right] \] 得到数值格式的群速度 \[ C_{\Delta x}(k) = a \left[ 1 - \frac12 (1-r)(1-2r)\eta^2 + O(\eta^4) \right] \]
差分格式与PDE的性质比较
关于数值耗散,我们可以比较的是\(|\lambda|\)和\(|\lambda_e|\):(记\(\eta = k \Delta x\)) \[ \begin{aligned} |\lambda| &= |1 - r + r \cos(k\Delta x) - i\, r \sin(k \Delta x)|\\ &= 1 - \frac12 r (1 - r) \eta^2 + O(\eta^4) \\ |\lambda_e| &= |e^{- i \alpha k \Delta t}| = 1 \end{aligned} \] 注意到\(0<r \le 1\),因此有:\(|\lambda| \le |\lambda_e|\),存在数值正耗散。
关于数值色散,我们可以比较的是\(c(k)\)和\(c_e(k)\)的比值和1的关系: \[ \begin{aligned} c(k) &= -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r)(1-2r)\eta^2 + O(\eta^4) \right]\\ c_e(k) &= \alpha \end{aligned} \] 波速的比值 \[ \frac{c(k)}{c_e(k)} = 1 - \frac16 (1-r)(1-2r)\eta^2 + O(\eta^4) \]
因此:
- 若\(r \in (\frac12,1)\),则\(\frac{c(k)}{c_e(k)}>1\),数值正色散
- 若\(r \in (0,\frac12)\),则\(\frac{c(k)}{c_e(k)}<1\),数值负色散
至于\(r=\frac12\)并不是严格的数值正负色散的转换临界状态,因为我们的分析都是基于泰勒展开的,在低阶项为0时,高阶项又会发挥作用,很难计算出严格的临界点。
例二:Lax-Friedrich格式
我们考虑LF格式(记\(r = \alpha \frac{\Delta t}{\Delta x}\)) \[ v_{j}^{n+1} = \frac{v_{j+1}^n+v_{j-1}^n}{2} - \frac{r}2 (v_{j+1}^n-v_{j-1}^n) \] 同样地,从LF格式的放大因子入手 \[ \begin{aligned} \lambda &= \frac{1}2(e^{i k \Delta x} + e^{- i k \Delta x}) - \frac{1}2 (e^{i k \Delta x} - e^{- i k \Delta x})\\ &= \cos(k \Delta x) - r \sin(k\Delta x) i \end{aligned} \]
差分格式的性质
差分格式的耗散性分析: 当\(0 < r \le 1\)时,满足稳定性条件,放大因子满足\(|\lambda | \le 1\),此时 \[ \text{Im} \widetilde{w} = -\frac{\ln \vert \lambda \vert}{\Delta t} \ge 0 \] 因此差分格式是耗散的。(舍弃等于0的情形)
差分格式的色散性分析:这里我们只关注\(\eta = k \Delta x\)很小的情形。
通过放大因子来计算波速 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \] 首先需要计算放大因子的辐角,对实部和虚部分别展开 \[ \begin{aligned} \text{Re} \lambda &= 1 - \frac12 \eta^2 + \frac{1}{24} \eta^4 + O(\eta^6) \\ \text{Im} \lambda &= -r \eta + \frac{r}6 \eta^3 - O(\eta^5) \end{aligned} \] 在\(|\eta|\)接近0时,显然辐角也在0附近,通过对\(\arctan\)函数在0附加泰勒展开 \[ \begin{aligned} \text{arg} \lambda &= \arctan \frac{ -r \eta + \frac{r}6 \eta^3 - O(\eta^5) }{ 1 - \frac12 \eta^2 + \frac{1}{24} \eta^4 + O(\eta^6) }\\ &= -r \eta \left[ 1 + \frac13 (1-r^2)\eta^2 + O(\eta^4) \right] \end{aligned} \] 得到数值格式的波速 \[ c(k) = -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 + \frac13 (1-r^2)\eta^2 + O(\eta^4) \right] \] 由于\(\eta = k \Delta x\),显然波速与\(k\)有关,因此数值格式具有色散性。
差分格式的群速度计算:根据下式 \[ C_{\Delta x}(k) = - \frac{\Delta x}{\Delta t} \frac{d\,\text{arg} \lambda(\eta)}{d \eta} \] 代入放大因子的辐角表达式 \[ \text{arg} \lambda(\eta) =-r \eta \left[ 1 + \frac13 (1-r^2)\eta^2 + O(\eta^4) \right] \] 得到数值格式的群速度 \[ C_{\Delta x}(k) = a \left[ 1 + (1-r^2)\eta^2 + O(\eta^4) \right] \]
差分格式与PDE的性质比较
关于数值耗散,我们可以比较的是\(|\lambda|\)和\(|\lambda_e|\):(记\(\eta = k \Delta x\)) \[ \begin{aligned} |\lambda| &= |\cos(k \Delta x) - r \sin(k \Delta x) i|\\ &= 1 - \frac12 (1 - r^2) \eta^2 + O(\eta^4) \\ |\lambda_e| &= |e^{- i \alpha k \Delta t}| = 1 \end{aligned} \] 注意到\(0<r \le 1\),因此有:\(|\lambda| \le |\lambda_e|\),存在数值正耗散。
关于数值色散,我们可以比较的是\(c(k)\)和\(c_e(k)\)的比值和1的关系: \[ \begin{aligned} c(k) &= -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 + \frac13 (1-r^2)\eta^2 + O(\eta^4) \right]\\ c_e(k) &= \alpha \end{aligned} \] 波速的比值 \[ \frac{c(k)}{c_e(k)} = 1 + \frac13 (1-r^2)\eta^2 + O(\eta^4) \]
因此:对于\(r \in (0,1)\),总是有\(\frac{c(k)}{c_e(k)}>1\),数值正色散。
例三:Lax-Wendroff格式
我们考虑LW格式(记\(r = \alpha \frac{\Delta t}{\Delta x}\)) \[ v_{j}^{n+1} = v_j^n - \frac{r}2(v_{j+1}^n- v_{j-1}^n) + \frac{r^2}2 (v_{j+1}^n-2v_{j}^n+v_{j-1}^n) \] 同样地,从LW格式的放大因子入手 \[ \begin{aligned} \lambda &= 1 - \frac{r}2(e^{i k \Delta x} - e^{- i k \Delta x}) + \frac{r^2}2 (e^{i k \Delta x} - 2 + e^{- i k \Delta x})\\ &= 1 - r \sin(k \Delta x) i + \frac{r^2}2 (-4 \sin^2(\frac{k\Delta x}2))\\ &= 1 - 2r^2 \sin^2(\frac{k\Delta x}2) - r \sin(k \Delta x) i \end{aligned} \]
差分格式的性质
差分格式的耗散性分析: 当\(0 < r \le 1\)时,满足稳定性条件,放大因子满足\(|\lambda | \le 1\),此时 \[ \text{Im} \widetilde{w} = -\frac{\ln \vert \lambda \vert}{\Delta t} \ge 0 \] 因此差分格式是耗散的。(舍弃等于0的情形)
差分格式的色散性分析:这里我们只关注\(\eta = k \Delta x\)很小的情形。
通过放大因子来计算波速 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \] 首先需要计算放大因子的辐角,对实部和虚部分别展开 \[ \begin{aligned} \text{Re} \lambda &= 1 - \frac{r^2}2 \eta^2 + \frac{r^2}{24} \eta^4 + O(\eta^6)\\ \text{Im} \lambda &= -r \eta + \frac{r}6 \eta^3 + O(\eta^5) \end{aligned} \] 在\(|\eta|\)接近0时,显然辐角也在0附近,通过对\(\arctan\)函数在0附加泰勒展开 \[ \begin{aligned} \text{arg} \lambda &= \arctan \frac{ -r \eta + \frac{r}6 \eta^3 + O(\eta^5) }{ 1 - \frac{r^2}2 \eta^2 + \frac{r^2}{24} \eta^4 + O(\eta^6) }\\ &= - r \eta + \frac16 (r - r^3) \eta^3 + O(\eta^5)\\ &= - r\eta \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \end{aligned} \] 得到数值格式的波速 \[ c(k) = -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \] 由于\(\eta = k \Delta x\),显然波速与\(k\)有关,因此数值格式具有色散性。
差分格式的群速度计算:根据下式 \[ C_{\Delta x}(k) = - \frac{\Delta x}{\Delta t} \frac{d\,\text{arg} \lambda(\eta)}{d \eta} \] 代入放大因子的辐角表达式 \[ \text{arg} \lambda(\eta) = - r\eta \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \] 得到数值格式的群速度 \[ C_{\Delta x}(k) = a \left[ 1 -\frac12 (1-r^2)\eta^2 + O(\eta^4) \right] \]
差分格式与PDE的性质比较
关于数值耗散,我们可以比较的是\(|\lambda|\)和\(|\lambda_e|\):(记\(\eta = k \Delta x\)) \[ \begin{aligned} |\lambda| &= |1 - 2r^2 \sin^2(\frac{k\Delta x}2) - r \sin(k \Delta x) i|\\ &= 1 - \frac18 r^2 (1 - r^2) \eta^4 + O(\eta^6) \\ |\lambda_e| &= |e^{- i \alpha k \Delta t}| = 1 \end{aligned} \] 注意到\(0<r \le 1\),因此有:\(|\lambda| \le |\lambda_e|\),存在数值正耗散。
关于数值色散,我们可以比较的是\(c(k)\)和\(c_e(k)\)的比值和1的关系: \[ \begin{aligned} c(k) &= -\frac{\text{arg} \lambda(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right]\\ c_e(k) &= \alpha \end{aligned} \] 波速的比值 \[ \frac{c(k)}{c_e(k)} = 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \]
因此:对于\(r \in (0,1)\),总是有\(\frac{c(k)}{c_e(k)}<1\),数值负色散。
例四:蛙跳格式
同样的分析对于多层显格式也是可以进行的,这里以蛙跳格式为例。
我们考虑蛙跳格式(记\(r = \alpha \frac{\Delta t}{\Delta x}\)) \[ v_{j}^{n+1} = v_j^{n-1} - r(v_{j+1}^n- v_{j-1}^n) \] 同样地,从蛙跳格式的放大因子入手 \[ \lambda^2 = 1 - r \lambda (e^{ik\Delta x} - e^{-i k \Delta x}) = 1 - 2 r \lambda \sin(k \Delta x) i \] 解出两个放大因子 \[ \lambda_{\pm} = -r \sin(k \Delta x) i \pm \sqrt{1- r^2 \sin^2(r \Delta x)} \] 其中只有\(\lambda_+\)是真实解所对应的,\(\lambda_-\)代表的是寄生解,或者称为衍生波现象,下面重点关注\(\lambda_+\)的色散和耗散现象。
差分格式的性质
差分格式的耗散性分析: 当\(0 < r < 1\)时,满足稳定性条件,放大因子满足\(|\lambda_{\pm} | = 1\),此时 \[ \text{Im} \widetilde{w} = -\frac{\ln \vert \lambda_+ \vert}{\Delta t} = 0 \] 因此差分格式是无耗散的。
差分格式的色散性分析:这里我们只关注\(\eta = k \Delta x\)很小的情形。
通过放大因子来计算波速 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda_+(k)}{k \Delta t} \] 首先需要计算放大因子的辐角,对实部和虚部分别展开 \[ \begin{aligned} \text{Re} \lambda_+ &= 1 - \frac{r^2}2 \eta^2 + O(\eta^4) \\ \text{Im} \lambda_+ &= -r (\eta - \frac{\eta^3}{3!} + \dots) \end{aligned} \] 在\(|\eta|\)接近0时,显然辐角也在0附近,通过对\(\arctan\)函数在0附加泰勒展开 \[ \begin{aligned} \text{arg} \lambda_+ &= \arctan \frac{-r (\eta - \frac{\eta^3}{3!} + \dots)} {1 - \frac{r^2}2 \eta^2 + O(\eta^4)}\\ &= - r \eta + \frac16 (r - r^3) \eta^3 + O(\eta^5)\\ &= - r\eta \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \end{aligned} \] 得到数值格式的波速 \[ c(k) = -\frac{\text{arg} \lambda_+(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \] 由于\(\eta = k \Delta x\),显然波速与\(k\)有关,因此数值格式具有色散性。
差分格式的群速度计算:根据下式 \[ C_{\Delta x}(k) = - \frac{\Delta x}{\Delta t} \frac{d\,\text{arg} \lambda_+(\eta)}{d \eta} \] 代入放大因子的辐角表达式 \[ \text{arg} \lambda_+(\eta) =- r\eta \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right] \] 得到数值格式的群速度 \[ C_{\Delta x}(k) = a \left[ 1 - \frac12 (1-r^2)\eta^2 + O(\eta^4) \right] \]
差分格式与PDE的性质比较
关于数值耗散,我们可以比较的是\(|\lambda_+|\)和\(|\lambda_e|\):(记\(\eta = k \Delta x\)) \[ \begin{aligned} |\lambda_+| &= |-r \sin(k \Delta x) i + \sqrt{1- r^2 \sin^2(r \Delta x)}|\\ &= 1 \\ |\lambda_e| &= |e^{- i \alpha k \Delta t}| = 1 \end{aligned} \] 因此有:\(|\lambda_+| = |\lambda_e|\),蛙跳格式无数值耗散。
关于数值色散,我们可以比较的是\(c(k)\)和\(c_e(k)\)的比值和1的关系: \[ \begin{aligned} c(k) &= -\frac{\text{arg} \lambda_+(k)}{k \Delta t} = \alpha \left[ 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \right]\\ c_e(k) &= \alpha \end{aligned} \] 波速的比值 \[ \frac{c(k)}{c_e(k)} = 1 - \frac16 (1-r^2)\eta^2 + O(\eta^4) \]
因此:对于\(r \in (0,1)\),总是有\(\frac{c(k)}{c_e(k)}<1\),数值负色散。
小结
迎风格式自身具有耗散性和色散性,与对流方程进行比较时:
- 具有很强的数值耗散 \(O(\eta^2)\)
- 根据\(r\)的取值不同,会具有数值正色散或数值负色散 \(O(\eta^2)\)
- 数值耗散的效应强于数值色散,因此很难在实验中观察到明显的数值振荡(也可以从单调格式解释)。
虽然这里设置\(\alpha>0\),分析的迎风格式是FTBS格式,但是根据对称性,如果\(\alpha<0\),针对FTFS格式的分析也具有相同的结果。
LF格式自身具有耗散性和色散性,与对流方程进行比较时:
- 具有很强的数值耗散 \(O(\eta^2)\)
- 始终具有数值正色散 \(O(\eta^2)\)
- 数值耗散的效应强于数值色散,因此很难在实验中观察到明显的数值振荡(也可以从单调格式解释)。
LW格式自身具有耗散性和色散性,与对流方程进行比较时:
- 具有较弱的数值耗散 \(O(\eta^4)\)
- 始终具有数值负色散 \(O(\eta^2)\)
- 数值耗散的效应弱于数值色散,因此在实验中可以观察到明显的数值振荡,并且数值振荡总是出现在波后。
蛙跳格式自身无耗散性,但是具有色散性,与对流方程进行比较时:
- 无数值耗散
- 始终具有数值负色散 \(O(\eta^2)\)
- 由于数值色散和衍生波的效应,在实验中可以观察到明显的数值振荡,数值振荡总是出现在波后,并且振荡所污染的区域随着时间迅速扩大
通过数值格式的群速度和PDE的群速度进行比较,得到的关于数值振荡的结论和基于数值色散的是一致的,这里省略。
扩散方程
虽然色散耗散分析对于对流方程是非常典型与成功的,但是也可以用于其它方程,例如扩散方程
这一部分考虑扩撒方程 \[ u_t = \beta u_{xx} (\beta >0) \] 以及对应的数值格式。
PDE自身的性质
针对PDE自身的分析结果如下:
- 广义色散关系:\(\widetilde{w}_e = \beta k^2 i\)
- 色散关系:\(w_e = \text{Re} \widetilde{w}_e =0\)
- 放大因子:\(\lambda_e = e^{i \widetilde{w}\Delta t} = e^{- \beta k^2 \Delta t}\)
- 波速:\(c_e = 0\)
例:FTCS格式
我们考虑FTCS格式:(记\(r = \beta \frac{\Delta t}{(\Delta x)^2}\)) \[ v_j^{n+1} = (1-2r) v_j^n + r(v_{j+1}^n + v_{j-1}^n) \] 放大因子 \[ \lambda = 1 + (e^{i k\Delta x}-2 + e^{-i k \Delta x})r = 1 - 4 \sin^2(\frac{k \Delta x}2) r \]
差分格式的性质
差分格式的耗散性分析: 当\(0 < r \le \frac12\)时,满足稳定性条件,放大因子满足\(|\lambda | \le 1\),此时 \[ \text{Im} \widetilde{w} = -\frac{\ln \vert \lambda \vert}{\Delta t} \ge 0 \] 因此差分格式是耗散的。
差分格式的色散性分析: 通过放大因子来计算波速 \[ c(k) = -\frac{w(k)}{k} = -\frac{\text{arg} \lambda(k)}{k \Delta t} \] 由于\(\lambda(k)\)为实数,辐角为0,因此波速为0,与\(k\)无关,因此没有色散性,数值群速度同样为0。
差分格式与PDE的性质比较
关于数值耗散,我们可以比较的是\(|\lambda|\)和\(|\lambda_e|\):(记\(\eta = k \Delta x\)) \[ \begin{aligned} |\lambda| &= |1 - 4 \sin^2(\frac{k \Delta x}2) r| = |1- 4 r \sin^2(\frac{\eta}2)| = 1 - r \eta^2 + \frac{r}{12}\eta^4 + O(\eta^6) \\ |\lambda_e| &= |e^{- \beta k^2 \Delta t}| = e^{- r \eta^2} =1 - r \eta^2 + \frac{r^2}2 \eta^4 \end{aligned} \] 注意到\(0<r \le \frac12\),因此
- 若\(r \in (\frac16,\frac12)\),则\(|\lambda| < |\lambda_e|\),数值正耗散
- 若\(r \in (0,\frac16)\),则\(|\lambda| > |\lambda_e|\),数值逆耗散
和前面的讨论一样,这里\(\frac16\)只是正耗散和逆耗散临界点的近似。
关于数值色散,由于数值格式和PDE的波速均为0,没有数值色散。