解出有限元矩阵方程之后,还有一个问题没有回答:这张网格上的折线,距离原来的连续解究竟多远?矩阵残差为零,只说明有限个测试方向上的平衡已经满足;它没有检查单元内部的弯曲,也没有消除折线在节点处的斜率变化。
残差后验估计 从已经得到的离散解和已知荷载出发,为这些缺陷赋予正确的尺度,再把它们变成误差界。与需要未知解正则性范数的先验估计相比,它更适合回答一次具体计算是否足够精细。本条在一个可以把每一步证明到底的一维模型中建立这座桥;自适应有限元 公理库 自适应有限元的估计、标记与加密 Adaptive finite element method · AFEM · Dörfler marking 在局部荷载的一维 Poisson 问题上完成求解、残差估计、平方指标标记与局部二分,并比较相同误差和相同预算下的网格选择。 随后用局部指标决定在哪里增加自由度。
形式陈述
固定方程、空间和误差
考虑
于 − u ″ = f 于 ( 0 , 1 ) , u ( 0 ) = u ( 1 ) = 0 , f ∈ L 2 ( 0 , 1 ) . 取任意严格递增划分 0 = x 0 < ⋯ < x N = 1 ,单元 K i = ( x i − 1 , x i ) 的长度为 h i 。V h 是连续分片一次、端点为零的空间。按有限元方法 公理库 有限元方法 Finite element method · FEM · Finite element assembly 从弱形式与帽函数出发,完整构造局部单元、组装并求解小系统,再用能量与逼近解释误差阶和边界处理。 精确计算积分,并精确求解离散系统,所得 u h ∈ V h 满足
∫ 0 1 u h ′ v h ′ d x = ∫ 0 1 f v h d x ( v h ∈ V h ) . 这里讨论的误差是能量误差
e = u − u h , E = ‖ e ′ ‖ L 2 ( 0 , 1 ) , E K = ‖ e ′ ‖ L 2 ( K ) . 零端点条件使导数半范数成为 H 0 1 上的范数。数值积分误差和未完成线性求解造成的误差暂不包括在 E 中;后文会说明怎样区分代数误差。
单元内部与节点处的残差
对任意 v ∈ H 0 1 ( 0 , 1 ) ,定义连续残差泛函
R ( v ) = ∫ 0 1 f v d x − ∫ 0 1 u h ′ v ′ d x . 设 U i = u h ( x i ) ,单元斜率和内部节点跳跃分别为
s i = U i − U i − 1 h i , J i = s i + 1 − s i ( 1 ≤ i < N ) . 逐单元积分得到
R ( v ) = ∑ K ∫ K f v d x + ∑ i = 1 N − 1 J i v ( x i ) . 符号来自相邻端点贡献:左单元给出 − s i v ( x i ) ,右单元给出 + s i + 1 v ( x i ) 。单元内 u h ″ = 0 ,所以强残差 f + u h ″ 就是 f ;但分布意义下的二阶导数还包含节点贡献,不能因为单元内二阶导数为零就略去跳跃。两端的测试函数为零,因此此处没有 Dirichlet 端点跳跃项。
取 v = v h 时 R ( v h ) = 0 ,并不要求上式中的每一项分别为零。对内部帽函数 ϕ i ,更精确的平衡是
J i = − ∫ 0 1 f ϕ i d x . 这也说明 J i 是数值解斜率的跳跃 ,并非荷载 f 本身的跳跃。
本条采用的权重与局部分配
定义
V 2 = ∑ K h K 2 ‖ f ‖ L 2 ( K ) 2 , w i = min ( h i , h i + 1 ) , η 2 = V 2 + ∑ i = 1 N − 1 w i J i 2 . 将一个内部节点的跳跃贡献平均分给左右单元:
η K i 2 = h i 2 ‖ f ‖ L 2 ( K i ) 2 + 1 2 w i − 1 J i − 1 2 + 1 2 w i J i 2 , 其中不存在的端点项直接省略。于是 η 2 = ∑ K η K 2 ,每个 η K 都可由当前解、荷载和网格计算。
这是本条明确选择的一维指标,权重使用相邻长度的较小值,便于在高度不均匀的网格上给出统一常数。多维残差估计也组合单元残差和界面通量跳跃,但界面测度、权重与局部邻域需要重新定义;这里的公式不是把高维面面积机械代成零而得到的特例。[1]
为什么它能控制误差
一个一维特性:离散解等于节点插值
u ∈ H 2 ( 0 , 1 ) ,因此可以定义节点插值 I h u 。任意 v h ∈ V h 的导数在各单元上为常数,而
∫ K ( u − I h u ) ′ d x = 0. 所以 a ( u − I h u , v h ) = 0 。这与Galerkin 正交 公理库 Galerkin 方法 Galerkin method · Galerkin discretization 在有限维试探与检验空间中离散连续变分问题,并用 Galerkin 正交、Céa 准最优性及稳定条件组织误差。 完全相同;离散解唯一,故 u h = I h u 。它不是说整个函数已经精确,而是说 e 在每个单元的两个端点 都为零。在各单元内部,仍有 − e ″ = f 。
这个结论依赖一维、单位扩散系数和协调一次元。它是下述简洁证明的关键,不能直接移植到一般变系数或高维网格。
可靠性:估计量不会漏掉大误差
长度为 h K 的区间上,零端点函数满足 Poincaré 不等式 ‖ e ‖ K ≤ ( h K / π ) ‖ e ′ ‖ K 。局部分部积分后,
E K 2 = ∫ K f e d x ≤ ‖ f ‖ K h K π E K . 约去非零的 E K ,再平方求和,得到
E ≤ V π ≤ η π . 这就是可靠性 公理库 残差、误差估计与停止准则 Residual and error estimation · Stopping criterion 区分可计算残差与未知真误差,并说明把缺陷转成误差界和停止证书所需的条件。 :只要计算假设成立,η / π 是能量误差的上界。对这个特殊模型,仅体积项 V 就足以给出上界;保留跳跃项有助于呈现连续残差的完整结构,并为局部标记提供另一种分配信息。
荷载在每个单元上常值时:可以精确比较
若 f | K = c K ,写局部坐标 t = x − x i − 1 。由 − e ″ = c K 与零端点条件,
e ( t ) = c K 2 t ( h K − t ) , E K 2 = ∫ 0 h K c K 2 ( h K / 2 − t ) 2 d t = c K 2 h K 3 12 . 因此 V 2 = 12 E 2 。帽函数平衡进一步给出
J i = − c i h i + c i + 1 h i + 1 2 . 由 ( a + b ) 2 ≤ 2 ( a 2 + b 2 ) 以及 w i ≤ h i , h i + 1 ,每个节点贡献满足
w i J i 2 ≤ 1 2 ( c i 2 h i 3 + c i + 1 2 h i + 1 3 ) . 一个单元至多被相邻两个节点计入,故 ∑ i w i J i 2 ≤ V 2 。于是
12 E ≤ η ≤ 24 E . 这里“荷载分片常值”必须相对于当前网格 成立。若荷载断点落在单元内部,不能直接套用此精确公式。满足条件时,二分一个单元会把该单元的误差平方从 c K 2 h K 3 / 12 变成原来的 1 / 4 ;其他单元的误差不变。这为一次局部加密提供了可以独立核验的真误差答案。
数据振荡为何不能忽略
把荷载分成平均值与未分辨部分
对一般 f ∈ L 2 ,定义
f ¯ K = 1 h K ∫ K f d x , osc 2 = ∑ K h K 2 ‖ f − f ¯ K ‖ K 2 , V ¯ 2 = ∑ K h K 2 ‖ f ¯ K ‖ K 2 . 正交分解给出 V 2 = V ¯ 2 + osc 2 。单元上再把误差分成 e = e 0 + e d ,其中两个函数都在单元端点为零,分别满足 − e 0 ″ = f ¯ K 和 − e d ″ = f − f ¯ K 。前一项能精确积分,后一项应用刚才的可靠性证明,因此
‖ e 0 ′ ‖ = V ¯ 12 , ‖ e d ′ ‖ ≤ osc π . 这里范数对全部单元求和。由三角不等式及其反向形式,
max ( 0 , V ¯ 12 − osc π ) ≤ E ≤ V ¯ 12 + osc π . 一般效率估计的机制
由 J i = − ∫ f ϕ i 和 ‖ ϕ i ‖ K 2 = h K / 3 ,对两侧分别使用 Cauchy–Schwarz,再用 ( a + b ) 2 ≤ 2 a 2 + 2 b 2 ,得到
w i J i 2 ≤ 2 3 ( h i 2 ‖ f ‖ K i 2 + h i + 1 2 ‖ f ‖ K i + 1 2 ) . 求和后 η ≤ 7 / 3 V 。另一方面,上面的误差分解给出 V ¯ ≤ 12 E + ( 12 / π ) osc 。结合 V ≤ V ¯ + osc ,有
η ≤ 7 3 [ 12 E + ( 1 + 12 π ) osc ] . 常数并不尖锐,但不依赖相邻单元长度比。这是含数据振荡的效率 ,与此前的可靠性方向相反:估计量的偏大受真实误差和未分辨荷载共同限制。[1]
直觉
可靠性不声称 η 等于 E ,也不声称每个 η K 与 E K 成固定比例。相邻单元会共享跳跃贡献,所以真实误差为零的单元也可能收到正指标。
这不是说振荡就是误差,而是说用单元平均值代替原荷载时,遗漏的影响需要另外控制。振荡小,常荷载公式就有解释力;振荡大,单靠平均荷载无法可靠评估误差。
例子与边界
高频荷载揭示的边界
只用一个单元 ( 0 , 1 ) ,零边界一次元空间是 V h = { 0 } 。取 f m ( x ) = sin ( 2 m π x ) ,则
u m ( x ) = sin ( 2 m π x ) ( 2 m π ) 2 , E m = 1 2 m π 2 , η m = V m = 1 2 . 于是 η m / E m = 2 m π → ∞ :本估计量不可能对任意荷载满足一个与 m 无关的无振荡效率界。椭圆方程把高频荷载的响应压小,荷载的 L 2 范数却没有随频率下降。
此时 f ¯ = 0 、osc = 1 / 2 。若先把荷载替换成单元平均值,再把振荡项删掉,甚至会报告零估计量,而真实误差严格为正。这个反例解释了为什么效率定理中的振荡项具有实际内容。
推论与应用
从误差界走向计算决策
η / π ≤ ε 在本条精确积分、精确求解的模型中足以保证 E ≤ ε 。若采用近似系数 U ^ ,此前的节点插值恒等式一般不再成立,不能不加修改地套用证明。令 r = b − A U ^ ,则到精确离散解的代数误差满足
E alg 2 = r T A − 1 r . Galerkin 正交还给出总能量误差平方等于离散误差平方与代数误差平方之和。裸残差 ‖ r ‖ 2 需要通过逆矩阵或可靠的等价界才能转成这个能量误差。
一旦离散误差占主导,继续求解同一矩阵不会改善网格逼近;应该根据 η K 2 选择单元。下一条的完整加密任务 公理库 自适应有限元的估计、标记与加密 Adaptive finite element method · AFEM · Dörfler marking 在局部荷载的一维 Poisson 问题上完成求解、残差估计、平方指标标记与局部二分,并比较相同误差和相同预算下的网格选择。 会展示:初始四个单元中,只二分有荷载的那个单元,就能取得均匀二分八个单元的相同能量误差,同时也检验“指标较大”与“局部真误差较大”之间并非逐单元恒等。
参考资料
[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 页。分别讨论残差可靠性、局部效率及数据振荡。本条选定的一维权重和显式常数由正文独立证明。
[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 节以局部化残差组织后验误差估计,是这一思路的早期工作;其问题与网格假设不应直接替代本条的具体证明。