Skip to content

原则Principle

线法:先空间离散再时间积分

施工中 · 内容逐步修订

Method of lines · MOL · Semi-discretization in space

先把 PDE 变为空间半离散 ODE,再分析时间推进、边界输入、刚性、质量矩阵和空间与时间误差的配合。

线法把演化型偏微分方程拆成两个层次:先离散空间,保留连续时间;再把得到的常微分方程组交给时间积分器。 固定每个空间节点后,其未知值沿时间形成一条轨迹,“线法”因此得名。

这种拆分不只是程序模块化。它把空间算子的谱、守恒或能量结构暴露出来,使我们能够判断:为什么空间网格一细,显式时间步突然变得很小;为什么有限元会产生质量矩阵;为什么同一个空间离散需要不同的时间求解策略。

形式陈述 ​

从热方程到一组相互耦合的 ODE ​

考虑

ut=κuxx,κ>0,0<x<1,u(0,t)=g0(t),u(1,t)=g1(t).

令 N≥1 为整数,内部节点为 xi=ih,i=1,…,N,其中 h=1/(N+1)。对空间导数使用中心差分,但暂时不离散时间:

U˙i(t)=κh2(Ui−1(t)−2Ui(t)+Ui+1(t)).

边界值 U0=g0(t)、UN+1=g1(t) 已知,因此内部未知向量满足

U˙=AhU+bh(t),Ah=κh2tridiag(1,−2,1).

若 N≥2,则

bh(t)=κh2(g0(t),0,…,0,g1(t))T.

只有一个内部节点时,两端贡献都进入同一个分量,得到 bh=κ(g0+g1)/h2。这种小规模边界情况也是实现中值得单独测试的地方。

例如 N=3 时,方程完整地写成

ddt(U1U2U3)=κh2(−2101−2101−2)(U1U2U3)+κh2(g0(t)0g1(t)).

每个分量是一个随时间变化的温度,相邻分量通过扩散耦合。空间离散完成后,PDE 已经成为一个普通的初值问题,但维数和刚性会随网格改变。[1]

直觉

同一个半离散系统可以配不同时间方法 ​

显式 Euler 给出

Un+1=Un+τ(AhUn+bh(tn)).

每步只需稀疏矩阵乘法。后向 Euler 则给出

(I−τAh)Un+1=Un+τbh(tn+1),

每步需要解一个线性系统。梯形法为

(I−τ2Ah)Un+1=(I+τ2Ah)Un+τ2(bh(tn)+bh(tn+1)).

三者使用同一个空间矩阵,却具有不同的时间精度、稳定域、阻尼和每步成本。因此,线法输出的不是一个已经完成的 PDE 算法,而是一个带有结构的 ODE 问题。

若使用多阶段 Runge–Kutta 方法,边界函数和时间依赖源项还应在对应阶段时间计算。把所有阶段都强行使用 g(tn),等于改变了积分器实际看见的时间依赖,可能破坏原有阶数。边界是右端的一部分,不是仅在完成一步后补写几个显示值。

空间加密为什么制造刚性 ​

零 Dirichlet 热方程矩阵的特征值可以精确写出:

λj(Ah)=−4κh2sin2⁡jπ2(N+1),j=1,…,N.

低频端 λ1→−κπ2,代表较慢的整体温度变化;高频端的绝对值约为 4κ/h2,代表网格尺度上的快速平滑。网格越细,最快与最慢时间尺度相差越大,系统便越来越刚性。

显式 Euler 要求每个负实特征值满足 −2≤τλj≤0。一个方便的充分条件是

τ≤h22κ.

于是网格间距减半,未知量在一维约增加一倍,稳定时间步却约缩小为四分之一。若每步成本与未知量线性相关,在 d 维规则网格上推进固定时间,显式扩散计算的粗略成本会按 h−(d+2) 增长。这一估算说明了瓶颈来源;它不包括复杂右端、通信或求解器额外开销。

隐式方法可以把步长从这项显式稳定限制中解放出来,但仍需解析真正关心的时间变化。若外力在很短时间内改变,或解的慢模态也有精细结构,精度仍会要求小步长。稳定允许跨过快速衰减的无关瞬态,精度决定哪些瞬态不能被跨过。[2]

例子与边界

三种误差要分开比较 ​

设 u(t) 为 PDE 解,Uh(t) 为半离散 ODE 的精确解,Un 为时间离散后的结果,则

Un−Phu(tn)=Un−Uh(tn)⏟时间离散误差+Uh(tn)−Phu(tn)⏟空间半离散误差.

实际求解隐式方程时,还会在第一部分中叠加代数求解误差。分别控制这些误差,比只把最终误差写成一个没有来源的 O(hq+τp) 更有用。

一个可直接算清的例子是初值 sin⁡(πx)、零边界的热方程。连续解的振幅为 e−κπ2t;中心差分半离散解在相同节点上的振幅为

eλ1,ht,λ1,h=−4κh2sin2⁡πh2.

由于 λ1,h=−κπ2+O(h2),这一步产生空间误差。若时间积分器的稳定函数是 R,完全离散振幅又变为

R(τλ1,h)n.

比较 R(τλ1,h)n 与 eλ1,htn,测的是时间误差;比较后者与 e−κπ2tn,测的是空间误差。三种振幅放在一起,能够明确指出误差究竟在哪个阶段产生。

对每个固定 h,一个 p 阶 ODE 方法可以有误差 Chτp。但 Ch 可能随 h→0 增大,特别是在高阶导数、刚性和边界不兼容影响下。因此,要得到网格一致的 O(τp+hq),必须另外控制这些常数;不能仅凭 ODE 方法标称阶数直接宣布 PDE 的联合收敛阶。

求解器误差预算如何分配 ​

空间网格决定可以达到的空间精度,时间容差决定积分器对这套 ODE 的逼近精度,隐式迭代容差决定每一步代数方程解得多准确。通常应让后两者不掩盖目标空间误差,同时避免远低于需要的过度求解。

一种直接的检查方法是分开加密:固定足够小的时间容差改变 h,观察空间误差;固定足够细的网格改变时间步或容差,观察时间误差;再收紧非线性与线性求解容差,确认结果不再明显变化。这些实验针对不同误差来源,不能用单次“求解成功”替代。

若 Ah、质量矩阵与步长固定,隐式线性系统的分解或预条件器可以复用。步长变化或非线性状态改变时,复用是否仍合适要由矩阵变化和收敛情况判断。这样的工程决策应建立在线法暴露出的算子结构上,而不是仅比较一次显式更新与一次隐式更新的耗时。

推论与应用

有限元半离散与质量矩阵 ​

采用有限元方法时,试探解写成 uh(x,t)=∑jUj(t)ϕj(x)。对热方程做空间弱化后,得到

MU˙+KU=b(t),Mij=∫Ωϕjϕidx,Kij=∫Ωκ∇ϕj⋅∇ϕidx.

质量矩阵 M 出现,是因为测试函数与 ut 也要积分。若 M 可逆,数学上可写成 U˙=M−1(b−KU),但实现中通常不显式形成 M−1;否则可能破坏稀疏性并增加成本。

后向 Euler 在这里直接产生

(M+τK)Un+1=MUn+τb(tn+1).

零外力时,半离散系统满足能量关系

ddt12UTMU=−UTKU≤0,

所以自然的离散能量范数是 ‖U‖M2=UTMU,而不是任意选一个坐标范数。对称正定的 M 和半正定的 K 给出了直接可检查的耗散结构。

有些约束系统产生奇异质量矩阵,或包含没有时间导数的代数方程。此时得到的是微分代数方程,而不是可以直接求逆的普通 ODE。初值需满足约束,时间积分器也要与相应结构匹配。

这一边界可以进一步用微分指标检查:逐次求导时,哪些隐藏约束限定了初始状态,又需要哪些数据导数。在线性常系数且矩阵束正则的范围内,微分—幂零分解把可自由初始化的演化分量与被外力强制决定的分量分开;它不把任意空间离散后的奇异质量矩阵自动判为同一类可解系统。

非线性、稀疏 Jacobian 与 IMEX ​

更一般的空间离散会产生

MhU˙=Fh(t,U).

若 Fh 的某个分量只依赖附近节点,Jacobian 也具有局部稀疏结构。隐式时间积分最终反复处理的,通常是类似 Mh−γJFh 的矩阵。空间离散模块因此最好同时提供右端计算、边界处理,以及 Jacobian 或矩阵向量乘法信息,而不是只交出一个完全不透明的函数。

当方程同时包含刚性扩散与较温和的输运、反应时,可以分裂

U˙=Fexp(t,U)+Fimp(t,U).

最简单的一阶 IMEX 更新为

Un+1=Un+τFexp(tn,Un)+τFimp(tn+1,Un+1).

这样只把真正造成刚性限制的部分隐式处理。收益取决于分裂后的隐式系统是否容易求解,以及显式部分还剩下什么步长限制;“用了 IMEX”不等于消除了所有 CFL 或精度约束。[3]

若网格随时间运动,质量矩阵、几何项和空间算子也可能随时间变化,还要保持对应的几何守恒关系。把静态网格的右端函数直接搬到移动网格,并不是一个完整的线法实现。

学习位置 ​

有限差分和有限元回答“空间方程如何构造”;ODE 时间推进回答“给定 ODE 后如何走向下一个时刻”;线法连接这两者,并要求同时检查空间谱、边界、质量矩阵和误差尺度。

当空间离散、时间积分与线性代数三个层次相互匹配时,才得到既准确又高效的完整 PDE 求解器。这个匹配关系,比单独选择一个高阶公式更重要。

时间步长的选择还要检查半离散特征值乘以步长后是否落在所选方法的绝对稳定域内。

参考资料

[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,刚性积分与微分代数方程。

关系图谱17 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系