3. 空间离散基础与非线性项处理

非线性偏微分方程数值求解的第一步,是把连续的空间导数替换为网格上的离散近似。这一步看似只是“把 ∂/∂x 换成差分”,但对非线性项而言,离散方式的选择会直接决定格式是否守恒、是否稳定、能否正确捕捉激波。本节以 Burgers 方程为载体,讨论网格设计、差分算子构造、非线性通量离散的三种典型方案,以及守恒性的验证方法。

一、网格设计与差分算子构造

以一维区间 [a,b] 为例,采用均匀网格:节点 xi = a + iΔx,i = 0,…,N,Δx = (b−a)/N。若采用单元中心有限体积视角,则单元 Ii = [xi−1/2, xi+1/2],单元平均量记为 ui。两种视角在均匀网格上等价,但有限体积视角更便于讨论守恒性。

差分算子按精度与对称性构造。二阶中心差分:

u_x(x_i) ≈ (u_{i+1} − u_{i−1}) / (2Δx)      # 二阶中心,色散型误差
u_xx(x_i) ≈ (u_{i+1} − 2u_i + u_{i−1}) / Δx²  # 二阶中心,耗散型误差

一阶迎风差分(假设 u>0):u_x ≈ (ui − ui−1)/Δx,具有数值耗散但无振荡。四阶中心差分 u_x ≈ (−ui+2 + 8ui+1 − 8ui−1 + ui−2)/(12Δx) 精度高但色散强,在间断附近易产生过冲。选择算子时须同时考虑精度阶、耗散/色散特性与稳定性约束(如显式格式的 CFL 条件)。

二、非线性通量离散:迎风、中心与混合

Burgers 方程 ut + (u²/2)x = νuxx 中,通量 f(u) = u²/2 是非线性的,其特征速度 f′(u) = u 随解变化,这正是激波形成的根源。对流通项 (u²/2)x 有三种典型离散:

  • 中心型:直接对 f(ui) 作中心差分,形式简单、二阶精度,但不满足熵条件,激波处产生非物理振荡。
  • 迎风型:按特征方向取单侧差分,如 fx ≈ (fi − fi−1)/Δx(u>0 时)。数值耗散抑制振荡,但一阶精度会过度抹平激波。
  • 混合型:在光滑区用中心或高阶格式,在间断附近切换/加权到迎风或限制器格式,兼顾精度与稳定性。典型代表是通量分裂(如 Lax-Friedrichs 分裂 f± = (f ± αu)/2,α = max|u|)配合限制器。

工程实现中,常把对流通量写成数值通量形式 Fi+1/2,单元更新为 uin+1 = uin − (Δt/Δx)(Fi+1/2 − Fi−1/2) + 扩散项。数值通量的选取决定了格式的守恒性与熵特性。

Burgers 方程空间离散:网格、通量与守恒性 ① 单元中心网格 i−2 i−1 i i+1 i+2 i+3 xi−1/2 xi+1/2 xi+3/2 Δx 均匀;ui 为单元平均量 ② 非线性通量离散方案 中心型 F = (f(u_{i+1}) + f(u_i))/2 → 二阶,激波处振荡 迎风型 F = f(u_i)(u>0)→ 一阶,耗散强、无振荡 混合型(通量分裂+限制器) f± = (f ± αu)/2,α = max|u|;光滑区高阶、间断处迎风 ③ 守恒性验证:通量望远镜求和 Σᵢ (F_{i+1/2} − F_{i−1/2}) = F_{N+1/2} − F_{1/2} (内部通量两两抵消) ⇒ 总质量变化仅由边界通量决定,与内部离散细节无关 检验:数值解 ΣuᵢΔx 随时间的变化应等于边界通量差(周期边界下应严格守恒)

三、守恒性验证

守恒格式的核心特征是:单元更新可写成通量差分形式,从而对全区域求和时内部通量两两抵消(望远镜求和),总量变化只由边界通量决定。验证方法很直接:在周期边界下,计算 Σi uiΔx 随时间的漂移量,若数值格式守恒,该量应在机器精度内保持不变(含扩散项时也仅受边界影响)。若采用非守恒的中心差分直接离散 (u²/2)x,则求和后无法消去内部项,总量会缓慢漂移,这是判断格式是否守恒的实用判据。

四、案例:Burgers 方程激波捕捉

取 ν = 0.01、初始条件 u(x,0) = sin(πx)、x∈[0,1]、周期边界。解析上,解在 x=0.5 附近随时间变陡,约 t≈1/π 时形成近激波。教学示例参数:N=200(Δx=0.005),显式 Euler 时间推进,Δt 由 CFL 取 0.4Δx/max|u|。

若用纯中心差分,激波附近出现明显过冲与下冲,甚至导致负值;改用一阶迎风,振荡消失但激波被抹宽到约 10 个网格;采用通量分裂 + minmod 限制器的混合格式,激波宽度压缩到 3~4 个网格且无过冲。判断依据可观察三点:激波处是否单调(无过冲)、激波宽度是否随网格加密而收敛、总量是否守恒。这三项恰好对应熵条件、精度与守恒性,是评估非线性离散方案的基本标尺。

实践建议:先用一阶迎风跑通并确认守恒,再逐步引入高阶重构与限制器;每次改动后都检查总量漂移与激波单调性,避免“精度上去了、稳定性丢了”。