こんばんは!きよです!
今日は応用情報技術者試験の勉強で、
誤差について勉強したことをメモしていきたいと思います。
■参考文献(アフィリエイトリンクです!良かったら購入してください!)
平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)
■誤差とは
コンピューターは、数値を表現するbit数が有限である。
そのため、真値(正しい値)と計算して出した値との間に、
差異が生まれることがある。
それを誤差という。
■誤差の種類
・丸め誤差
– 数値を有限bit数で表現するため、四捨五入や切り捨てを行うときに発生する
例:0.1(10) を 2進数に変換すると無限少数となるため丸め誤差が発生する
例:飲み会とかでお金を集めるときにキリの良い数字にするのも丸め誤差
・情報落ち
– 絶対値の大きな数と小さな数の加減算を行った際に発生する
– 指数部の大きい方に小さいほうが合わすため発生する
例:1234 + 5.678
①浮動小数点数表現に直す
1234 = 0.1234 * 10^4
5.678 = 0.5678 * 10^1
②指数の大きいほうに小さい方を合わせる
1234 = 0.1234 * 10^4
5.678 = 0.0005678 * 10^4
③有効桁数を4としたとき「0.0000678」が切り捨てられる
0.0005678 * 10^4 → 0.0005 * 10^4
④計算する
0.1234 * 10^4 + 0.0005 * 10^4 = 0.1239 * 10^4
・対策
情報落ちを防ぐためいくつかの数値を加減算する場合は、
絶対値が小さい順にデータを並べ替え計算するなどする。
・桁落ち
– 絶対値のほぼ等しい値の差を求めたとき、有効桁数が大きく減少するため発生する
例:12.3456 – 12.3045 有効桁数は6桁
①浮動小数点表現にする
12.3456 = 0.123456 * 10^2
12.3045 = 0.123045 * 10^2
②0.123456 * 10^2 – 0.123045 * 10^2 = 0.0411 有効桁数が3桁になっている
・対策
分子の有理化をすることで桁落ちを防ぐことは可能。
※有効桁数:有効数字の桁数
例えば「1234.56」という数値があった場合、小数点第3位を四捨五入した値であれば有効桁数は「6」
・打切り誤差
– 浮動小数点数表現の計算処理を途中で打ち切ることで発生する誤差
ちょっと僕には難しいので省略。。。orz
■絶対誤差
・真値と計算値との差を表す誤差のこと
・計算方法
計算値 – 真値
■相対誤差
・真値に対して誤差が占める割合のこと?
・数値の大きさや桁数が違う場合に同じ条件で評価することができる
・計算方法
(計算値 – 真値) / 真値
計算はやはり苦手だなと感じました。。
もっと勉強が必要ですね。。
最後にまたアフィリエイトリンク貼らせてくださいorz
■参考文献(アフィリエイトリンクです!良かったら購入してください!)
平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)
以上、よろしくお願いいたします。