浮點數模型
在推理誤差之前,數值分析學家先就「電腦究竟存了什麼」達成一個乾淨的數學圖像。浮點數模型就是這個圖像:每個機器數都具有 value = ±d.ddd...d * base^e 的形式——一個符號、一串有效數字(即尾數/假數,significand),以及一個讓基數點滑動的指數。在以 2 為基底、尾數位元數固定且指數有界的情形下,這描述出一個有限、離散的可表示數集合 F。
關於 F 有兩個最重要的事實。第一,F 是「有限」的:存在最大與最小的正值,且兩者之間只有有限多個數,所以大多數實數都必須被捨入到 F 中最接近的成員。第二,F 的間距「不均」:在 1 附近間隔極小,在一百萬附近間隔較大,在十億分之一附近間隔更小,因為每一步約為 base^e,而指數隨數值大小增長。這張網格以對數方式延展,給出的是大致恆定的「相對」間距,而非恆定的絕對間距。
此模型的回報是「捨入運算的標準模型」:把任意實數 x 捨入到最接近的機器數,記為 fl(x),滿足 fl(x) = x(1 + delta) 且 |delta| <= u,同樣地 fl(x op y) = (x op y)(1 + delta)。這個不等式逐運算套用,是所有捨入誤差分析的基石:它讓你不必追蹤個別位元就能界定整個演算法的誤差,也正是它使「此方法向後穩定」這類陳述可被證明,而非僅是期望。
以 2 為基底、3 個尾數位元(1.b1 b2 b3)、指數為 -1、0、1,則 1 到 2 之間的正機器數為二進位的 1.000、1.001、...、1.111,即 1.0、1.125、1.25、...、1.875——步距為 0.125。但在 2 到 4 之間,同樣的尾數給出 0.25 的步距:數越大,網格越粗。
可表示集合 F 是有限的,並以對數方式延展。
模型 fl(x op y) = (x op y)(1 + delta) 描述的是「每一個」運算,而非整個計算;把它一環環串起來,正是累積捨入誤差與結合律失效悄悄潛入之處。