演算誤差

学習の目的

  • 1. 誤差とは

  • 2. 誤差の種類

コンピュータで計算すると実は正確ではないことがあります。どのように正確でないのか学習します。

1. 誤差とは

誤差とは、「理論的に正しい値(真の値という)」と「実際の値(測定値という)」との差のことです。

例えば、1,000円の物を買った時に3人で割り勘するとします。1人当たり何円分になりますか?

3人で割り勘だから、1,000円を3で割ります。

1,000 ÷ 3 = 333.3333333・・・
一人当たり333.333・・・円なので、2人が333円、1人が334円です。

そうです。計算上は333.333・・・円ですが、実際に0.33333・・・円は払えないので333円と334円にしますよね。

この時の333.3333・・・は理論上の値(真の値)、333円と334円は実際の値(計測値)となり、真の値と計測値の差が誤差と呼ばれます。

確かにちょっと違ってますけど、誤差が出ることになにか問題があるのですか?

誤差が起こることは仕方のないことなのですが、誤差は本来はない方が良いものです。
その理由を確認しましょう。

現実の世界で誤差は必ず発生します。誤差は必ずしも悪いことではないですが、目的や場面によっては注意が必要なものです。

例えば、人工衛星などロケットを飛ばす時に角度が1度違っていたとします。角度の1度は少ないように思えますが、人工衛星などの長い距離の場合は大きな差が出てきます。

たった1度の違いで600km以上も到着する場所が違うのか!

1度の誤差を修正せず突き進むと大きな差が出てきてしまって、最悪重大な事故が発生するかもしれません。

そのため、誤差はできるだけない方が良いのですが、2進数の計算や浮動小数点数の計算の時でもわかるように、コンピュータは限られた桁数で計算しているため、誤差が発生しやすくなっています。

コンピュータではどのような誤差があるか、確認しましょう。

2. 誤差の種類

誤差は発生する要因や内容によって種類があります。代表的な誤差について理解しましょう。

代表的な誤差

  • 桁あふれ誤差
  • 情報落ち
  • 丸め誤差

桁あふれ誤差

桁あふれ誤差とは、コンピュータで扱える最大値や最小値を超えてしまい、正しく計算できなくなることで発生する誤差です。

例えば、5桁までしか表現できない場合「+99,999」に1を加算(+1)や、「-99,999」に1を減算(-1)をすると、計算結果が5桁では入らなくなります。

このように、コンピュータの表現できる桁数を超えた場合に、「桁あふれ誤差」が発生します。

参 考

桁あふれ誤差は「オーバーフロー」と「アンダーフロー」の2種類

に分かれます。
  • オーバーフロー:表現できる最大値や最小値を超えた場合に発生する誤差
  • アンダーフロー:0に近い数字(0.000・・・)で表現範囲を超えた場合に発生する誤差

情報落ち

情報落ちとは、絶対値の大きな数と小さな数の加減算を行った時に小さな数が無視されてしまい計算に反映されないために起こる誤差のことです。

例えば、小数点以下3桁で(0.123)×103+(0.456)×100の計算をすると次のように、(0.456)×100が計算結果に反映されていないことがわかります。

簡単に言うと、とっても大きな数と小さな数を加算したり、減算したりするときに発生します。


丸め誤差

丸め誤差とは、値を四捨五入したり、切り捨て、切り上げを行うことで発生する誤差です。

誤差といっても発生する理由には様々あります。特にコンピュータで求めた結果は正しいものだと思いがちですが、実際には誤差が発生することも多くあるので気を付けましょう。

情 報 こ と ば キ ー ワ ー ド

誤差

「理論的に正しい値(真の値という)」と「実際の値(測定値という)」との差のこと。
桁あふれ誤差 コンピュータで扱える最大値や最小値を超えてしまい、正しく計算できなくなることで発生する誤差。
情報落ち 絶対値の大きな数と小さな数の加減算を行った時に小さな数が無視されてしまい計算に反映されないために起こる誤差。
丸め誤差 値を四捨五入したり、切り捨て、切り上げを行うことで発生する誤差。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる