以下は、有効数字(significant digits/figure)について、ぼくの試みた解説です。とんでもないまちがいがあるかもしれません。その分にはどうぞ、いろいろご教示願えれば幸いです。
まずはよく知られた有効数字の計算のルールを2つ挙げておきましょう:
例:5.63 + 0.574 = 5.63 + 0.57 = 6.202.掛け算(割り算)の時は、有効ケタ数を揃えて計算する。
例:3.6 × 2.574 = 3.6 × 2.6 = 9.4 (← 9.36)
そしてこれに加えて(高校では習わないようですが)次のルールが行われます。
これは6.88×3.03×0.761 という計算をする時、
6.88×3.03 = 20.8 (← 20.8464)
20.8×0.761 = 15.8 (← 15.82・・・)
とせずに、
6.88×3.03 = 20.85 (← 20.8464)
20.85×0.761 = 15.9 (← 15.86・・・)
としようということです(途中結果を四捨五入しないで電卓で計算してみてください。あるいは(6.88×0.761)×3.03という風に計算の順序を入れ替えて計算してみてください)。
もっといえば、0.8×0.7 という計算をするのに、一度は 0.56 という答えを出してから、有効数字1ケタの 0.6 をえるという手順が、これに相当しますし、 下のような筆算でも、その一端を見ることができます。下では4.36 × 6.43という計算を、4.36 × (6.00 + 0.40 + 0.03) という風に考えて分けて実行し、上記のルールを適用しているわけです。
4.36
×6.43
0.12 ← 4 × 0.03
1.76 ← 4.4 × 0.40
26.16 ← 4.36× 6.00
28.04 → 28.0
有効数字が3ケタの量に掛け算(割り算)を施した時 1 をわずかに越える数値になったとしましょう。この時、やはり結果も3ケタに丸めるべきでしょうか?
具体的に、こんな例を考えて見ましょう。
こうした問題は、主に掛け算(割り算)では相対誤差が問題になっているのに、足し算(引き算)では、誤差の絶対値が問題になっていることに由来します。厳密な取り扱いは厄介ですが、こういうことを考えてみてください。
②相対誤差は、1.00 から 9.99 までその対数に従って変化する。
③典型的な数値として 5.00 をとると、log10 a = log10 5 - 0.5、として a(= 1.58)で有効数字の桁を変化させれば、有効数字の掛け算(割り算)の誤差の不連続性を小さくできる。
人によって方針は若干違いますが、掛け算(割り算)の時、1.0 から 1.5 の間では、有効数字を1ケタ余分に書くという人が多いようです。こうした問題があるので、有効数字がいろいろからむ演算結果について正確なところを議論しようとすると、有効数字より、もっと定量的な形で誤差を評価してやることが必要になることを、記憶に留めておいてください。
有効数字の丸め方について混乱があるようなので付記しておきます。たとえば、0.42 と 0.43 の平均 0.425 を、0.42 とすべきか、それとも 0.43 とすべきかです。
これにはいろんな考えがあり得るのですが、標準的に採用されている(日本の工業規格ではJIS Z 8401)のは次のような考え方です:
②丸めた結果が偶数になるようする。
①の方は、0.463 を 0.46 にしようという話。まさに“四捨五入”で、たぶんみんな納得する所でしょう。②はどういうことを言っているかというと、先の 0.42 と 0.43 の平均 0.425 の扱いについて、単純に“五入”せずに、0.42 にしようということです。もう少しこの“こころ”を言うと
ということです。先の例に即していうと、0.425 を 0.42 か 0.43 かと迷ったのは、0.40 から 0.50 まで 0.01 刻みの目盛りだったからです。それを、0.02 刻みの目盛りだとすれば、0.40、0.42、0.44、0.46、・・・のどれに近いかですから、これは問題無く0.42 ということになる、というわけです。(なお計算機の普及にともない、JISでも単純四捨五入が許容されるようにはなってきていることを付記しておきます)
4.14を10倍することを考えましょう。この時4.14を10回足すならば、有効数字の取り扱いの原則からして、結果は41.40と4ケタになり、掛け算だとみなせば、結果は3ケタで、41.4です。どちらがもっともらしいでしょうか?またそれはなぜですか?