我正在研究数值分析,我不明白这一点:当添加大量浮点数时,最好的方法是将数字从最低到最高加起来。为什么这比从高到低的数字加起来更精确?
答案 0 :(得分:1)
假设您使用的是精度为3位的十进制浮点系统。如果您按此顺序添加正数字3 + 3 + 4 + 40 + 70 + 300 + 800 + 1000,您将获得部分总和:
1800
2100
2170
2210
2210
2210
2210
最终结果是确切的总和:在任何步骤都没有任何近似值。
如果以相反的方式添加它们,则会获得部分总和:
struct point2
xy::Array{Float64,1}
end
浮点意味着在0附近有更多的精度。通常,目标是使每个部分和的结果尽可能接近零,以便每个部分和尽可能准确。当对相同符号的数字求和时,这意味着首先添加较小的数字。
答案 1 :(得分:0)
当你添加一个小数字和一个大数字时,你可能会失去很多精确度。作为一个简单的例子,尝试使用(32位)浮点数累加1000万1和20000000。如果你先把所有的都加起来(得到1000万)然后加上2000万,你会得到正确的答案,即3000万。但如果你从2000万开始并增加1000万,你最终会有2000万。这是因为,在32位浮点中,2000万+ 1是2000万。