條件數、穩定性與向後誤差分析

向後誤差(backward error)

這裡有個巧妙的換問法,是可靠計算的動力來源。向後誤差不問「我的答案有多錯?」(那是向前誤差),而是問:「我的答案是哪個稍微不同的問題的精確解?」你算出了某個 y-hat。它不是「你那個問題」的精確解,但也許是某個輸入稍受擾動的鄰近問題的精確解。向後誤差就是這種最小擾動的大小。向後誤差很小是一枚榮譽勳章:它說你的演算法基本上解對了問題,只是把資料推動到雜訊範圍內而已。

精確地說:你算出 y-hat 作為 y = f(x) 的近似。向後誤差是最小的 ||delta-x||(常以相對形式 ||delta-x|| / ||x|| 衡量),使得 f(x + delta-x) = y-hat 恰好成立。換句話說,你把答案「推回」問題中,找出哪個輸入本來會乾淨地產生它,再量那個輸入離真實輸入有多遠。美妙之處在於,你往往能在「完全不知道真實答案 y」的情況下計算或界定向後誤差——這正是它在威爾金森手中成為數值分析主力的原因。

為何這種重新表述會贏:輸入資料本來就不精確(量測雜訊、捨入成浮點數)。若你演算法的向後誤差不大於資料中既有的不確定性,那麼你算出的答案就和精確答案一樣好——你根本無法把你引入的擾動和一開始的雜訊區分開來。這就是向後穩定演算法的全部目標。向前誤差隨後由主法則得出:向前誤差至多等於條件數乘以向後誤差。

一個好的 A x = b 線性求解器會回傳 x-hat,它恰好解出某個受擾動的系統 (A + delta-A) x-hat = b,其中 ||delta-A|| / ||A|| 是機器 epsilon 等級(約 10^-16)。向後誤差就是這個極小的相對擾動——即使因為 A 病態,x-hat 本身離 x 很遠。

向後誤差極小、向前誤差可能很大:這正是在難題上做穩定求解的標誌。

向後誤差小,並不保證向前誤差也小。條件數夾在兩者之間:kappa 很大時,會把極小的向後誤差變成很大的輸出誤差。

又称
backward-error後向誤差反向誤差