條件數、穩定性與向後誤差分析
向前誤差經驗法則(forward-error rule of thumb)
若你只從整個主題記住一條不等式,就記這條:向前誤差至多等於條件數乘以向後誤差。白話說,你答案有多錯(向前),上界是問題有多難(條件性)乘以你演算法有多好(向後誤差)。這是把三個核心概念綁在一起的主帳目恆等式,讓你不必計算真實答案就能預測準確度。
用法是:估計你方法的向後誤差(向後穩定演算法大約就是單位捨入,雙精度約 10^-16),估計問題的條件數 kappa,然後相乘。乘積就界定了相對向前誤差。舉例:對 kappa(A) ~ 10^8 的 A x = b 做向後穩定求解,相對向前誤差約為 10^8 乘以 10^-16 = 10^-8——所以 16 位裡約有 8 位正確有效數字。條件數直接告訴你有多少位數字能存活。
誠實地把它當成經驗法則,而非嚴格定理。它是數量級的估計:真正的界限帶著與問題相關的常數,最壞情況的方向可能不會被命中,而且條件性是個一階(線性化)概念,對大擾動可能誤導。儘管如此,它在實務上出奇地有用,並把核心訊息講得清清楚楚——要得到準確答案,你需要「同時」擁有良態問題「和」穩定演算法。任一缺席都足以毀掉結果。
你對一個特徵值條件數約為 10^4 的矩陣,跑一個向後穩定的特徵值常式(向後誤差約 10^-16)。預測的相對向前誤差約為 10^4 乘以 10^-16 = 10^-12——可預期約 12 位正確數字。若把條件性提高到 10^12,你就只該相信大約 4 位數字。
一次相乘,就把「多難」與「多好」變成「我能信任幾位數字」。
它是估計,不是保證——常數與最壞情況方向被省略了,且條件性是個線性化。但其定性訊息(準確度需要良好條件性與穩定方法兩者兼具)是精確的。
又称
另见