今回は、演算誤差である『けた落ち・情報落ち・丸め誤差・打切り誤差』についてそれぞれの意味と覚え方を解説していこうと思います。
最後に簡単な演習問題も載せているので、知識の定着を図るためにぜひ活用してみてください。
この記事でわかること
- 桁落ちについて
- 情報落ちについて
- 丸め誤差について
- 打切り誤差について
- 演習問題
用語解説
では、先ほど挙げた4つの用語について一つずつ簡単に説明していこうと思います。
けた落ち
けた落ちとは、値がほぼ等しい数値同士の引き算において、有効数字の桁数が減少することを指します。
例えば、以下のような場合を考えてみましょう。
$$0.6582\times10^{5} - 0.6581\times10^{5} = 0.0001\times10^{5} = 0.1\times10^{2}$$
有効数字4桁の数同士の引き算を行った結果、有効数字2桁の数字に変化しました。
このような現象を『けた落ち』と言います。
けたが減るのでけた落ちと覚えておきましょう。
情報落ち
情報落ちとは、値の大きさが離れすぎている数値同士の足し算・引き算において、絶対値の小さい数値の方が演算結果に反映されないことで生じる誤差です。
こちらも、例を用いて考えていきましょう。
$$\begin{align}
0.01\times10^{5} + 0.65\times10^{-2} &= 0.01\times10^{5} + 0.000000065\times10^{5} \\\\ &= 0.010000065\times10^{5}
≒ 0.01\times10^{5}
\end{align}$$
上記の例を見ると、絶対値の小さい『0.65*10^-2』が演算結果に反映されていないことがわかると思います。
このように、『0.65*10^-2』という情報があたかも存在していないかのように扱われるのが情報落ちです。
丸め誤差
丸め誤差とは、四捨五入・切り捨て・切り上げのいずれかを行うことによって生じる誤差のことです。
例えば、以下のような場合に発生しますね。
コンピューターには、桁数が多すぎると数値を扱うことが出来なくなってしまうのです。
なので、ある程度の桁数に丸めてあげないといけません。
そのため、このような誤差のことを丸め誤差といいます。
打切り誤差
打切り誤差とは、演算の結果が循環小数などの一生続くような数値になった場合に、一定の桁数で演算を打ち切ることによって生じる誤差のことです。
このように、ある桁数で打ち切りにしてしまうため、打切り誤差といいます。
演習問題
続いては、演習問題です。
解答・解説も載せているので、ぜひ実際に解いてみて知識を定着させてみましょう。
演習問題①
けた落ちの説明として、適切なものはどれか。
[基本情報技術者平成22年秋期 午前問2]
ア. 値がほぼ等しい浮動小数点同士の減算において,有効けた数が大幅に減ってしまうことである。
イ. 演算結果が,扱える数値の最大値を超えることによって生じる誤差のことである。
ウ. 数表現のけた数に限度があるとき,最小のけたより小さい部分について四捨五入,切上げ又は切捨てを行うことによって生じる誤差のことである。
エ. 浮動小数点の加算において,一方の数値の下位のけたが結果に反映されないことである。
演習問題②
数多くの数値の加算を行う場合,絶対値の小さなものから順番に計算するとよい。これは,どの誤差を抑制する方法を述べたものか。
[基本情報技術者平成17年春期 午前問4]
ア. アンダーフロー
イ. 打切り誤差
ウ. けた落ち
エ. 情報落ち
演習問題③
浮動小数点形式で表現された数値の演算結果における丸め誤差の説明はどれか。
[基本情報技術者平成19年秋期 午前問4]
ア. 演算結果がコンピュータの扱える最大値を超えることによって生じる誤差である。
イ. 数表現のけた数に限度があるので,最下位けたより小さい部分について四捨五入や切上げ,切捨てを行うことによって生じる誤差である。
ウ. 乗除算において,指数部が小さい方の数値の仮数部の下位部分が失われることによって生じる誤差である。
エ. 絶対値がほぼ等しい数値の加減算において,上位の有効数字が失われることによって生じる誤差である。
演習問題④
けた落ちによる誤差の説明として,適切なものはどれか。
[ソフトウェア開発技術者平成17年秋期 午前問3]
ア. 指定した有効けた数で演算結果を表すために,切捨て,切上げ,四捨五入などで下位のけたを削除することによって発生する誤差
イ. 絶対値の非常に大きな数値と小さな数値の足し算や引き算を行ったとき,小さい数値が計算結果に反映されないために発生する誤差
ウ. 絶対値のほぼ等しい二つの数値の絶対値の差を求めたとき、有効桁が減るために発生する誤差
エ. 浮動小数点表示された数値の計算処理を有限項で打ち切ったために発生する誤差
演習問題⑤
浮動小数点表示の仮数部が23ビットであるコンピュータで計算した場合,情報落ちが発生する計算式はどれか。ここで,( )2内の数は2進法で表示されている。
[基本情報技術者平成20年春期 午前問5]
ア. (10.101)2×2-16-(1.001)2×2-15
イ. (10.101)2×216-(1.001)2×216
ウ. (1.01)2×218+(1.01)2×2-5
エ. (1.001)2×220-(1.1111)2×221
まとめ
今回は、けた落ち・情報落ち・丸め誤差・打切り誤差についてその意味と、それらの用語に関する演習問題をご紹介してきたのですがいかがだったでしょうか。
それぞれの用語をまとめると、
- けた落ち:値がほぼ等しい数値同士の減算で発生する、有効数字が減少することによって生じる誤差
- 情報落ち:絶対値が大きく離れている数値同士の加減算で発生する、片方を無視することによって生じる誤差
- 丸め誤差:四捨五入・切り捨て・切り上げによって生じる誤差
- 打切り誤差:無限小数を途中で打ち切ることによって生じる誤差
となります。
よく覚えておきましょう。