ILMath.Vec()似乎是生成稍微错误的输出(潜在错误?)

时间:2014-05-05 23:54:35

标签: matlab function ilnumerics

我正在将ILMath.Vec()与MatLab进行比较,我发现了重大的舍入错误。

例如,如果我为每个系统创建一个向量(使用开始:0,步骤:1.2635048525911006,结束:20700):

MatLab:[Start:Step:End]

ILNumerics:Vec<double>(Start, Step, End)

然后取平均值abs差值,得到1.56019608343883E-09的平均误差。但是,如果手动创建矢量(使用乘法),我得到的平均误差仅为3.10973469197506E-13,误差小4倍。

在查看ILNumerics的vec函数(使用Reflector)后,我想我知道为什么平均误差值如此之大。 ILMath.vec()函数使用加法与乘法。将步长值16,384乘以相同,将步长值x N(其中N是当前循环计数)乘以16,384次!添加的舍入误差加起来非常快!

请考虑解决此问题。

0 个答案:

没有答案