兩次秤重幾乎一樣,相減就能知道少了多少嗎?
先把兩張讀數記下來,再看捨入怎樣改變那個很小的差。
你想知道一個袋子前後少了多少重量,於是稱兩次、把數字相減。如果記錄時省掉了末尾幾位,小變化就可能被抹掉。這裡把書中的兩個數字借來公斤讀數,只做一個理想數位實驗:不模擬真實秤的測量誤差。
開啟互動課程 →
先猜一下
兩張稱重記錄都寫 6.927 kg,能斷定兩次重量完全相等嗎?
查看答案與解釋
不能,末尾可能被捨掉了 — 記錄相同只能說明保留的這些位元相同;更細小的差異可能被舍入隱藏。
再把體驗和科學連結起來
先看看原始差值
取書中的兩個數。它們都接近 7,可我們想知道的是它們之間約 0.00002 的間隔。
6.9273649 − 6.9273451 = 0.0000198
讓輸入先經過捨入
拖曳保留位數。兩個數分別被捨入,末尾丟掉的部分並不相同。
先舍入 a 與 b,再計算 a − b
把差值局部放大
上方是原始差值,下方是捨入後差值。輸入看起來只差一點,結果的相對誤差可能很大。
相對誤差 = |估計差值 − 原始差值| / 原始差值
顯示位數不能找尋訊息
把 0.00001 寫成 0.000010000000,不會恢復已經丟掉的輸入。計算中保留精度,展示時再舍入。
更多小數 ≠ 更小誤差
把計算鏈展開
Δ = a − b Δ舍入 = round(a) − round(b) 相對誤差 = |Δ舍入 − Δ| / |Δ|
這裡的 round 表示依所選有效數字舍入。兩數相近時,分別捨去會遺失差值中的信息;Δ=0時不能用此相對誤差式。
試一試
先選“只記四位”,再選“記六位”和“保留原數”。袋子的兩個原始值一直不變,改變的只是你記下多少位。
動手看一遍 →
符號不用背
- 有效數字
- 從第一個非零數字起計數,區別於小數位數
- a − b
- 本課關注的差值
- 相對誤差
- 誤差與原始差值之比,介面以百分數表示
演算法、精確度與適用範圍
重現第 2 章印刷頁 16 的十進制舍入範例。原始差值以整數比 198/10000000 表示,避免以相同浮點減法作為真值。滑桿模擬十進制有效數位舍入,不模擬某種完整硬體浮點格式。本課程沒有對應 AA+ 專用函數,數值由整數十進制獨立路線核驗。圖的橫軸只畫差值,不是原始數值的位置。 情景说明:借用 Meeus 第 2 章原数 6.9273649 与 6.9273451,并赋予 kg 作为教学情境;不是实际称重报告,也不宣称现实秤有这些有效位。這裡只模擬十進位記錄舍入,未加入儀器雜訊或誤差。
我的理解檢查
把記錄從四位改到六位,實驗裡發生了什麼事?
保留下來的數字 — 兩個原始數不變;變化的是我們把它們記錄得多細。
6.92736 kg 減去 6.92735 kg,是多少毫克?
10 mg — 差是 0.00001 kg。 1 kg = 1,000,000 mg,所以是 10 mg。
一台真實秤顯示很多小數,就一定測得同樣準確嗎?
不一定 — 顯示位數不等於測量準確度;儀器校正、雜訊和測量條件也會帶來誤差。本課只示範舍入。
小差值最怕輸入先被捨粗了;多寫幾個零,補不回已經丟掉的資訊。
Jean Meeus · Astronomical Algorithms, 2nd ed. · 第 2 章