第 4 章 · 把导数变成加减法:有限差分
这一节是离散技术的正餐:有限差分。核心工具只有一个——泰勒展开。所有格式,无论多么花哨,都是泰勒展开消项的产物。
三个基本格式与误差阶
对 $u(x)$ 在网格点 $x_i$ 展开:
这就是二阶中心差分。同理有前差 $\frac{u_{i+1}-u_i}{\Delta x}$ 和后差,它们只有一阶精度。二阶导数的标准格式:
截断误差中被丢掉的第一项决定了格式的阶数。阶数是网格加密时误差下降的速度:一阶格式 $\Delta x$ 减半误差减半,二阶格式误差降到四分之一。
迎风:让信息来源决定偏置
对流方程 $\partial u/\partial t + c\,\partial u/\partial x = 0$ 描述信息以速度 $c$ 向下游传播。当 $c > 0$ 时信息从左边来,差分就应该偏左(后差)——这就是迎风格式。迎风把中心差分的"无偏"换成了"符合物理传播方向",换来稳定性(见下一节的 CFL 分析)。
半离散化与修止方程
把时间导数留着、只离散空间(半离散),可以定义修正方程:对半离散格式做泰勒展开,右边多出来的偶数阶项像人工粘性。中心差分离散对流方程的修正方程首项是 $-\frac{c\Delta x^2}{6}u_{xxx}$——色散误差;迎风格式的首项是 $\frac{c\Delta x}{2}u_{xx}$——耗散误差,会把激波抹厚。看懂修正方程,就同时看懂了一个格式的"脾气"。
老师的提醒
- 检查格式阶数的方法:代一个光滑试验函数(如 $\sin x$)进差分公式,看误差随 $\Delta x$ 的下降速度。
- 一阶迎风"稳健但糊",二阶中心"准但易振"——这正是第 6-7 章各种混合格式的动机。
自检
- 用泰勒展开推导二阶中心差分及其截断误差。
- 为什么说迎风格式自带人工粘性?量级是多少?
- 修正方程的物理意义是什么?
更深一层:差分格式是"多项式逼近"的工业品
有限差分的全部秘密藏在一个动作里:把函数在网格点附近做泰勒展开,然后用线性组合消去不想留的项。想要一阶导数的二阶近似?把 $u(x+\Delta x)$ 与 $u(x-\Delta x)$ 两个展开式相减——偶次项全部对消:
想要二阶导?相加——奇次项对消。这个"相减得奇导、相加得偶导"的对称游戏可以无限玩下去:五点、七点、紧致格式(Pade),精度阶数想多高有多高。但阶数不是免费的:高阶模板更宽 → 边界处理更繁琐 → 矩阵带宽更大 → 对间断更敏感。工程选型的甜点通常在二阶:它是"宽度可管理"与"精度够用"的平衡点。
推导细读:迎风差分的稳定性直觉——"信息守恒"
为什么中心差分离散对流方程会炸、迎风却稳?用"信息从哪里来"的图像一想就通:$c > 0$ 时流动把上游的值搬运到下游,当前点的未来只取决于左边的过去。迎风差分 $u_i' \approx \frac{u_i - u_{i-1}}{\Delta x}$ 的模板恰好只看左边——与物理传播方向一致。中心差分偏偏去"看右边的未来",在显式时间推进下等价于让数值解依赖它不该依赖的信息,误差放大率超过 1,一拍之后全屏锯齿。
把这层直觉形式化就是 CFL 条件(下一节)与信号传播分析:数值格式有自己的"特征结构",它与 PDE 的特征结构失配时,要么发散、要么收敛到错误的弱解。修正方程(modified equation)是第三种透视:对半离散格式做泰勒反演,得到它"实际求解"的方程——迎风格式的修正方程多出 $\frac{c\Delta x}{2}u_{xx}$ 项,恰是人工粘性;中心差分多出的是三阶色散项,振荡由此而来。一个格式的稳定性、耗散、色散性格,全部写在修正方程的脸上。
在真实世界里:差分近似驱动的每一个像素
有限差分不只活在 CFD 里。图像处理中的边缘检测(Sobel 算子就是 $x$、$y$ 方向的中心差分卷积核)、音频的相位 vocoder、金融的期权定价(Black-Scholes 显式差分)、游戏物理引擎的弹簧阻尼积分——全是同一套泰勒消项的变体。识别出"这其实是个差分格式"的那一刻,你就能借用 CF D 六十年的稳定性知识来判断它会不会炸。一个具体例子:许多游戏引擎初学者写的显式弹簧积分在刚度大时爆炸——那正是 $\omega_0\Delta t > 2$ 的显式欧拉失稳,解法与 CFD 完全同源(减步长或换隐式)。
常见误区与辨析
- "二阶格式永远比一阶好":在间断附近,高阶格式振铃、低阶格式弥散,谁"好"取决于你关心峰值位置还是波形;这也是 WENO 类自适应格式的存在理由。
- "差分格式可以随便混搭":空间二阶中心 + 时间一阶欧拉 = 总体一阶且可能不稳;阶数取短板,稳定性取全链——时间与空间离散必须一起设计。
- "截断误差小 = 误差小":截断误差是渐近陈述($\Delta x \to 0$ 时),工程网格未必落在渐近区——做一次网格加密实验比争论阶数更诚实。
与其他节的联系
本节的差分模板将在第 5 节被冯·诺依曼分析"审判"(每个格式的放大因子都能手算),在第 7 节遇到它的宿命对决(光滑假设 vs 激波间断),在第 9 节以有限体积的形式重获工程江山。把这一节的五点模板、修正方程、迎风直觉带走,后面 60% 的技术章节都只是它们的组合变形。
专题深入:紧致差分格式——"隐式高阶"的家族
紧致格式(Pade 型)是有限差分的"高阶隐式版":$\frac16 f'_{i-1} + \frac23 f'_i + \frac16 f'_{i+1} = \frac{f_{i+1} - f_{i-1}}{2\Delta x}$——左边是导数的隐式组合,右边是最简差分。代价是解三对角方程组,换来的是四阶精度配窄模板——湍流直接模拟(DNS)与高阶声学计算的主力。这个"隐式组合"的思想在样条插值、谱元方法里反复出现:隐式(方程组)换精度与紧凑性。
数学细节展开:傅里叶分析与差分格式的"波长分辨率"
差分格式对短波(近网格尺度)的分辨能力是格式选型的隐藏维度:用修正波数分析(计算格式对不同波长正弦波的"有效导数")发现——二阶中心差分在波长 $< 4\Delta x$ 时波数误差超过 10%,短波被系统性低估(这就是色散误差的微观起源)。紧致格式与谱方法的优势正是在短波分辨率上。"一个格式能解析多短的波"比它的精度阶数更贴近实践——湍流与声学的模拟里,短波分辨率直接决定最小网格尺度。
工程案例细节:一个"格式阶数 vs 波长分辨率"的实测对比
用一维高斯波包平移做对照实验:二阶中心差分 vs 四阶紧致格式 vs 谱方法,走 100 个时间步后看波形保真度。结果:二阶差分的波包拖尾严重(短波分量被拖延——色散误差)、紧致格式基本保真(拖尾轻微)、谱方法几乎完美(但边界处理与间断处理是它的代价)。这个实验的教训:"光滑程度决定该用什么格式"——光滑流场用高阶/紧致/谱,间断流场用迎风/限制器。格式的"精度"标签只有在"光滑度匹配"时才有意义。
常见误区与辨析(补充)
- "阶数越高越好":高阶格式在间断处振铃、在长波处无优势——匹配问题的光滑度才是选格式的依据。
- "差分格式是万能的":间断、奇点、复杂几何都是差分的弱项——有限体积与有限元在这些区域接管。
- "修正方程只是理论工具":修正方程直接告诉你格式的耗散与色散系数——它是格式的"成分表",工程上用来预测格式的脾气。
例题
用中心差分 $\frac{u_{i+1}-u_{i-1}}{2\Delta x}$ 近似 $u = \sin x$ 在 $x = 0.5$ 处的导数,取 $\Delta x = 0.1$。计算近似值并与真值 $\cos 0.5 \approx 0.87758$ 比较,估计误差阶。
解答
误差:$|0.876120 - 0.877583| \approx 1.46\times10^{-3}$。
验证二阶:理论截断误差 $\frac{\Delta x^2}{6}\cos\xi \le \frac{0.01}{6} \approx 1.67\times10^{-3}$——实测 $1.46\times10^{-3}$ 正落在该界内 ✓。
- 若把 $\Delta x$ 减半到 0.05,误差应降到约 $3.7\times10^{-4}$(降 4 倍),可自行验证。