基礎:演算法、近似與誤差
離散化誤差
離散化誤差是你把連續問題——定義在連續的點上、帶有導數與積分——換成定義在有限格點上、帶有和與差的離散問題時,特別產生的截斷誤差。它是連續問題的答案,與你實際交給電腦的離散問題的答案之間的落差。
連續數學活在無窮多個點上;電腦只能持有有限多個。於是你鋪下間距為 h(空間)或步長(時間)的網格,用有限差分公式近似每個導數,用求積和近似每個積分,並在格點上用代數系統近似微分方程。每一次這樣的替換都引入隨間距縮放的誤差——二階格式通常是 O(h^2)——因此隨著網格加密,離散解收斂到真正的連續解。例如,用 (u(x-h) - 2 u(x) + u(x+h))/h^2 近似熱方程的二階導數,在每個格點上帶有 O(h^2) 的離散化誤差。
離散化誤差重要,因為在解微分與積分方程時,它通常是主導且可控的誤差,也因為加密網格以縮小它需要花費工作量——在三維中把 h 減半可能讓未知數變為八倍。一個核心做法,精度階研究,是加密網格並確認誤差以方法承諾的速率下降;若不然,你的程式或格式有錯。注意它與捨入的對比:加密網格減少離散化誤差,卻增加總算術量,使捨入緩慢累積——加密只在一定程度內有幫助。
用 n 個梯形的梯形法則近似 sin(x) 從 0 到 pi 的積分:n = 10 時誤差約 0.0082,n = 20 時約 0.0021——n 加倍誤差變 1/4,符合該法則 O(h^2) 的離散化誤差。
從連續體移到有限網格的誤差,隨網格加密而消失。
離散化誤差是截斷誤差的一種——這兩個名稱有所重疊。確認它以預測速率下降(精度階研究)是驗證偏微分或常微分方程程式正確性的標準方法。
又称
另见