外观
inf-sup 条件是什么,它在有限元里控制什么
刚接触混合有限元、Stokes 方程或者拉格朗日乘子方法时,inf-sup 条件几乎绕不过去。很多教材会先给出一个看起来有点抽象的不等式,然后告诉你:
如果它不成立,离散方法就可能不稳定。
这句话没错,但第一次看到时,通常还是会有两个疑问:
- 这个条件到底在“控制”什么;
- 为什么它一失败,就会出现伪压力、棋盘格模式或者病态矩阵。
这篇文章就专门讲 inf-sup 本身。鞍点问题和 Poisson 混合形式会顺带出现,但只作为背景;重点放在它的数学含义、连续与离散两层含义,以及有限元离散里最常见的不稳定来源。
先看它出现在哪类问题里
inf-sup 条件通常出现在带约束的变分问题中。离散以后,这类问题常写成
[ABBT0][up]=[fg].
这里
- u 是主变量,比如速度、通量;
- p 是约束变量,比如压力或拉格朗日乘子。
这种结构叫鞍点系统。inf-sup 条件之所以重要,就是因为第二个变量 p 往往并不带有自己的能量项,它是否“可控”,完全依赖于和 u 的耦合够不够强。
所以从一开始就可以把它理解成一个稳定性问题:
约束变量会不会有一部分模式,根本没有被主变量空间看见?
如果答案是会,那么方法就危险了。
连续 inf-sup 条件
设 V 和 Q 是两个函数空间,b(v,q) 是它们之间的双线性耦合。inf-sup 条件写成
q∈Qinfv∈Vsup∥v∥V∥q∥Qb(v,q)≥β>0.
第一次看这个式子时,最难接受的通常不是符号,而是 inf 和 sup 为什么要这样套在一起。
其实它表达的是一个最坏情形的稳定性要求:
- 先固定一个 q;
- 看在所有 v 里,能不能找到一个和它耦合得足够强的方向;
- 再对所有可能的 q 取最坏情况;
- 如果即便在最坏情况下,耦合强度仍然有一个统一的正下界 β,那么系统就是稳定的。
也就是说,连续 inf-sup 真正说的是:
任意一个非零的约束模式,都必须能被另一个空间里的某些函数稳定地“探测”到。
这里讨论的是函数空间 V 和 Q 本身的耦合是否退化。若连续层面就存在“看不见”的模式,那么后面的离散化无论怎么做,都补不回来。
连续 inf-sup 的直观理解:不要让某些模式躲起来
这个条件最直接的几何直觉是“不能有隐藏模式”。
如果存在某个非零的 q∈Q,使得对所有 v∈V 都有
b(v,q)=0,
那么这个 q 虽然在数学上非零,但对耦合系统来说几乎是“隐身”的。因为主变量空间里的任何测试函数都感知不到它。
这时就会发生两件事:
- 离散系统可能允许某些伪模式自由漂浮;
- 约束变量的数值解会出现震荡、非唯一或者强烈依赖网格。
所以 inf-sup 不是在追求“耦合越强越好”,而是在排除一种最坏情况:
有些模式根本没有被耦合到。
离散 inf-sup 条件
有限元里最关键的不是连续问题上有没有 inf-sup,而是离散空间上有没有。
设离散空间为 Vh 和 Qh,对应的离散条件是
qh∈Qhinfvh∈Vhsup∥vh∥V∥qh∥Qb(vh,qh)≥βh.
真正需要的是:βh 不能随着网格加密跑到零去。也就是说,它要对 h 保持一致下界。
如果 βh→0,那就意味着:
- 某些离散模式越来越难被另一个空间检测到;
- 数值系统会越来越病态;
- 压力、乘子或通量这类变量的误差会变得不可控。
因此人们常说“这个配对满足 inf-sup 条件”,严格说指的是:
这个离散空间配对满足与网格无关的离散 inf-sup 条件。
这一点说明连续和离散虽然公式很像,但控制的是两层不同的问题:
- 连续
inf-sup说模型本身的耦合不退化; - 离散
inf-sup说有限元空间没有把这种稳定性破坏掉。
在 mixed Poisson 里,它控制什么
以 Poisson 的混合形式为例:
σ=−∇u,∇⋅σ=f.
对应耦合项通常写成
b(τ,u)=(u,∇⋅τ).
此时 inf-sup 条件的含义可以直接读成:
对任意标量场 u,都必须能找到一个通量场 τ,使得 ∇⋅τ 能有效地感知到 u。
所以这里控制的核心不是“通量本身够不够光滑”,而是:
通量空间经过散度以后,能不能和标量空间正确匹配。
这也是为什么 mixed Poisson 里常用的不是随便一个连续向量元,而是 Raviart-Thomas、BDM 这类适配 H(div) 的空间。
在 Stokes 里,它控制什么
对 Stokes 方程,耦合项通常是
b(v,p)=−(p,∇⋅v).
这里 inf-sup 条件说的是:
任意一个压力模式 p,都必须能通过某个速度场的散度被稳定地检测到。
如果做不到,就说明压力空间里有一部分模式超出了速度散度真正能表达的范围。于是这些压力模式会变成“伪压力”:
- 形式上是非零的;
- 数值上会震荡;
- 但速度空间几乎感知不到它。
这正是很多不稳定配对的本质问题。
为什么常说 P1-P1 不满足 inf-sup
最经典的例子是 Stokes 的 P1-P1 配对:
- 速度取连续分片线性;
- 压力也取连续分片线性。
它之所以常被拿出来讲,不是因为 “P1 太低阶”,而是因为速度散度的表达能力不够支撑整个压力空间。
粗略地说,速度在单元上是线性的,那么它的导数在单元上最多是常数,因此散度所能产生的模式比连续分片线性压力空间要小。于是就容易出现
div(Vh)⊊Qh
的情况。
一旦存在某个非零压力模式 ph,满足
b(vh,ph)=0∀vh∈Vh,
那么它就完全逃过了速度空间的检测。对这种模式,
vh∈Vhsup∥vh∥∥ph∥b(vh,ph)=0,
离散 inf-sup 条件自然失败。
从矩阵角度看,会发生什么
如果把离散耦合矩阵记为 B,那么 inf-sup 失败通常意味着:B 的秩不够,或者说它存在太大的零空间。
于是会有某些非零向量 p 满足
BTp=0.
这些向量正对应着“无法被主变量耦合看到”的模式。
从计算上看,后果通常很具体:
- 线性系统病态;
- 压力或乘子变量出现高频震荡;
- 收敛阶异常;
- 网格越细,问题反而越明显。
所以 inf-sup 条件虽然写成一个抽象不等式,但它最终约束的是非常工程化的东西:这个离散系统到底稳不稳、好不好算、结果靠不靠谱。
为什么稳定配对会有效
稳定配对的核心不是“阶数更高”四个字,而是:
主变量空间必须足够丰富,使得耦合算子的像空间能够覆盖约束空间中需要控制的那些模式。
例如 Stokes 里常见的 P2-P1,之所以稳定,是因为二次速度空间给了更强的散度表达能力;而 mixed Poisson 里的 RT_0-P_0,之所以稳定,是因为这个配对正好适应了 H(div) 与 L2 的结构关系。
所以判断一个配对稳不稳定,不能只盯着多项式次数看,而要看三件事:
- 双线性形式 b(⋅,⋅) 是什么;
- 主变量空间属于哪个函数空间;
- 耦合算子的像空间和约束空间是否匹配。
版权所有
版权归属:Guisong Wu