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)