計算誤差とは?桁あふれ・丸め・桁落ち・情報落ち

誤差の種類

コンピュータで行う数値計算には、メモリの制限や計算精度の問題から誤差が発生します。ここでは5つの誤差について解説します。

桁あふれ誤差

演算結果が、コンピュータの扱える桁数の最小値や最大値を超えることによって起こります。最小値を超えることをアンダーフロー、最大値を超えることをオーバーフローと呼びます。

丸め誤差

表現できる桁数を超えたときに、四捨五入や切り捨て、切り上げを行うことによって起こります。

打切り誤差

計算処理を途中で打ち切ることによって起こります。円周率のように延々と続く数を、予め定めた桁で打ち切ります。

けた落ち

ある数値に、有効な桁数がほぼ等しい数値を引いた時に、有効桁数が減ることによって起こります。

\(0.\color{red}{323}\)\(\times10^5-0.\color{red}{321}\)\(\times10^5=0.00\color{red}{2}\)\(\times10^5\)

指数表記に直すと下位の桁が不明になるため、赤字のとおり、有効桁数が3桁から1桁に変わります。

情報落ち

有効桁数の大きな数と小さな数の加減算を行ったときに、有効桁数の小さな値が計算結果に反映されないことによって起こります。例えば下の式を計算するとき

\(0.321\times10^5+0.224\times10^{-5}\)

指数をそろえて計算します。
\(0.321\times10^5+0.000000000224\times10^{5}=0.32100000224\)

答えの指数表記を有効桁数でなおすと、0.321×10の5乗となり、計算がなかったことになってしまいます。

コメント

タイトルとURLをコピーしました