有効数字 2 桁の答えを得るために、定数の 3 桁分をとって計算したのに、答えが解答とずれた

数値計算を行う際に、計算の途中では必要な有効数字より一桁多く取って計算するよう指導されていると思います。物理定数等も、一桁多めに取ります。

通常の方法

定数表の値

プランク定数: h = 6.62606957 × 10−34 J s
光速度: c = 2.99792458 × 108 m s−1

Q: 波長 564 nm の光子の運動エネルギーを求めよ

まず数式を立てます。

\displaystyle E = h\nu = \frac{hc}{\lambda}

有効数字は 3 桁なので、定数は 4 桁分をとって(単位をつけて)代入

\displaystyle E = \rm \frac{(6.626 \times 10^{-34}~J~s)(2.998 \times 10^8~m~s^{-1})}{(564 \times 10^{-9}~m)} = 3.52212 \times 10^{-19}~J

答えを 3 桁に丸めて

 E = \rm 3.52 \times 10^{-19}~J

以上で計算は終了です。

念のため、定数を、示された値(有効数字 9 桁)で計算すると

 E = \rm 3.52207 \times 10^{-19}~J

となります。
定数の有効数字 4 桁分で計算したときの結果(E = 3.52212 × 10−19 J) と比較すると、有効数字 5 桁目でずれが出ますが、有効数字 3 桁には影響は出ません。
3 桁分の精度を得るためには、9 桁分計算しなくても4 桁分を計算すれば十分なのです。

ただ、この「有効数字 +1 桁」作戦は、「絶対にうまくいく」わけではありません。

ずれる例(1)

例えば、指数関数のように変数のわずかな違いで値が大きく変わる場合

Q: A=12.444 のとき、exp(A)を有効数字 2 桁で求めよ

有効数字を 3 桁とって計算すると

exp(12.4) = 242801.6 = 2.4 × 105

元の値を使って計算すると

exp(12.444) = 253723.4 = 2.5 × 105

と有効数字 2 桁目でずれが出ます。

ずれる例(2)

差をとった時に、有効数字が減ってしまうことがあります。

Q: A = 12.049, B = 10.050のとき、10/(AB)を有効数字 2 桁で求めよ

有効数字 3 桁をとって計算すると

10/(12.0-10.1) = 10/1.9 = 5.263158 = 5.3

元の値を使って計算すると

10/(12.049-10.050)=10/1.999 = 5.002501 = 5.0

と有効数字 2 桁目でずれが出ます。
これは差をとった段階で、実質的な有効数字が 2 桁になってしまっていることが原因です。

この授業では

以上のように 「有効数字 +1 桁」 作戦は「必ずうまくいく」わけではないのですが、通常はこの方法を使えばよいでしょう。
(指数関数を扱うとき、差をとる際に有効桁が減少するとき、1~1.5 ぐらいの 1 をわずかに超えた値を扱うとき、は有効桁数を +2~3 桁とるなどの工夫をするとなおよいでしょう。)

この授業は実験値を直接扱うわけではないので、有効数字の最後の桁の ±1 程度の誤差にはあまりこだわらず進めています。