next up previous contents
Next: 練習問題 Up: 近似値と誤差 Previous: 誤差の限界   Contents

いろいろな誤差

コンピュータや電卓では, 入力された10進数は内部で2進数に変換されて, 計算などの処理が行われてます. 2進数でも, 10進数の場合と同様に小数が 考えられ, 2進数の101.011とは,

24#24

と表される数のことであり, 10進数で表すと 5.375 です. 10進数の有限小数は, 2進数に変換すると無限小数になる場合があります. 例えば, 10進数の小数0.1を2進数に変換すると

25#25

と, 無限小数になります. コンピュータや電卓には, 0と1を記憶する場所がたくさんありますが, 無限 ではなく有限です. そのため, 上のような無限小数は, 何桁目かで切り捨てや 切り上げなどの, いわゆる「丸める」操作が施された有限小数として記憶されます. また,計算の途中に現れる数値にも,「丸める」操作がしばしば施されます. このような操作のために生じる誤差を, 丸め誤差といいます. 例えば, 電卓で(1 26#26の計算を行うとき, 丸め誤差のために, 正しい答1ではなく, 0.0131999と表示されることが普通です.

コンピュータは, 非常に多い回数の計算を高速で行いますが, 無限回の計算を するわけではありません. 弧度法で表された角 27#27 の三角関数 28#28 は

29#29

と, 項が無限に続く式になります. この式を用いてコンピュータで 28#28 の値を求める場合, 無限回の計算は行えないので, 右辺を有限個の項で打ち切って, その近似値を求めることになります. このような事情のために生じる誤差を, 打ち切り誤差といいます.

コンピュータを利用するときに生じる上のような誤差のほかに, 有効数字の極端な 桁落ちによる誤差もあります. 例えば,有効数字が5桁の非常に近い2つの数

30#30

の差は 31#31 となり, 有効数字が2桁に落ちます. そのため, この差にbを掛けた

32#32

では, 有効数字は最初の2つだけになり, 結果は 33#33と すべきです. 即ち, 相対誤差が, 拡大された事になります.

以上のような誤差は, 1回の計算では微小であっても, 例えば, コンピュータが得意とする繰り返し計算などでは, 計算回数が多くなるに 従って誤差が累積し, 無視できなくなる可能性が多くあります.



2003-04-24