後驗誤差估計子(a posteriori error estimator)
算出近似解之後,一個自然的擔憂是:它錯得多離譜,又錯在哪裡?你無法減去真解,因為你沒有它。後驗誤差估計子僅用算出的解本身回答這兩個問題——它檢視你剛產生的答案,估計每個區域的誤差大小,讓你知道網格的哪些部分可信、哪些該細化。「後驗(a posteriori)」意指「事後」,相對於在你計算任何東西之前就證明的先驗界。
最常見的一類是基於殘差的。即使 u_h 滿足離散方程,把它代回原 PDE 仍會留下一點殘餘——殘差——因為一個分段多項式無法在元素之間或跨元素地精確滿足 PDE。大的殘差(內部殘差大,-u_h'' 與 f 不符,或通量 du_h/dn 跨元素邊的跳變大)標示出解解析得很差的區域。估計子把這些組合成逐元素的誤差「指標」eta_K。你想要的兩項美德是「可靠性」(真誤差被估計子由上界住,所以它絕不會錯誤地宣告成功)與「有效性」(估計子也被真誤差界住,所以它不會對無害的區域過度細化);好的估計子在差一個常數的範圍內可證明兼具兩者。
這正是讓「自適應」成為可能的關鍵,也是現代有限元素軟體的主力。標準迴圈是「求解、估計、標記、細化」:在當前網格上求解,為每個元素算 eta_K,標記指標最大的元素,只細化那些,再重複。回報極為可觀——不再到處均勻細化,你把自由度恰恰花在誤差所在之處,即使對有奇異性的解也能恢復最佳收斂速率。誠實的告誡:估計子帶有未知常數,所以它指出「該在哪裡」細化遠比預測確切誤差量值來得可靠;把 eta_K 當作相對的羅盤,而非絕對的誤差量表。
在一個網格上,殘差估計子可能在環繞凹角的三個元素上報告 eta_K = 0.4,而其他各處 eta_K ~ 0.01。自適應迴圈標記那三個、分割它們、重新求解、再重複——幾個循環後尖角被密集劃網,全域誤差已下降,而平緩的內部完全沒被動過。
求解、估計、標記、細化:估計子把力氣導向誤差真正所在之處。
後驗估計子可靠地指出誤差「在哪裡」大,但帶有未知常數,所以作為誤差量值的絕對量表並不可靠。用它來引導細化,並以獨立的收斂研究來驗證最終精度。