Skip to content

原则Principle

有限元残差后验估计

Finite element residual estimator · Finite element a posteriori residual estimator

从单元残差与斜率跳跃构造可计算指标,在一维模型中给出显式常数,再以二维准插值和泡函数证明可靠性与含振荡的局部效率。

解出有限元矩阵方程之后,还有一个问题没有回答:这张网格上的折线,距离原来的连续解究竟多远?矩阵残差为零,只说明有限个测试方向上的平衡已经满足;它没有检查单元内部的弯曲,也没有消除折线在节点处的斜率变化。

残差后验估计从已经得到的离散解和已知荷载出发,为这些缺陷赋予正确的尺度,再把它们变成误差界。与需要未知解正则性范数的先验估计相比,它更适合回答一次具体计算是否足够精细。本条先在一维模型中算出显式常数,再在二维协调三角网格上证明可靠性与局部效率;自适应有限元随后用局部指标决定在哪里增加自由度。

形式陈述 ​

固定方程、空间和误差 ​

考虑

−u″=f于 (0,1),u(0)=u(1)=0,f∈L2(0,1).

取任意严格递增划分 0=x0<⋯<xN=1,单元 Ki=(xi−1,xi) 的长度为 hi。Vh 是连续分片一次、端点为零的空间。按有限元方法精确计算积分,并精确求解离散系统,所得 uh∈Vh 满足

∫01uh′vh′dx=∫01fvhdx(vh∈Vh).

这里讨论的误差是能量误差

e=u−uh,E=‖e′‖L2(0,1),EK=‖e′‖L2(K).

零端点条件使导数半范数成为 H01 上的范数。数值积分误差和未完成线性求解造成的误差暂不包括在 E 中;后文会说明怎样区分代数误差。

单元内部与节点处的残差 ​

对任意 v∈H01(0,1),定义连续残差泛函

R(v)=∫01fvdx−∫01uh′v′dx.

设 Ui=uh(xi),单元斜率和内部节点跳跃分别为

si=Ui−Ui−1hi,Ji=si+1−si(1≤i<N).

逐单元积分得到

R(v)=∑K∫Kfvdx+∑i=1N−1Jiv(xi).

符号来自相邻端点贡献:左单元给出 −siv(xi),右单元给出 +si+1v(xi)。单元内 uh″=0,所以强残差 f+uh″ 就是 f;但分布意义下的二阶导数还包含节点贡献,不能因为单元内二阶导数为零就略去跳跃。两端的测试函数为零,因此此处没有 Dirichlet 端点跳跃项。

取 v=vh 时 R(vh)=0,并不要求上式中的每一项分别为零。对内部帽函数 ϕi,更精确的平衡是

Ji=−∫01fϕidx.

这也说明 Ji 是数值解斜率的跳跃,并非荷载 f 本身的跳跃。

本条采用的权重与局部分配 ​

定义

V2=∑KhK2‖f‖L2(K)2,wi=min(hi,hi+1),η2=V2+∑i=1N−1wiJi2.

将一个内部节点的跳跃贡献平均分给左右单元:

ηKi2=hi2‖f‖L2(Ki)2+12wi−1Ji−12+12wiJi2,

其中不存在的端点项直接省略。于是 η2=∑KηK2,每个 ηK 都可由当前解、荷载和网格计算。

这是本条明确选择的一维指标,权重使用相邻长度的较小值,便于在高度不均匀的网格上给出统一常数。多维残差估计也组合单元残差和界面通量跳跃,但界面测度、权重与局部邻域需要重新定义;这里的公式不是把高维面面积机械代成零而得到的特例。[1]

为什么它能控制误差 ​

一个一维特性:离散解等于节点插值 ​

u∈H2(0,1),因此可以定义节点插值 Ihu。任意 vh∈Vh 的导数在各单元上为常数,而

∫K(u−Ihu)′dx=0.

所以 a(u−Ihu,vh)=0。这与Galerkin 正交完全相同;离散解唯一,故 uh=Ihu。它不是说整个函数已经精确,而是说 e 在每个单元的两个端点都为零。在各单元内部,仍有 −e″=f。

这个结论依赖一维、单位扩散系数和协调一次元。它是下述简洁证明的关键,不能直接移植到一般变系数或高维网格。

可靠性:估计量不会漏掉大误差 ​

长度为 hK 的区间上,零端点函数满足 Poincaré 不等式 ‖e‖K≤(hK/π)‖e′‖K。局部分部积分后,

EK2=∫Kfedx≤‖f‖KhKπEK.

约去非零的 EK,再平方求和,得到

E≤Vπ≤ηπ.

这就是可靠性:只要计算假设成立,η/π 是能量误差的上界。对这个特殊模型,仅体积项 V 就足以给出上界;保留跳跃项有助于呈现连续残差的完整结构,并为局部标记提供另一种分配信息。

荷载在每个单元上常值时:可以精确比较 ​

若 f|K=cK,写局部坐标 t=x−xi−1。由 −e″=cK 与零端点条件,

e(t)=cK2t(hK−t),EK2=∫0hKcK2(hK/2−t)2dt=cK2hK312.

因此 V2=12E2。帽函数平衡进一步给出

Ji=−cihi+ci+1hi+12.

由 (a+b)2≤2(a2+b2) 以及 wi≤hi,hi+1,每个节点贡献满足

wiJi2≤12(ci2hi3+ci+12hi+13).

一个单元至多被相邻两个节点计入,故 ∑iwiJi2≤V2。于是

12E≤η≤24E.

这里“荷载分片常值”必须相对于当前网格成立。若荷载断点落在单元内部,不能直接套用此精确公式。满足条件时,二分一个单元会把该单元的误差平方从 cK2hK3/12 变成原来的 1/4;其他单元的误差不变。这为一次局部加密提供了可以独立核验的真误差答案。

数据振荡为何不能忽略 ​

把荷载分成平均值与未分辨部分 ​

对一般 f∈L2,定义

f¯K=1hK∫Kfdx,osc2=∑KhK2‖f−f¯K‖K2,V¯2=∑KhK2‖f¯K‖K2.

正交分解给出 V2=V¯2+osc2。单元上再把误差分成 e=e0+ed,其中两个函数都在单元端点为零,分别满足 −e0″=f¯K 和 −ed″=f−f¯K。前一项能精确积分,后一项应用刚才的可靠性证明,因此

‖e0′‖=V¯12,‖ed′‖≤oscπ.

这里范数对全部单元求和。由三角不等式及其反向形式,

max(0,V¯12−oscπ)≤E≤V¯12+oscπ.

一般效率估计的机制 ​

由 Ji=−∫fϕi 和 ‖ϕi‖K2=hK/3,对两侧分别使用 Cauchy–Schwarz,再用 (a+b)2≤2a2+2b2,得到

wiJi2≤23(hi2‖f‖Ki2+hi+12‖f‖Ki+12).

求和后 η≤7/3V。另一方面,上面的误差分解给出 V¯≤12E+(12/π)osc。结合 V≤V¯+osc,有

η≤73[12E+(1+12π)osc].

常数并不尖锐,但不依赖相邻单元长度比。这是含数据振荡的效率,与此前的可靠性方向相反:估计量的偏大受真实误差和未分辨荷载共同限制。[1]

二维三角网格:重新定义指标 ​

固定有界 Lipschitz 多边形区域 Ω⊂R2 和 −Δu=f、u|∂Ω=0,其中 f∈L2(Ω)。设 T 是协调且形状正则的三角剖分,uh∈Vh⊂H01(Ω) 是精确求积、精确求解的连续一次有限元解。此处记

hK=|K|1/2,E=‖∇(u−uh)‖L2(Ω).

hK 是面积开方,在形状正则族上与直径可比;选它是为了在自适应收缩证明中精确追踪二分的尺度变化。它与前面一维单元长度分别用于各自的模型。

内部边 e=K∩L 两侧的外法向分别为 nK,nL,定义常数跳跃

Je=−(∇uh|K⋅nK+∇uh|L⋅nL).

逐元分部积分与单元内 Δuh=0 给出

R(v)=a(u−uh,v)=∑K(f,v)K+∑e 内部(Je,v)e.

残差恒等式中的边只计一次。局部指标则按两侧各自尺度分配:

ηK2=hK2‖f‖K2+hK∑e⊂∂K, e 内部‖Je‖e2,η2=∑KηK2.

因此全局每条内部边的权重是 hK+hL,不是 hK,也没有再乘 1/2。齐次 Dirichlet 边上测试函数迹为零,不加入边界跳跃。

二维可靠性:用平均值代替不可用的节点值 ​

对顶点 z,令 ωz 为围绕它的三角形星形邻域;ωK 为 K 的三个顶点邻域之并。对 v∈H01(Ω),定义

cz(v)={|ωz|−1∫ωzv,z 为内部顶点,0,z∈∂Ω,Qhv=∑zcz(v)ϕz∈Vh.

形状正则性给出统一最小角,因此一个顶点周围的单元数有统一上界;共享边的三角形尺度可比,沿星形邻域的有限链传播后,邻域内各尺度也可比。局部 Poincaré 不等式于是给出

‖v−cz(v)‖ωz≤ChK‖∇v‖ωz(z∈K).

内部顶点取平均值;边界顶点的邻域含一条边界边,v 在该边上的迹为零,使用带零边界片段的同一不等式。这些局部常数只依赖形状界。[1]

置 w=v−Qhv。包含边界帽函数的分割一致性 ∑zϕz=1 给出 w|K=∑z∈Kϕz(v−cz)。由 0≤ϕz≤1、‖∇ϕz‖≤C/hK 和上式,

‖w‖K≤ChK‖∇v‖ωK,‖∇w‖K≤C‖∇v‖ωK.

参考三角形的迹不等式经仿射缩放为

‖w‖e≤C(hK−1/2‖w‖K+hK1/2‖∇w‖K)≤ChK1/2‖∇v‖ωK.

Galerkin 正交使 R(Qhv)=0。把 R(v)=R(w) 的体积项以 hK 加权、边项以 (hK+hL)1/2 加权,再用 Cauchy–Schwarz,得到

|R(v)|≤Cη(∑K‖∇v‖ωK2)1/2≤Cη‖∇v‖.

最后一步用的是这些扩大邻域的有界重叠数,而不是声称它们互不相交。取 v=u−uh,约去非零误差,便有

E2≤Crelη2.

Crel>0 对同一形状正则网格族统一。这里没有得到一维的 1/π 常数,也没有假设二维弱解在节点上精确或属于全局 H2。

二维局部效率:两种泡函数把残差测回来 ​

令 f¯K=|K|−1∫Kf,oscK=hK‖f−f¯K‖K。三角形重心坐标为 λ0,λ1,λ2,取单元泡函数

bK=27λ0λ1λ2,vK=f¯KbK.

它在整个 ∂K 上为零。参考元积分和缩放给出

∫KbK=920|K|,‖vK‖K≤C‖f¯K‖K,‖∇vK‖K≤ChK−1‖f¯K‖K.

把 vK 零延拓到全域,边残差全部消失,因此

920‖f¯K‖K2=(∇(u−uh),∇vK)K−(f−f¯K,vK)K.

使用上述范数界,约去非零 ‖f¯K‖K 并乘 hK,再用 ‖f‖K≤‖f¯K‖K+‖f−f¯K‖K,可得

hK‖f‖K≤C(‖∇(u−uh)‖K+oscK).

若平均值为零,结论直接由振荡项成立,无需约分。

对内部边 e=[a,b],令 ωe=K∪L,在两个三角形上分别取 be=4λaλb。两侧在公共边的迹相同,且在补片外边界为零,故 ve=Jebe 零延拓后仍属于 H01(Ω)。这里 Je 为常数,

∫ebe=23|e|,‖ve‖ωe≤C|e|1/2‖Je‖e,‖∇ve‖ωe≤C|e|−1/2‖Je‖e.

残差恒等式只留下这条边:

23‖Je‖e2=(∇(u−uh),∇ve)ωe−(f,ve)ωe.

约去跳跃范数并乘 |e|1/2,得边项受补片能量误差和 |e|‖f‖ωe 控制。再对 K,L 使用刚才的体积估计及 |e|≍hK≍hL。令 ωKedge 为 K 与共享边邻居之并,即得到

 ηK2≤C∑L⊂ωKedge(‖∇(u−uh)‖L2+oscL2). 

有界重叠又给出全局 η2≤C(E2+osc2)。这说明局部指标为什么有误差含义,也说明它必须容许邻居贡献和未分辨荷载;可靠性与效率并不是同一个不等式的不同名称。

直觉

可靠性不声称 η 等于 E,也不声称每个 ηK 与 EK 成固定比例。相邻单元会共享跳跃贡献,所以真实误差为零的单元也可能收到正指标。

这不是说振荡就是误差,而是说用单元平均值代替原荷载时,遗漏的影响需要另外控制。振荡小,常荷载公式就有解释力;振荡大,单靠平均荷载无法可靠评估误差。

例子与边界

高频荷载揭示的边界 ​

只用一个单元 (0,1),零边界一次元空间是 Vh={0}。取 fm(x)=sin⁡(2mπx),则

um(x)=sin⁡(2mπx)(2mπ)2,Em=12mπ2,ηm=Vm=12.

于是 ηm/Em=2mπ→∞:本估计量不可能对任意荷载满足一个与 m 无关的无振荡效率界。椭圆方程把高频荷载的响应压小,荷载的 L2 范数却没有随频率下降。

此时 f¯=0、osc=1/2。若先把荷载替换成单元平均值,再把振荡项删掉,甚至会报告零估计量,而真实误差严格为正。这个反例解释了为什么效率定理中的振荡项具有实际内容。

四个三角形上的完整二维账本 ​

取单位正方形、f=1,把中心 c=(1/2,1/2) 连到四个角,得到四个面积 1/4 的三角形。全部边界节点置零,唯一内部帽函数为 ϕc;它在下、右、上、左单元的梯度依次为 (0,2),(−2,0),(0,−2),(2,0)。因此

a(ϕc,ϕc)=4⋅14⋅4=4,(1,ϕc)=4⋅|K|3=13,uh=112ϕc.

离散解梯度依次为 (0,1/6),(−1/6,0),(0,−1/6),(1/6,0)。四条内部边长度都是 1/2;用两侧外法向计算,每条跳跃的绝对值为 1/(32),故

‖Je‖e2=1182,hK=12.

全局体积项是 4(1/4)(1/4)=1/4,每条边的两侧权重之和是 1。所以

η2=14+29,ηK2=116+236,osc=0.

这是真正求解了一个非零的一次元方程;若只把正方形沿对角线切成两个三角形,所有顶点都在零边界上,离散空间反而只有零函数。即使本例振荡为零,η 也只是与误差等价的指标,不是已计算出的精确误差。

图右将每个单元从中心连到其边界边中点,只有边界节点增加。AFEM 的二维算例继续计算此时的 17/72,解释能量误差不变而估计量下降如何与加权收缩相容。

推论与应用

从误差界走向计算决策 ​

η/π≤ε 在本条的一维精确积分、精确求解模型中足以保证 E≤ε;二维模型已证明的充分条件是 Crelη≤ε,需使用该网格族的可靠性常数。若在一维模型中采用近似系数 U^,此前的节点插值恒等式一般不再成立,不能不加修改地套用证明。令 r=b−AU^,则到精确离散解的代数误差满足

Ealg2=rTA−1r.

Galerkin 正交还给出总能量误差平方等于离散误差平方与代数误差平方之和。裸残差 ‖r‖2 需要通过逆矩阵或可靠的等价界才能转成这个能量误差。

一旦离散误差占主导,继续求解同一矩阵不会改善网格逼近;应该根据 ηK2 选择单元。下一条的完整加密任务会展示:初始四个单元中,只二分有荷载的那个单元,就能取得均匀二分八个单元的相同能量误差,同时也检验“指标较大”与“局部真误差较大”之间并非逐单元恒等。

参考资料

[1] Ricardo H. Nochetto, Kunibert G. Siebert and Andreas Veeser, Theory of Adaptive Finite Element Methods: An Introduction, 2009,作者讲义,定理 13 与式 (81)–(83),第 80 页;定理 14,第 86 页;推论 9 与注 26,第 88 页。分别讨论残差可靠性、局部效率及数据振荡。二维证明还使用第77–79页的迹/星形邻域Poincaré估计及第82–84页的泡函数构造;本条展开单位扩散、一次元的特例。一维权重、显式常数及二维数值账本由正文独立计算。

[2] Ivo Babuška and W. C. Rheinboldt, “Error Estimates for Adaptive Finite Element Computations,” SIAM Journal on Numerical Analysis 15(4), 736–754, 1978,原文。第 3 节以局部化残差组织后验误差估计,是这一思路的早期工作;其问题与网格假设不应直接替代本条的具体证明。

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

拖动节点调整位置。

显示关系

显示:依赖

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

使用的工具