2012年5月30日水曜日

有効数字について考える

調べたら有効数字について初めて習ったのは中1の数学でした。今は取り扱いが変わっているかもしれません。

有効数字は、測定値などを基に数値計算をするときに意味のある桁数を考えるというものです。2つの数値の加減や乗除についてのルールは中1の数学の教科書にも載っています。

ところで abc + def + ghk といった計算を手計算する場合を考えます。このとき、a×b=αを求め、それにcを掛けた値βを求め、同様に def=γ, ghk=δ を求めてから、それらの和を求めるといった場合が考えられます。それではαやβ、γ、δが切りの悪い数値になる場合どこまでの桁を計算すればよいのでしょうか。
一つの方法は、有効数字がn桁の時、n+1桁までで計算を打ち切り、n+2桁目を計算しないという方法です。もう1つの方法はn+2桁まで計算し、n+1桁になるよう丸める(たとえば四捨五入する)という方法です。どちらも計算途中では有効数字よりも1桁多く計算すると呼んでいます。個人的には前者を習った記憶があるのですが、後者の説明をgoogle検索で見つかるページでは多く見かけます。計算としては前者が楽ですし、2回丸めてしまう失敗も少なくなるので、前者で十分なら悪い話ではありません。そこで少し考えてみました。厳密には真値からの誤差を検討するべきですが、2つの計算方法に差があるのかないのかを検討しています。

有効数字が2桁の場合を考えます。3桁までで計算を打ち切ったとき(4桁目を切り捨てに相当)と4桁目まで計算して四捨五入した値の差は最大1%です(4桁まで計算したときに1.005~1.009のとき、打ち切りで1.00になるか四捨五入で1.01になるかが最も大きい差になる)。2つの計算方法での差の割合は以降で加減を繰り返しても変わりません。そして最終的には2桁に計算を丸めるので、3桁までで打ちきりと、4桁まで計算して4桁目を四捨五入するのは変わりません(差は1%でしかないので)。

丸めた次の計算が乗除の場合には2つの値(1.00と1.01)の差による計算値の差は乗除の回数Mに依存し、1.01^Mで近似できます。最終的に四捨五入して丸めるとき、5%値が違うと結果が違う可能性があります(たとえば1.00と1.05)。1.01^M=1.05となるのはM=4.90のときなので、4回以内の掛け算なら2つの計算方法に差はありません。

二つの数値が9.99と9.98のような場合を考えると計算値の差は1.001^Mで近似できます。このときも乗除の結果が5%違うと結果が違う可能性があります。1.001^M=1.05となるのはM=48.8なります。

ちなみに有効数字が3桁の場合に 1.001^M=1.005 になるのは M=4.99 のときです。

厳密な証明ではないので抜けがあるかもしれませんが、現代の手計算(電卓併用)の範囲であれば、結果に差がないのでn+1桁目で計算を打ち切っても十分なのかなと考えます。電卓で一気に計算するなら、たいてい乗除についてはもっと多くの桁まで計算してからメモする(メモする桁を電卓の計算桁より減らす)でしょうし。

0 件のコメント:

コメントを投稿