有効数字
有効数字(ゆうこうすうじ、significant figures, significant digits)とは、測定結果などを表す数字のうちで、位取りを示すだけのゼロを除いた意味のある数字である。
誤差を含む桁より上の桁を指す。
有効数字の桁数の例を示す。
0.093827 は有効数字5桁である。
0.0008 は有効数字1桁である。
0.012 は有効数字2桁である。
0でない数字に挟まれた0は有効である。例えば、
60.8 は有効数字3桁である。
39008 は有効数字5桁である。
0以外の数字より右にある0は有効である。例えば、
35.00 は有効数字4桁である
8 000.000000 は有効数字10桁である。
小数点がない数の最後にある0については、有効であるとも有効でないとも受け取れ、曖昧である。例えば、1 000 の有効数字は1桁から4桁のどれとでも受け取れる。このように、整数(小数点がない数)の下位に続いている0を有効数字と見るかどうかは、その文脈によってまちまちである。
この曖昧さは数の後に小数点を置くことで解決できる。例えば、"1 000." と記せば、有効数字4桁であることを意味する。
また、有効数字が何桁であるかを明示するためには、科学的記数法を用いることもできる。
1 × 103 や 1e3 は、有効数字が1桁であることを明示している。
1.000 × 103 は、有効数字が4桁であることを明示している。
なお、有効と見なさない位取りの数字0も重要である。例えば、'0.005' に用いられている0は有効数字とは見なさないが、その桁を表すためには依然として不可欠なものである。
n 桁の有効数字で丸めるのは、端数処理での一形式である。
n 桁の有効数字で丸めるという作業は、単に n 桁に丸めるというだけではなく、異なるスケールの数字を統合して取り扱う点でより重要な技法である。
浮動小数点表示は、コンピュータ上での有効数字表現に丸める典型例である。
0ではない数字で最も左にあるものから桁数を数え始める。例えば、1 000 では '1' から、0.02 では '2' から数え始める。
n 桁の数字を保つ。足りない桁は0で埋める。
適切な手法で丸める。例えば 0.039 を有効数字1桁に丸める場合、結果は 0.04 となる。丸め方の境界線にある場合には、いくつか異なった方法がある。詳しくは、端数処理を参照。
2桁の有効数字に丸める場合、
12 300 は 12 000 となる。
0.00123 は 0.0012 となる。
0.1 は 0.10 となる(右に続く0は2桁に丸めたことを示している)。
0.02084 は 0.021 となる。
0.0125 は、四捨五入では 0.013 である。偶数への丸めでは 0.012 である(数値処理の分野で用いられ、5を丸める際、丸めた先の数字を偶数にすることで切り上げ・切り捨ての向きを均等にし、バイアスがかからないようにしている)。
n 桁の有効数字に丸める際の問題点は、n 桁目の数字が必ずしも明確とは限らない点である。これは、整数部にある0(小数点より左にある0)について発生する問題である。上記の最初の例では、12 300 を丸めれば 12 000 になるが、丸めた後の 12 000 だけを見れば、有効数字は2桁から5桁までのいずれにも受け取れるので、何桁目の数字を丸めたのか不明確となる。
丸めのレベルを明示するときに科学的記数法を用いれば、あいまいさを減らすことができる。例えば、上の例で 1.2 × 104 とすれば、有効桁数は2桁であると明示できる。
丸めのレベルは、例えば、"20 000 to 2 s.f."(significant-figures の略語)のように有効桁数が2桁であると特別に明示することも可能である。最後の有効数字に下線を引く("20000" など)という方法もあるが、さほど一般的でない。
いかなる場合にも最良なアプローチは、不確かさと明確さを分けて記述することである。例えば、 20 000 ± 1% という書き方をすれば、有効数字のルールを適用しなくても明瞭な記述ができる。
もし、短距離走者が 100 mを 11.71秒で走ったら、平均の速さはいくらになるだろうか? 電卓で距離を時間で割ると 8.539 709 65 m/s という値が出てくるが、この値をそのまま記述するのは不適切である。
仮に 100 m が完全に正しい値であり、11.71 秒の最下位の桁に不確かさがあって、11.705 秒以上 11.715 秒未満の値を丸めたもの、すなわち 11.710(5) 秒であるとしよう。
時間の相対不確かさは 0.005 s / 11.71 s = 4.3 × 10−4 であり、これがそのまま速さの不確かさに伝播する。
その絶対値は 8.53970965 m/s × (4.3 × 10−4) = 4 × 10−3 m/s であるため、不確かさを含めた速さは 8.540(4) m/s となり、有効数字のみ(不確かさのない小数点以下第二位まで)を記すと 8.54 m/s となる。
もし距離の方も不確かさを含むのであれば、速さの不確かさは更に大きくなる。たとえば不確かさが 0.5 m の場合、合成した相対不確かさは \sqrt{(0.5~\mathrm{m}/100~\mathrm{m})^2 + (0.005~\mathrm{s}/11.71~\mathrm{s})^2} = 5.0 \times 10^{-3} となり、不確かさを含めた速さは 8.54(4) m/s となる。
もし答えの精度が重要でないならば、正確に分かっていない桁も続けて 8.5397 m/s のように記すのが安全である。
しかし、有効数字のルールを厳格に適用すれば、8.539 709 65 m/s という表記は 10 nm/s の桁まで速度が分かっていることを意味する。このような表記は、測定精度に比べて不適切な書き方である。この場合、有効数字3桁 (8.54 m/s) で結果を報告すれば、速度は 8.535 m/s以上、8.545 m/s未満であるのだと分かってもらえる。
同様に、1000 mを53.7秒で走った場合の平均のスピードについて、18.621 973 9 m/s という値を用いるのは不適当であり、有効数字3桁として、18.6 m/s とする。
数値は、読みやすいように丸められることがよくある。「18.148% と 35.922% を比べよ」というよりも、「18% と 36% を比べよ」というほうが、相手に通じやすい。
同様に、予算を眺める際に、
部署A: $185 000
部署B: $ 45 000
部署C: $ 67 000
となっているほうが、次のように書かれているよりも理解するにも比べるにも簡単である。
部署A: $184 982
部署B: $ 44 689
部署C: $ 67 422
曖昧さを減らすには、データを最も近い桁数の単位にして記すこともよく行われる。
収益(単位: 千ドル):
部署A: 185
部署B:  45
部署C:  67
有効数字に注意して計算する際には、重要なポイントがある。乗除算をするときは、有効桁数を測定値の中で最も有効桁数が少ないものに合わせるという点である。
以下のように厳密に求まっていたり定義されている値については、有効桁数を少なくとも気にすることはない。あくまでも、測定の不確かさが存在する測定値の有効桁数を生かすのが、有効数字の概念(不確かさの桁の明示)だからである。
中途半端な値になり得ない、個数のような整数値(例えば、バッグの中のオレンジの数)
法的・制度的に定義された換算係数(例えば、計量単位の換算係数)
例えば、1トロイオンスは、日本では、0.031 1035 kg と定義されている(英米では、0.031 103 4768 kg と定義)。
例えば、地球の扁平率は、1/298.257 222 101、地球の赤道半径は 6 378 137 m(正確に)、と定義されている。
任意に定義されている定数(例えば、ミリは0.001倍 (10-3倍)、キロは1000倍 (103倍))
線形操作(例えば、3倍や1/2倍)
数学定数(例えば、円周率 π やネイピア数 e)
なお、上述のような定数とは異なり、物理定数でも万有引力定数のようなものには有効桁数がある。なぜなら、これらは物理的に測定された値から求められた数値だからであり、有効数字のルールが適用される対象となる。
計量学や統計学の専門家でない人は、有効数字の有用性を過剰に考えすぎであって、高校や大学の化学テキストでは研究室での実状に比べて過剰に受け止められている。
応用分野の科学者は、不確かさを表現するのに一般的に 1.234±0.055 または同じ意味で 1.234 (55) という表現を用いる。ポイントは、公称値 (1.234) と、不確かさ (0.055) を別個の数値として表現しているところにある。これら2つのことを正確に分離して表現するのは、公称値と不確かさを有効数字のルールに頼って1つの数字に盛り込もうとするよりも繊細な取り扱い方である。
この記事の冒頭に述べたように、有効数字というのは丸めの一種として受け止められており、最終的な答えを丸めたものが、不確かさに比べて支配的であってこそ意味がある。不確定さに比べて丸めた結果が支配的にならない場合には、これは重大な問題となる。とはいえ、測量学のように実験的な研究においては、丸め誤差が支配的になるのはよほどひどい実験方法であるから、それを避けて丸め誤差を減らすのは容易である。それでもなお丸め誤差が支配的であったとしても、それを示すために 1.24(½) または同じ意味で 1.24(⁄) と明示するのがよい。
有効数字というのは有効数字の計算規則での根本をなす手法なのであるが、記事「有効数字の計算規則」その他で議論されるように、有効数字のルールだけを用いて不確かさを表現する確固たる手法は一般には存在しない。
コンピュータ科学や数値解析においては、保護桁 (guard digits) を用いるのが良い手である。つまり、何段階かに分けて計算をする際に、N 桁の有効数字に毎回丸めるのではなく、もう1桁かもう少し多く桁を残して丸めて次の計算に移るのである。これは有効数字とは相容れない概念ではあるが、丸め誤差を毎回積み重ねてしまう危険は減らせる。計算途中の有効桁数をM 桁とした場合、M-N 保護桁と表現する。詳細はActonの記述を参照。
科学者が不確定な量をいかに正確に表そうとするかの良い例が、NISTの抄録に見られるような物理定数である。これらは、有効数字のルールに頼らず、公称値と不確かさを分離して記している。
不確かさをいかに適切に表現するかという手順や、これらの手順を用いる論拠については、参考文献を参照してほしい。