計算精度、正確度と科学的計算手法
UnitCompilerの厳格な計算手法:国際度量衡局(BIPM) 2019年SI基本単位の再定義、法定厳密換算係数、正確度と精密度、端数処理ルール、2進接頭辞と10進接頭辞の違い、IEEE 754浮動小数点演算の制約を徹底解説。
国際単位系 (SI) と 2019 年 BIPM 歴史的再定義
人類の計量史は長年、人工の原器に依存していました。約130年間、質量の世界基準はフランス・セーヴルの厳重な保管庫に安置された「国際キログラム原器 (IPK)」でした。しかし微小な表面吸着や洗浄により、複製原器の間で数十マイクログラムの不可避な経年ドリフトが生じ、精密科学における系統誤差となっていました。
2019年5月20日(世界計量記念日)、第26回国際度量衡総会 (CGPM) により、人工原器を完全に全廃する歴史的なSI再定義が発効しました。現在、7つの基本単位はすべて自然界の不変な基礎物理定数の定義値によって厳密に定義されています。
| 基本単位 | 記号 | 物理量 | 定義に用いられる普遍定数 | 定義数値(厳密値) |
|---|---|---|---|---|
| 秒 | s | 時間 (t) | セシウム133の超微細遷移周波数 (ΔνCs) | 9 192 631 770 Hz |
| メートル | m | 長さ (l) | 真空中における光の速さ (c) | 299 792 458 m/s |
| キログラム | kg | 質量 (m) | プランク定数 (h) | 6.626 070 15 × 10⁻³⁴ J·s |
| アンペア | A | 電流 (I) | 電気素量 (e) | 1.602 176 634 × 10⁻¹⁹ C |
| ケルビン | K | 熱力学温度 (T) | ボルツマン定数 (k) | 1.380 649 × 10⁻²³ J/K |
| モル | mol | 物質量 (n) | アボガドロ定数 (NA) | 6.022 140 76 × 10²³ mol⁻¹ |
| カンデラ | cd | 光度 (Iv) | 周波数540 THzの単色放射の視感効果度 (Kcd) | 683 lm/W |
厳密な換算係数とハブ&スポーク型正規化アーキテクチャ
ヤード・ポンド法などの非メートル法単位は、大雑把な近似値ではなく、国際条約および計量法令によって定められたSI基本単位に対する厳密な分数値です:
- 1 ヤード (yd) ≡ 0.9144 m (厳密定義)
- 1 インチ (in) ≡ 25.4 mm = 0.0254 m (厳密定義)
- 1 常用ポンド (lb) ≡ 0.45359237 kg (厳密定義)
- 1 常用オンス (oz) ≡ 28.349523125 g (厳密定義)
- 1 標準気圧 (atm) ≡ 101,325 Pa (厳密定義)
- 1 バール (bar) ≡ 100,000 Pa (厳密定義)
- 1 熱化学カロリー ≡ 4.184 J (厳密定義)
- 1 電子ボルト (eV) ≡ 1.602176634 × 10⁻¹⁹ J (厳密定義)
ハブ&スポーク型正規化アーキテクチャ
UnitCompilerでは、単位間の直接換算による丸め誤差の蓄積を防ぐため、すべての入力値を一度中央のSI基本単位に集約してから目標単位に変換します:
正確度 (Accuracy) と 精密度 (Precision) および有効数字
🎯 正確度(真値への近さ・偏りのなさ)
系統的誤差の排除。算出結果が国際標準定数にどれだけ合致しているかを示す指標。
🔍 精密度(ばらつきの小ささ・再現性)
中間計算レジスタにおける有効桁数と、同一条件下での計算再現性の高さ。
内部の中間演算はすべて64ビット IEEE 754 双精度浮動小数点(約16桁の有効数字)で処理され、端数処理は最終的な画面表示時のみに適用されます。
端数処理:四捨五入 vs. 銀行型丸め(偶数丸め)
| 丸めアルゴリズム | 中間値 (x.5) の処理規則 | 2.5 の丸め結果 | 3.5 の丸め結果 | 統計的バイアス(偏り) |
|---|---|---|---|---|
| 四捨五入 (Half-Up) | ゼロから遠い方向へ進める | 3 | 4 | + 大量の数値合算時に上方への系統的偏りが発生 |
| 銀行型丸め (Banker's) | 最も近い偶数の整数方向へ | 2 | 4 | 偏りなし(上下50%ずつ均等に分散し相殺) |
2進接頭辞 (IEC) vs. 10進接頭辞 (SI) の区別
ストレージ機器メーカーは10進接頭辞 (1 TB = 10¹² バイト) を用いますが、WindowsなどのOSは2進数(2³⁰ バイト)で容量を計算しながら 'GB' と表示するため、見かけ上の容量減少が生じます:
| 10進単位 (SI) | バイト数 (10ⁿ) | 2進単位 (IEC) | バイト数 (2ⁿ) | 差の比率 |
|---|---|---|---|---|
| キロバイト (kB) | 1,000 B | キビバイト (KiB) | 1,024 B | 2.40% |
| メガバイト (MB) | 1,000,000 B | メビバイト (MiB) | 1,048,576 B | 4.86% |
| ギガバイト (GB) | 1,000,000,000 B | ギビバイト (GiB) | 1,073,741,824 B | 7.37% |
| テラバイト (TB) | 1,000,000,000,000 B | テビバイト (TiB) | 1,099,511,627,776 B | 9.95% |
為替レート:公的参照レートと小売スプレッド
通貨換算レートは欧州中央銀行 (ECB) などの公的機関データとタイムスタンプ付きで定期同期しています。
当サイトのレートは卸売インターバンク市場の仲値です。民間の銀行やクレジットカード会社では1%から10%以上の手数料・為替スプレッドが上乗せされます。
計算機の数値制約 (IEEE 754 浮動小数点演算)
コンピュータは2進法で数値を表現します。分母が2の累乗でない10進小数は、2進数において有限桁で表現できず循環小数となります:
UnitCompilerでは、マシンイプシロン (Number.EPSILON) 境界判定、整数スケーリング中間演算、および正規化フォーマッタにより、浮動小数点特有の丸め誤差を排除しています。
主要な計量標準機関と国際参照規格
国際度量衡局による7つのSI基本単位の公式定義文書。
国際単位系(SI)の適正な使用および換算係数に関する公的指針。
国際標準化機構による物理量・単位・数式表記の国際規格。
コンピュータシステムにおける二進浮動小数点演算の世界的標準規格。