摘要:
做项目终于遇到精度产生的问题了,由于免费的CULA库只能用float精度,所以程序里有些数组是float的,然后在做累加运算的时候问题就出来了——计算小节点系统就收敛,大节点系统发散,明显是精度问题。于是研究了一下Kahan 求和公式,这货果然厉害,能将累加的精度保持在float级别。以下是我用VC写的演示程序:#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int i;float x=0.001;float y;float t;float sum;float eps=0;printf("\n理论值: 阅读全文