【发布时间】:2020-06-17 09:27:59
【问题描述】:
我正在研究浮点算术。假设我们是双精度的。我们知道,当我们减去两个“几乎”大小相同的数字时,相对误差很大。
例如,在 MatLab 命令窗口中,如果我计算
2.0000001-2.0
我得到9.99999998363421e-08
并且有一个不可忽略的相对误差 errRel = 1.63657882716964e-09。
但如果我在 Wolfram alpha 中(或使用笔记本电脑的计算器)执行此操作,我实际上会得到正确的结果,即 1e-7。
所以,我的问题是:为什么会这样?我以为 MatLab 和我笔记本电脑的计算器都以相同的方式使用浮点运算
【问题讨论】:
-
matlab 和 wolfram alpha 有什么关系?
-
我认为没有公开记录 wolfram-alpha 在“幕后”使用了什么,但他们可能使用某种形式的任意精度数学。
标签: floating-point precision floating-accuracy numerical-analysis