外观
inf-sup 条件
在混合有限元、Stokes 方程和拉格朗日乘子方法里,inf-sup 条件几乎总会出现。教材通常会先写下一个抽象的不等式,然后提醒你:
如果它不成立,离散方法就可能不稳定。
这句话当然重要,但第一次读到时往往并不解渴。真正的问题是:
inf-sup到底在控制哪个变量;- 为什么一个不等式会决定有限元配对是否稳定;
- 它和伪压力、棋盘格模式、病态矩阵之间有什么关系。
这篇文章只讨论 inf-sup 条件本身。鞍点系统、mixed Poisson 和 Stokes 方程会作为例子出现,但重点不在推导具体方程,而在说明这个条件的数学含义:它保证约束变量不会出现系统看不见的模式。
先看它出现在哪类问题里
inf-sup 条件通常出现在带约束的变分问题中。离散以后,这类问题常常具有如下块矩阵结构:
[ABBT0][up]=[fg].
这里的 u 是主变量,例如速度、通量或位移;p 是约束变量,例如压力或拉格朗日乘子。这个系统叫鞍点系统。
关键在于右下角是 0。这意味着 p 通常没有自己的能量项,它不是靠类似 (p,p) 的项被直接控制,而是靠和 u 的耦合项被间接控制。
所以 inf-sup 条件可以先粗略理解成一句话:
每一个非零的约束模式,都必须能被主变量空间稳定地检测到。
如果某些 p 的模式完全不影响 u 方程,或者影响越来越弱,那么这些模式就可能在数值解中自由漂移,表现为非唯一、震荡或强烈依赖网格。
连续 inf-sup 条件
设 V 和 Q 是两个赋范空间,b(v,q) 是定义在 V×Q 上的双线性形式。连续 inf-sup 条件通常写成
0=q∈Qinf0=v∈Vsup∥v∥V∥q∥Qb(v,q)≥β>0.
严格写法中常取绝对值 ∣b(v,q)∣;如果可以通过改变 v 的符号吸收正负号,不写绝对值也不影响直观理解。
这个式子可以按下面的顺序理解:
- 先固定一个 q;
- 在所有 v 中寻找一个最能检测到 q 的方向;
- 得到这个 q 能被检测到的最大强度;
- 再对所有 q 取最坏情况。
如果最坏的 q 仍然能被检测到,而且检测强度有统一正下界 β,那么耦合就是稳定的。
不要让模式躲起来
最坏的情况是存在某个非零 q∈Q,使得对所有 v∈V 都有
b(v,q)=0,
那么这个 q 对耦合系统来说就是“隐身”的。它在 Q 里不是零,但无论怎么选择 v,双线性形式都看不见它。
此时上面的 sup 等于 0,整个 inf-sup 下界也只能是 0。这说明问题中存在未被控制的约束模式。
因此,inf-sup 不是在追求耦合越强越好,而是在排除一种根本性的退化:
不能有非零的约束模式完全逃过主变量空间的检测。
离散 inf-sup 条件
在有限元中,只知道连续问题满足 inf-sup 还不够。真正决定离散方法稳定性的,是离散空间 Vh 和 Qh 是否仍然满足类似条件:
0=qh∈Qhinf0=vh∈Vhsup∥vh∥V∥qh∥Qb(vh,qh)≥βh.
这里最关键的不是某一个网格上的 βh 是否大于零,而是它是否有与网格尺度 h 无关的正下界:
βh≥β0>0.
如果网格加密时 βh→0,就说明某些离散约束模式越来越难被检测到。后果通常是:
- 数值系统会越来越病态;
- 压力或乘子变量出现高频震荡;
- 误差估计中的常数随网格变坏;
- 计算结果对网格结构异常敏感。
所以人们说某个有限元配对“满足 inf-sup 条件”,通常指的是它满足与网格无关的离散 inf-sup 条件。
连续和离散两层条件形式相似,但含义不同:
- 连续
inf-sup说模型本身的耦合不退化; - 离散
inf-sup说有限元空间没有破坏这种耦合结构。
在 mixed Poisson 里,它控制什么
以 Poisson 方程的混合形式为例:
σ=−∇u,∇⋅σ=f.
对应耦合项通常写成
b(τ,u)=(u,∇⋅τ).
这里的主变量是通量 σ,约束变量是标量 u。inf-sup 条件要求:
对任意标量场 u,都能找到合适的通量测试函数 τ,使得 ∇⋅τ 能稳定地感知到 u。
因此,mixed Poisson 中的核心不是随便选一个向量有限元空间,而是要求
∇⋅Vh
与标量空间 Qh 正确匹配。
这也是 Raviart-Thomas、BDM 这类 H(div) 适配空间重要的原因。它们并不是只为了让通量看起来更光滑,而是为了让“通量的散度”和标量未知量之间保持正确的离散结构。
在 Stokes 里,它控制什么
对 Stokes 方程,耦合项通常是
b(v,p)=−(p,∇⋅v).
这里 v 是速度测试函数,p 是压力。inf-sup 条件要求任意压力模式都能通过某个速度场的散度被稳定检测到。
如果做不到,就说明压力空间里有一部分模式超出了速度空间散度能够表达和检测的范围。这些压力模式会变成伪压力:
- 形式上是非零的;
- 速度方程几乎感知不到;
- 数值上可能表现为震荡或棋盘格结构。
这就是 Stokes 离散中许多不稳定现象的来源。
为什么常说 P1-P1 不满足 inf-sup
Stokes 方程里常见的反例是 P1-P1 配对:
- 速度取连续分片线性;
- 压力也取连续分片线性。
问题不只是“阶数太低”,而是速度空间和压力空间的匹配关系不对。分片线性速度在每个单元上的导数是常数,因此它的散度在每个单元上只能提供很有限的检测能力;而连续分片线性压力空间中存在更多变化模式。
于是可能出现这样的非零压力模式 ph:
b(vh,ph)=0∀vh∈Vh,
也就是说,无论选什么速度测试函数,它都无法有效检测这个压力模式。对这种 ph,
vh∈Vhsup∥vh∥∥ph∥b(vh,ph)=0,
离散 inf-sup 条件自然失败。实际计算中,这类未受控制的压力模式就会表现为伪压力或非物理震荡。
从矩阵角度看,会发生什么
离散以后,双线性形式 b(vh,ph) 对应矩阵中的耦合块 B。在合适的范数下,离散 inf-sup 常常可以理解为 B 的最小非零奇异值是否有统一下界。
如果 inf-sup 失败,常见情况是存在某些非零向量 p,使得
BTp=0.
这些向量正对应前面说的隐藏约束模式:它们在压力或乘子空间里非零,但通过耦合块看不到。
从计算角度看,后果非常具体:
- 线性系统病态;
- 鞍点矩阵接近奇异;
- 压力或乘子解出现高频模式;
- 网格越细,问题可能越明显;
- 误差估计和迭代收敛都变差。
因此,inf-sup 虽然写成一个抽象不等式,但它控制的是很实际的问题:离散系统是否稳定、矩阵是否好解、约束变量是否可信。
为什么稳定配对会有效
稳定配对的关键不是简单地把多项式阶数升高,而是让两个空间和耦合算子匹配起来:
主变量空间必须足够丰富,使得耦合算子能够稳定检测约束空间中的全部有效模式。
例如 Stokes 中常用的 P2-P1 配对,二次速度空间提供了更丰富的散度结构,可以稳定控制线性压力空间。mixed Poisson 中的 RT_0-P_0 配对,则是因为 Raviart-Thomas 空间的散度正好与分片常数空间匹配。
因此,判断一个配对是否稳定,不能只看多项式次数,而要看三件事:
- 双线性形式 b(⋅,⋅) 是什么;
- 主变量空间是否属于正确的函数空间,例如 H(div) 或 H1;
- 耦合算子的像空间是否能稳定覆盖约束空间中需要控制的模式。
一句话总结:
inf-sup条件控制的是约束变量的可见性。它要求每一个非零的压力、乘子或标量模式,都能被主变量空间稳定地看见;离散空间一旦做不到,数值解就会出现不稳定。
版权所有
版权归属:Guisong Wu