
[AP]計算誤差
丸め誤差(rounding error)
数値に対して、切り上げ・切り捨てなどの単数処理を行った際に生じる誤差。
例
1.23456 に対して、小数点第二位で四捨五入を行うと、
1.2
3456≒ 1.2
となる。この時、切り捨てられた0.03456が誤差となる。
打ち切り誤差(trancation error)
無限級数(0.333333…..など)が答えになる計算において、計算を途中で止めてしまうことによって発生する誤差。
例
1÷3 の計算において、解は0.333333…..の無限級数になる。これをデータに落とし込む際、メモリ容量などの都合上途中の桁で端数処理しなければならない。
そのため、端数処理された桁以降のデータは誤差となる。
情報落ち(infomation loss)
浮動小数点の計算など、精度に限りがある条件下で、絶対値の大きい値と小さい値を加減算したとき、小さいほうが無視されてしまうことによって起きる誤差。
例
有効桁数を10桁とする。10^10 + 0.1 の計算において、解は
10^10 + 0.01 = 10,000,000,000.1
となる。しかし、データ上では上十桁しか表せないため、
10,000,000,00/0.000 (/までが有効桁)
となり、0.01が誤差となる。
桁落ち(cancellation)
互いに丸め誤差を持つ、ほとんど等しい値の減算において、有効桁数が減少することによって起きる誤差。
例
平方根の計算などがわかりやすい。
√1000 - √999 = 0.031622781…
とする。
これを有効数字8桁で計算する際、以下のようになる。
1.√1000, √999を有効数字8桁で丸める
√1000 ≒ 31.638584
√999 ≒ 31.606961
2.減算する
√1000 - √999 = 31.638584 - 31.606961 = 0.031623
結果として有効桁は5桁まで落ち、小数点第六位以降の桁は誤差として消えているのがわかる。