realmin
「以IEEE雙精度返回最小的正歸一化浮點數」。 eps(X)
「是從ABS(X)到 的正距離,與X相同的精度浮點數下一個更大。爲什麼realmin> eps(0)?
如果我正確解釋上述文檔,則realmin
- 可表示的最小正數 - 必須小於eps (0)
。但是:
>> realmin; % 2.2251e-308
>> eps(0); % 4.9407e-324
顯然,eps(0)
,這是更小,可也表示。有人可以向我解釋這一點嗎?
realmin
「以IEEE雙精度返回最小的正歸一化浮點數」。 eps(X)
「是從ABS(X)到 的正距離,與X相同的精度浮點數下一個更大。爲什麼realmin> eps(0)?
如果我正確解釋上述文檔,則realmin
- 可表示的最小正數 - 必須小於eps (0)
。但是:
>> realmin; % 2.2251e-308
>> eps(0); % 4.9407e-324
顯然,eps(0)
,這是更小,可也表示。有人可以向我解釋這一點嗎?
這是一個浮點問題。你應該去閱讀denormal numbers。
簡而言之,realmin
返回最小的正數歸一化的浮點數。但是可能有比這更小的非正規數,並且仍然可以浮點表示,這就是eps(0)
返回的結果。
反規範數的快速解釋
二進制浮點數看起來像這樣:
1.abcdef * 2^M
其中abcdefg
各自是0或1,和M
是範圍-1022的數< = M < = 1023.這些被稱爲歸一化的浮點數。儘可能最小的歸一化浮點數是1 * 2^(-1022)
。
的非正規數字看起來像這樣
0.abcdef * 2^(-1022)
,使他們能夠採取比最小的歸一化的浮點數值越小。非正規數在-realmin
和realmin
之間線性插值。
也許是定義的問題,這是我EPS的文檔中看到:
For all X of class double such that abs(X) <= realmin, eps(X) = 2^(-1074)