我的作業要求我設置:EPS = 2 ** - 52 EPS輸出隨後變爲:2.2204e-16
( 1. + EPS - 1 = 2.2204e-16)#預期
(1 + EPS/2 - 1 = 0.0)#什麼?
我的家庭作業只是要求我在第二個公式發生了什麼。我已經嘗試過使用不同的sigfigs來獲取浮點數和已審查的資源,但仍然不明白。任何幫助非常感謝!
我的作業要求我設置:EPS = 2 ** - 52 EPS輸出隨後變爲:2.2204e-16
( 1. + EPS - 1 = 2.2204e-16)#預期
(1 + EPS/2 - 1 = 0.0)#什麼?
我的家庭作業只是要求我在第二個公式發生了什麼。我已經嘗試過使用不同的sigfigs來獲取浮點數和已審查的資源,但仍然不明白。任何幫助非常感謝!
(1 + eps/2.0) - 1 = 0.0
因爲eps/2.0
太小,沿着1被適當地表示(它作爲稱爲吸收或消除)
在運行的Python典型的機器,存在可用於一個Python浮子的精度53位。如果你想進一步嘗試,Python會消除最小的部分,這樣可以正確表示數字。
在這種情況下,1 「勝」(1 「吸收」 eps/2
),然後向。減去1,你會得到0.
啊,好的非常感謝你! –
EPS/2。 - 1.不能爲零。不過,它可能是-1。有沒有錯別的地方? –
爲什麼預計「eps - 1 = 2.2204e-16」?當'eps = 2。** - 52'(幾乎爲零)時,我預計'eps - 1'約爲-1(這也是我的Python2.7解釋器給我的)。 – Aufziehvogel
你的意思是'(1 + eps) - 1'和'(1 + eps/2) - 1'? 「eps-1」是「-0.9999999999999998」,而不是「2.220446049250313e-16」。 –