计算增量平均值/平均值是否对精度有利?

时间:2020-05-07 18:47:57

标签: performance precision numerical-methods

问题"What's the numerically best way to calculate the average"suggested,计算滚动平均值,即

mean =  a[n]/n + (n-1)/n * mean

在数字上可能比计算总和然后除以元素总数要稳定。一位评论者对此提出了质疑。我不知道哪一个是真的-别人可以吗?滚动均值的优势在于,您可以保持均值较小(即所有矢量条目的大小大致相同)。凭直觉,这应该使误差很小。但是评论者声称:

部分问题是,1 / n至少在三步操作(除法-存储-乘)中执行时,在最低有效位中引入了错误,因此n / n!= 1。如果除法仅执行一次,则将这种情况降到最低,但是您将对GB的数据进行除法。

所以我有多个问题:

  1. 滚动平均值是否比求和再除法更精确?
    • 这是否取决于是否先计算1 / n然后相乘的问题?
    • 如果是,计算机是否执行一步划分? (我是这样认为的,但现在不确定)
  2. 如果是,它比Kahan求和再除法更精确吗?
  3. 如果可以比较-哪一个更快?在这两种情况下,我们都需要进行其他计算。
  4. 如果更精确,可以用它进行精确求和吗?

0 个答案:

没有答案