倍精度浮動小数点数の計算機イプシロンは2^-53であると言う人もいれば、他の(より一般的には)2^-52と言う人もいます。私は、1以外の整数を使用してマシンの精度を推定し、上下から(matlabで)アプローチすることをめちゃくちゃにして、結果として両方の値を取得しました。実際に両方の値を観察できるのはなぜですか?常に2^-52前後のイプシロンを生成するはずだと思いました。
1851 次
3 に答える
7
1
「マシン イプシロン」という用語には固有のあいまいさがあるため、これを修正するために、通常、 と次に大きい表現可能な数の差であると定義されます。(この数値は、実際には (偶然ではなく) バイナリ表現を文字通り 1 ずつインクリメントすることによって取得されます。)
IEEE754 64 ビット浮動小数点数には 52 の明示的な仮数ビットがあるため、暗黙の先頭を含めると 53 になり1
ます。したがって、連続する 2 つの数字は次のようになります。
1.0000 ..... 0000
1.0000 ..... 0001
\-- 52 digits --/
したがって、両者の差は 2 -52です。
于 2011-11-03T13:06:55.053 に答える
2
それはあなたがどちらの方向に丸めるかによります。
1 + 2^-53
はとのちょうど中間に1
あり1 + 2^-52
、倍精度浮動小数点で連続しています。したがって、切り上げると1とは異なります。切り捨てると、1になります。
于 2011-11-03T13:05:30.733 に答える