Closed5
pythonのマシンイプシロン

マシンイプシロンとは
計算機イプシロン(けいさんきイプシロン、英: machine epsilon)は、浮動小数点数において、「1より大きい最小の数」と1との差のことである。機械イプシロン(きかいイプシロン)とも言う。

調査①
コンピュータ(計算機)で扱える数の最小の数のことを指します。
コンピュータ・アーキテクチャ、OS、言語などによりこの値はまちまちです。
マシンイプシロンを求める方法は単純です。
変数(浮動小数点数)を永遠と1/2してゆくのです。
→ この結果は本当?

調査②(浮動小数点数の丸めの相対誤差を評価する)
評価の際に登場するb^-p+1のことを計算機イプシロンあるいはマシンイプシロン (machine epsilon) と呼びます。
計算機イプシロンは「最小の(正の)浮動小数点数」ではありません。

マシンイプシロンに触れたきっかけ
a tour of goで関数とループを使った簡単な練習として、平方根の計算を実装した時に知った。
値が変化しなくなった (もしくはごくわずかな変化しかしなくなった) 場合にループを停止させる、という実装するときに登場した概念。
ごくわずかな値ってなんだ?となったときに、下記の記事にたどり着いた。
ごくわずかな値はどのように決めればよいのでしょうか。適当に0.01のように決めてもよいのでしょうか。 ここで計算機イプシロンという概念を導入します。 計算機イプシロンとはコンピュータで表すことのできる小数において「1より大きい最小の数」と1との差です。

調査③ pythonで実装できてそうなひと
最後の行の2.220446049250313e-16が機械イプシロンになります。
①の人と何が違う?
このスクラップは2023/11/07にクローズされました