Java教程

kahan算法

本文主要是介绍kahan算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

kahan 算法

kahan 算法使用来减少浮点数计算误差的。

众所周知,因为存储空间原因,浮点数之间的加法满足交换律但并不满足结合律,会有一定的误差产生。而 kahan 算法的目的是减少误差,具体方法是每一次都记录下来当前的误差,在下一个数中进行修正。

代码:

float sum=0.0f,c=0.0f;
for(int i=1;i<=n;i++){
    float a=f[i]-c;
    float b=sum+a;
    c=b-sum-a;sum=b;
}
return sum;

具体应用大概是在算法过程中减少误差而使用。

这篇关于kahan算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!