线法把演化型偏微分方程 理路 偏微分方程 Partial differential equation · PDE 含未知多元函数及其偏导数的方程。 拆成两个层次:先离散空间,保留连续时间;再把得到的常微分方程组交给时间积分器。 固定每个空间节点后,其未知值沿时间形成一条轨迹,“线法”因此得名。
这种拆分不只是程序模块化。它把空间算子的谱、守恒或能量结构暴露出来,使我们能够判断:为什么空间网格 理路 网格与网格剖分 Grid and mesh discretization 用节点、单元及其几何映射离散计算区域,并以局部尺度、形状正则性和边界拟合质量描述一族网格。 一细,显式时间步突然变得很小;为什么有限元会产生质量矩阵;为什么同一个空间离散需要不同的时间求解策略。
形式陈述
从热方程到一组相互耦合的 ODE
考虑
u t = κ u x x , κ > 0 , 0 < x < 1 , u ( 0 , t ) = g 0 ( t ) , u ( 1 , t ) = g 1 ( t ) . 令 N ≥ 1 为整数,内部节点为 x i = i h ,i = 1 , … , N ,其中 h = 1 / ( N + 1 ) 。对空间导数使用中心差分,但暂时不离散时间:
U ˙ i ( t ) = κ h 2 ( U i − 1 ( t ) − 2 U i ( t ) + U i + 1 ( t ) ) . 边界值 U 0 = g 0 ( t ) 、U N + 1 = g 1 ( t ) 已知,因此内部未知向量满足
U ˙ = A h U + b h ( t ) , A h = κ h 2 tridiag ( 1 , − 2 , 1 ) . 若 N ≥ 2 ,则
b h ( t ) = κ h 2 ( g 0 ( t ) , 0 , … , 0 , g 1 ( t ) ) T . 只有一个内部节点时,两端贡献都进入同一个分量,得到 b h = κ ( g 0 + g 1 ) / h 2 。这种小规模边界情况也是实现中值得单独测试的地方。
例如 N = 3 时,方程完整地写成
d d t ( U 1 U 2 U 3 ) = κ h 2 ( − 2 1 0 1 − 2 1 0 1 − 2 ) ( U 1 U 2 U 3 ) + κ h 2 ( g 0 ( t ) 0 g 1 ( t ) ) . 每个分量是一个随时间变化的温度,相邻分量通过扩散耦合。空间离散完成后,PDE 已经成为一个普通的初值问题,但维数和刚性会随网格改变。[1]
直觉
同一个半离散系统可以配不同时间方法
显式 Euler 给出
U n + 1 = U n + τ ( A h U n + b h ( t n ) ) . 每步只需稀疏矩阵 理路 稀疏矩阵表示与运算 Sparse matrix 只存非零项及其位置,以稀疏模式组织矩阵运算、图结构、重排序与填充成本。 乘法。后向 Euler 则给出
( I − τ A h ) U n + 1 = U n + τ b h ( t n + 1 ) , 每步需要解一个线性系统。梯形法为
( I − τ 2 A h ) U n + 1 = ( I + τ 2 A h ) U n + τ 2 ( b h ( t n ) + b h ( t n + 1 ) ) . 三者使用同一个空间矩阵,却具有不同的时间精度、稳定域、阻尼和每步成本。因此,线法输出的不是一个已经完成的 PDE 算法,而是一个带有结构的 ODE 问题。
若使用多阶段 Runge–Kutta 方法,边界函数和时间依赖源项还应在对应阶段时间计算。把所有阶段都强行使用 g ( t n ) ,等于改变了积分器实际看见的时间依赖,可能破坏原有阶数。边界是右端的一部分,不是仅在完成一步后补写几个显示值。
空间加密为什么制造刚性
零 Dirichlet 热方程矩阵的特征值可以精确写出:
λ j ( A h ) = − 4 κ h 2 sin 2 j π 2 ( N + 1 ) , j = 1 , … , N . 低频端 λ 1 → − κ π 2 ,代表较慢的整体温度变化;高频端的绝对值约为 4 κ / h 2 ,代表网格尺度上的快速平滑。网格越细,最快与最慢时间尺度相差越大,系统便越来越刚性 理路 刚性常微分方程 Stiff ordinary differential equation · Stiff ODE · Stiffness 刻画快速衰减模态迫使显式方法使用远小于精度需求的步长这一方法相关现象,并说明隐式路线的能力与代价。 。
显式 Euler 要求每个负实特征值满足 − 2 ≤ τ λ j ≤ 0 。一个方便的充分条件是
τ ≤ h 2 2 κ . 于是网格间距减半,未知量在一维约增加一倍,稳定时间步却约缩小为四分之一。若每步成本与未知量线性相关,在 d 维规则网格上推进固定时间,显式扩散计算的粗略成本会按 h − ( d + 2 ) 增长。这一估算说明了瓶颈来源;它不包括复杂右端、通信或求解器额外开销。
隐式方法 理路 隐式 ODE 方法与非线性步求解 Implicit ODE method · Implicit time stepping · Implicit time integration 把隐式时间步分解为离散方程、非线性求解与线性求解,区分时间稳定性、迭代收敛、阻尼及误差预算。 可以把步长从这项显式稳定限制中解放出来,但仍需解析真正关心的时间变化。若外力在很短时间内改变,或解的慢模态也有精细结构,精度仍会要求小步长。稳定允许跨过快速衰减的无关瞬态,精度决定哪些瞬态不能被跨过。 [2]
例子与边界
三种误差要分开比较
设 u ( t ) 为 PDE 解,U h ( t ) 为半离散 ODE 的精确解,U n 为时间离散后的结果,则
时 间 离 散 误 差 空 间 半 离 散 误 差 U n − P h u ( t n ) = U n − U h ( t n ) ⏟ 时间离散误差 + U h ( t n ) − P h u ( t n ) ⏟ 空间半离散误差 . 实际求解隐式方程时,还会在第一部分中叠加代数求解误差。分别控制这些误差,比只把最终误差写成一个没有来源的 O ( h q + τ p ) 更有用。
一个可直接算清的例子是初值 sin ( π x ) 、零边界的热方程。连续解的振幅为 e − κ π 2 t ;中心差分半离散解在相同节点上的振幅为
e λ 1 , h t , λ 1 , h = − 4 κ h 2 sin 2 π h 2 . 由于 λ 1 , h = − κ π 2 + O ( h 2 ) ,这一步产生空间误差。若时间积分器的稳定函数是 R ,完全离散振幅又变为
R ( τ λ 1 , h ) n . 比较 R ( τ λ 1 , h ) n 与 e λ 1 , h t n ,测的是时间误差;比较后者与 e − κ π 2 t n ,测的是空间误差。三种振幅放在一起,能够明确指出误差究竟在哪个阶段产生。
对每个固定 h ,一个 p 阶 ODE 方法可以有误差 C h τ p 。但 C h 可能随 h → 0 增大,特别是在高阶导数、刚性和边界不兼容影响下。因此,要得到网格一致的 O ( τ p + h q ) ,必须另外控制这些常数;不能仅凭 ODE 方法标称阶数直接宣布 PDE 的联合收敛阶。
求解器误差预算如何分配
空间网格决定可以达到的空间精度,时间容差决定积分器对这套 ODE 的逼近精度,隐式迭代容差决定每一步代数方程解得多准确。通常应让后两者不掩盖目标空间误差,同时避免远低于需要的过度求解。
一种直接的检查方法是分开加密:固定足够小的时间容差改变 h ,观察空间误差;固定足够细的网格改变时间步或容差,观察时间误差;再收紧非线性与线性求解容差,确认结果不再明显变化。这些实验针对不同误差来源,不能用单次“求解成功”替代。
若 A h 、质量矩阵与步长固定,隐式线性系统的分解或预条件器可以复用。步长变化或非线性状态改变时,复用是否仍合适要由矩阵变化和收敛情况判断。这样的工程决策应建立在线法暴露出的算子结构上,而不是仅比较一次显式更新与一次隐式更新的耗时。
推论与应用
有限元半离散与质量矩阵
采用有限元方法 理路 有限元方法 Finite element method · FEM · Finite element discretization 从弱形式与帽函数出发,完整构造局部单元、组装并求解小系统,再用能量与逼近解释误差阶和边界处理。 时,试探解写成 u h ( x , t ) = ∑ j U j ( t ) ϕ j ( x ) 。对热方程做空间弱化后,得到
M U ˙ + K U = b ( t ) , M i j = ∫ Ω ϕ j ϕ i d x , K i j = ∫ Ω κ ∇ ϕ j ⋅ ∇ ϕ i d x . 质量矩阵 M 出现,是因为测试函数与 u t 也要积分。若 M 可逆,数学上可写成 U ˙ = M − 1 ( b − K U ) ,但实现中通常不显式形成 M − 1 ;否则可能破坏稀疏性并增加成本。
后向 Euler 在这里直接产生
( M + τ K ) U n + 1 = M U n + τ b ( t n + 1 ) . 零外力时,半离散系统满足能量关系
d d t 1 2 U T M U = − U T K U ≤ 0 , 所以自然的离散能量范数是 ‖ U ‖ M 2 = U T M U ,而不是任意选一个坐标范数。对称正定的 M 和半正定的 K 给出了直接可检查的耗散结构。
有些约束系统产生奇异质量矩阵,或包含没有时间导数的代数方程。此时得到的是微分代数方程,而不是可以直接求逆的普通 ODE。初值需满足约束,时间积分器也要与相应结构匹配。
这一边界可以进一步用微分指标 理路 微分指标与隐藏约束 Differentiation index of a DAE · DAE differentiation index · 隐藏约束 · 微分指标 以导数阵列提取全部状态导数所需的最少微分次数定义指标,逐层推导指数1、2及机械指数3的隐藏条件,并展示约束降阶后的漂移和数据微分放大。 检查:逐次求导时,哪些隐藏约束限定了初始状态,又需要哪些数据导数。在线性常系数且矩阵束正则的范围内,微分—幂零分解 理路 正则常系数微分代数系统 Regular linear DAE · Constant-coefficient differential-algebraic system · Weierstrass decomposition for DAEs 从可逆移位与核像分解证明正则矩阵束的微分—幂零分块,给出全部经典解和一致初值,并把外力导数损失与隐式步的误差放大写成有限证书。 把可自由初始化的演化分量与被外力强制决定的分量分开;它不把任意空间离散后的奇异质量矩阵自动判为同一类可解系统。
非线性、稀疏 Jacobian 与 IMEX
更一般的空间离散会产生
M h U ˙ = F h ( t , U ) . 若 F h 的某个分量只依赖附近节点,Jacobian 也具有局部稀疏结构。隐式时间积分最终反复处理的,通常是类似 M h − γ J F h 的矩阵。空间离散模块因此最好同时提供右端计算、边界处理,以及 Jacobian 或矩阵向量乘法信息,而不是只交出一个完全不透明的函数。
当方程同时包含刚性扩散与较温和的输运、反应时,可以分裂
U ˙ = F exp ( t , U ) + F imp ( t , U ) . 最简单的一阶 IMEX 更新为
U n + 1 = U n + τ F exp ( t n , U n ) + τ F imp ( t n + 1 , U n + 1 ) . 这样只把真正造成刚性限制的部分隐式处理。收益取决于分裂后的隐式系统是否容易求解,以及显式部分还剩下什么步长限制;“用了 IMEX”不等于消除了所有 CFL 或精度约束。[3]
若网格随时间运动,质量矩阵、几何项和空间算子也可能随时间变化,还要保持对应的几何守恒关系。把静态网格的右端函数直接搬到移动网格,并不是一个完整的线法实现。
学习位置
有限差分 理路 偏微分方程有限差分法 Finite-difference method for PDE · Finite-difference PDE discretization · Difference stencil 由 Taylor 展开构造 PDE 差分模板,完整处理编号与边界,并用小系统、离散能量和制造解检验计算。 和有限元回答“空间方程如何构造”;ODE 时间推进 理路 常微分方程时间步进框架 Time-stepping method for ODE · ODE integrator · Numerical time integration 将常微分方程初值问题离散为时间网格上的数值状态与一步或多步更新,并分离流映射、误差层和退出状态。 回答“给定 ODE 后如何走向下一个时刻”;线法连接这两者,并要求同时检查空间谱、边界、质量矩阵和误差尺度。
当空间离散、时间积分与线性代数三个层次相互匹配时,才得到既准确又高效的完整 PDE 求解器。这个匹配关系,比单独选择一个高阶公式更重要。
时间步长的选择还要检查半离散特征值乘以步长后是否落在所选方法的绝对稳定域 理路 ODE 方法的绝对稳定域 Absolute stability region · Region of absolute stability 以标量衰减测试方程的放大因子定义一步法稳定域,并区分 A-stability、L-stability、精度与其他稳定概念。 内。
参考资料
[1] Tobin A. Driscoll and Richard J. Braun, Fundamentals of Numerical Computation , Method of lines ,热方程半离散与时间推进的开放教材示例。
[2] Randall J. LeVeque, Finite Difference Methods for Ordinary and Partial Differential Equations , SIAM, 2007,扩散谱、稳定性与线法。
[3] Willem Hundsdorfer and Jan Verwer, Numerical Solution of Time-Dependent Advection-Diffusion-Reaction Equations , Springer, 2003,分裂、IMEX 与反应扩散系统。
[4] Ernst Hairer and Gerhard Wanner, Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems , 2nd rev. ed., Springer, 1996,刚性积分与微分代数方程。