“它比 $(a+b)/2$ 更不容易因同号大端点相加而溢出;极端异号端点仍可能使 $b a$ 溢出,工程实现宜使用平台提供的安全 midpoint 操作或按符号缩放。更关键的终止边界来自浮点间…”
形式陈述 ​
设
对可表示数
在 binary64 中 machine epsilon 在不同文献和语言库中可能指
当
这是带条件的相对误差陈述。次正规区更自然的是绝对误差界;溢出会返回无穷或触发异常;精确中点的 ties-to-even 决定两侧同距时的选择,而不是消除误差。
直觉 ​
ulp 是浮点尺在
ties-to-even 让连续出现的精确中点不总朝同一方向舍入,可减少某些系统性偏差;它不保证一组实际数据的舍入误差均值为零,也不允许把误差当独立随机噪声。
例子与边界 ​
在 binary64 中,
对正数
正确舍入也不等于“真实结果没有误差”。它只保证返回目标格式中按指定方向最合适的数;若精确结果不可表示,误差仍然存在,只是这一步没有更好的同格式答案。
推论与应用 ​
unit roundoff 是标准浮点算术模型的基本参数,多步误差界中的
使用舍入误差公式时应同时记录格式、舍入方向、正规/次正规范围和是否允许溢出。若实现采用融合乘加或扩展精度,中间舍入次数改变,分析路径也应相应调整,而不是事后把所有差异塞进一个模糊的“机器误差”。
参考资料
- IEEE, IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019.
- David Goldberg, “What Every Computer Scientist Should Know About Floating-Point Arithmetic,” ACM Computing Surveys 23(1), 1991.
- Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM, 2002, Ch. 2.