Skip to content

偏微分方程有限差分法

Finite-difference method for PDE · Finite-difference PDE discretization · Difference stencil

在整张网格上用差分 stencil 替换偏微分算子,并连同边界闭合组装为稀疏离散系统。

形式陈述

考虑带边界条件的偏微分方程

Lu=fin Ω,Bu=gon Ω.

网格上,限制算子 Rh 把连续函数采样成网格函数,离散算子 Lh 则在每个适用节点用有限个邻点值近似 L。一个节点所用的偏移集合及其权重称为 stencil。有限差分 PDE 方法不止计算某一点的导数:所有内部 stencil 与边界闭合共同规定一组耦合方程

LhUh=fh,BhUh=gh,

消去已知边界值或并入边界行后,得到全局系统

Ahuh=bh.

以单位正方形上的 Dirichlet Poisson 问题

Δu=f,u|Ω=g

为例。取均匀步长 h,对内部节点 (xi,yj) 使用二阶中心差分,可得五点 Laplacian

(LhU)ij=4UijUi1,jUi+1,jUi,j1Ui,j+1h2.

若某个邻点位于 Dirichlet 边界,其已知值应乘相应系数后移入右端,而不是把这一项删掉。对连通矩形内部网格和齐次 Dirichlet 条件,Ah 对称正定,主对角为正、相邻耦合为负;这种 M-matrix 结构还给出离散最大值原理和对数据扰动的单调控制。它是这一特定算子与边界处理的性质,并非任意高阶 stencil 都自动拥有。

若每个内部节点只与固定数量邻点耦合,则 Ah稀疏矩阵。在 m×m 内部网格上有 N=m2 个未知量,五点格式每行至多五个非零元,故 nnz(Ah)5N。按行列下标作字典序编号时,矩阵呈块三对角结构;编号方式会改变带宽和缓存访问,却不改变网格邻接所代表的局部耦合。

内部一致性通过把精确解代入 stencil 检查。若 u 有一致有界的四阶空间导数,则

(LhRhu)ij=Δu(xi,yj)+O(h2).

这里的 O(h2) 是内部离散算子的局部缺陷。要推出离散解 uh 的全局二阶误差,还需边界闭合具有相容精度、离散解算子在所选范数中稳定,并且真解具有相应正则性。局部 stencil 阶不能跳过这些条件直接改名为 PDE 解的全局阶。

边界算子必须单独离散。Dirichlet 条件通常直接给出边界节点值;Neumann 条件可用单侧法向差分、ghost point 或控制体积通量闭合;Robin 条件同时进入未知值和法向导数。曲边上还要近似边界位置与法向。宽的高阶内部 stencil 到达边界时没有足够的双侧节点,必须设计 one-sided closure 或引入有明确定义的 ghost 值,不能越界读取或复制端点。

对演化方程,空间和时间 stencil 还要区分。例如一维 advection–diffusion 方程

ut+aux=νuxx

可在空间上使用迎风或中心一阶差分,并对扩散项使用中心二阶差分;随后再选时间推进得到全离散格式。空间步长 h 控制空间缺陷,时间步长 Δt 控制时间缺陷与放大因子,两者不能用同一个未加说明的“网格步长”代替。

直觉

单个 stencil 是一条局部平衡规则。把它放到每个内部节点后,相邻节点会反复出现在彼此的规则中,于是局部导数近似自然拼成一个全局稀疏系统。矩阵的一行对应一个节点方程,非零位置对应 stencil 覆盖的邻居。

Poisson 五点格式可看作带几何尺度 h2 的网格图 Laplacian:中心值与四个邻居之差衡量局部弯曲。这个图像解释了稀疏结构,却不能取代几何;非均匀间距、曲边或变系数会改变权重,即使邻接图完全相同。

迎风差分只从信息到来的方向取值,会引入数值耗散;中心差分左右对称,空间截断阶较高,却不自行抑制网格尺度振荡。哪个 stencil 合适取决于 PDE 的传播方向、边界和时间积分,而不是只比较 Taylor 展开中的指数。

例子与边界

Ω=(0,1)2 上的光滑解

u(x,y)=sin(πx)sin(πy),Δu=2π2u,

齐次 Dirichlet 边界与网格节点精确对齐。把真解采样到均匀内部网格,五点算子满足

LhRhu=λhRhu,λh=8h2sin2(πh2)=2π2+O(h2).

因此离散解为 uh=(2π2/λh)Rhu,节点误差确为 O(h2)。这个结论同时使用了光滑特征函数、规则网格、准确边界和可逆离散算子,不是“任意五点 stencil 都二阶收敛”的替代证明。

a>0 的周期 advection 方程 ut+aux=0,前向 Euler 配一阶迎风差分给出

Uin+1=(1C)Uin+CUi1n,C=aΔth.

0C1 时,新值是当前值与上游值的凸组合,格式保持单调。迎风格式的放大因子满足

Gup(θ)=1C+Ceiθ,|Gup(θ)|2=14C(1C)sin2θ2.

因此 0<C<1 时非零频率通常受到数值耗散;端点 C=1 则有 Gup=eiθ,恰好把网格数据平移一格,并不抹平波形。若改用中心空间差分,放大因子为 G(θ)=1iCsinθ,所以

|G(θ)|2=1+C2sin2θ>1

C0sinθ0 时成立。Nyquist 模态 θ=π 恰落在中心一阶导数符号的零点,故 G(π)=1;其他可达频率已经足以使固定非零 Courant 数的网格族不稳定。中心差分的空间公式虽是二阶,配前向 Euler 后仍会放大扰动;这具体说明局部空间阶不能替代全离散稳定性分析。

边界会改变系统本身。纯 Neumann Poisson 问题的常数向量位于离散零空间,右端还必须满足离散兼容条件;即使条件成立,解也只确定到一个加法常数,计算时需施加零均值约束或固定一个规范自由度。此时矩阵奇异是数学结构,不应被误报为普通分解故障。advection 问题则通常只在流入边界给数据,在流出端机械施加同样多的条件可能过度约束。

非光滑解会使形式阶失效。带重入角的区域可能让 Poisson 解缺少四阶正则性;间断系数、激波或未解析的边界层也会让 Taylor 余项不再一致有界。此时应使用适合弱解或守恒律的误差框架,并通过局部加密、单调格式或其他离散方法处理,而不是继续加宽同一 stencil。

实现层的失败接口应在装配时暴露:缺失边界标签、stencil 邻点越界、重复或悬空未知量、非有限系数、意外空行以及与边界条件不符的零空间。线性求解器只负责已定义的 Ahuh=bh;它无法判断右端是否漏加了边界贡献,也无法修复错误的网格几何。

推论与应用

有限差分公式负责单个导数权重和局部截断项,本页负责把这些权重放进完整 PDE、边界条件与稀疏系统。后续的一致性—稳定性—收敛性分析需要明确离散范数、边界闭合和解的正则性;von Neumann 分析则只在适当的规则网格与系数条件下研究 Fourier 模态。

可复查的计算应报告区域与边界条件、网格族、内部和边界 stencil、hΔt、未知量编号、矩阵维度与 nnz、求解残差及独立误差范数。若只比较相邻网格解,应把结果称为误差估计;若迭代误差尚未低于离散误差,也不能据此拟合空间收敛阶。

参考资料
  • Lloyd N. Trefethen, Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations, unpublished text, 1996, finite-difference operators and stability.
  • John C. Strikwerda, Finite Difference Schemes and Partial Differential Equations, 2nd ed., SIAM, 2004.
  • Randall J. LeVeque, Finite Difference Methods for Ordinary and Partial Differential Equations, SIAM, 2007.
  • MIT OpenCourseWare, 18.336, Numerical Methods for Partial Differential Equations, finite-difference and stability notes.