截斷誤差(truncation error)
當你把導數換成差商時,你悄悄丟掉了函數真實行為的一部分。截斷誤差正是你丟掉的那一部分——微分算子與你用來取代它的差分算子之間的落差。這個名字來自泰勒定理:一個差商等於導數加上一條無窮的高階項尾巴,而公式只保留前端、把其餘的「截斷」掉。
把這點講具體。泰勒展開給出 u(x+h) = u(x) + h u_x + (h^2/2) u_xx + (h^3/6) u_xxx + ...。減去 u(x)、除以 h,前向差分就等於 u_x + (h/2) u_xx + ...——於是它把導數高估了約 (h/2) u_xx,誤差正比於 h。中央差分由對稱性會消去 h 這一項,留下正比於 h^2 的誤差。若一個格式的局部截斷誤差是 O(h^p),我們就說它是 p 階:把精確解代入離散方程,剩下的殘差會像 h^p 那樣縮小。階數越高,加密網格時誤差下降越快——把 h 減半會把一階誤差砍成一半,卻把二階誤差砍成四分之一。
截斷誤差是數值偏微分方程理論的三大支柱之一:當一個格式的截斷誤差隨網格加密而趨於零時,就稱它為相容。相容是必要的,但單靠它並不足以保證數值解逼近真解——一個相容的格式若不穩定,仍可能爆破。這正是拉克斯等價定理的全部內容,也是為何截斷誤差本身永遠無法判定一個方法是否可行。
標準的二階導數樣板 (u(x+h) - 2u(x) + u(x-h))/h^2 等於 u_xx + (h^2/12) u_xxxx + ...。它的截斷誤差是 (h^2/12) u_xxxx——二階,且在四階導數(曲率之曲率)較大處明顯更大。
一個二階樣板;其誤差由真解的四階導數所主導。
不要把局部截斷誤差(單一步的殘差)與全域誤差(最終答案中累積的誤差)混為一談。它們的階數可以不同,一個在局部表現良好的格式,若不穩定,在全域上仍可能毫無用處。