如果我们假设变量x
和y
可以双精度表示而没有错误。写x^2 - y^2
还是仅(x + y)(x-y)
?
我想到了这个问题,并认为x^2 - y^2
应该更加准确,因为某些数字根源的不确定性。 (sqrt(numbers)
)
我真的很感激你的答案!!!
答案 0 :(得分:4)
双倍的加法和减法是有问题的,只要它们的幅度差别很大。假设您有10位十进制数的精度,并希望
1234567890 + 0.05
然后添加错误,因为尾数不能代表额外的05.(实际上,64 IEEE双精度,精度更像15或16位十进制数字)
由此我们可以得出结论(x+y)(x-y)
形式应该做得更好,因为在我们有一个大的x和一个小的(<1)y的情况下,x²和y²的幅度差将变得更均匀更大,在减法中得到准确的结果甚至更不可能。