takahiro_itazuriの公倍数的ブログ

本やWebを通して学習したことをまとめるブログです。最大公約数(つまり、共通部分)的なという表現と対比して、「なるべく包括的にカバーしつつ、更に+αの要素も加えられたらいいな」という意味で公倍数的ブログと名付けました。

【就プロ】浮動小数点型の数値計算

はじめに

浮動小数点計算(Floating Point Operation)には意外なクセがあるので、一度浮動小数点型というものがなんなのか理解しておきましょう。

浮動小数点型の構造

浮動小数点型は符号+指数+基数でできています。指数を$ n $、基数を$ a $とすると、以下のようになります。
\begin{align}
\pm a \times 2^n
\end{align}
これが意味していることは

  1. ある程度異常細かい数字を表現できない
  2. 数が大きくなればなるほど、数を大雑把にしか表せなくなる

ということです。

丸め誤差(round-off error)

実際の数ではなく近似された値が格納されることによる誤差。

桁落ち(cancellation error)

非常に近い値同士を引き算した時に起こる誤差。
元の数のオーダーに対して、計算結果のオーダーが非常に小さいことから、元の数では気にならなかった誤差が計算結果では非常に大きくなってしまうことによって発生します。

情報落ち(loss of trailing digit)

非常に大きい値を小さい値で計算をした時に、小さい値が無視されることによって起こる誤差。

打ち切り誤差(truncation error)

無限級数などの計算において、途中で計算を打ち切りにした場合に発生する誤差。