计算C ++中曲面拟合应用的测量极限

时间:2017-01-01 18:29:39

标签: c++ scientific-computing data-fitting

如何计算物理测量的小和大小,以使应用程序在将测量值表示为双倍时不会产生上溢/下溢?

E.g。我对一个平面的距离进行了一些测量,我想在数据集上安装一个平面。我想知道在进行这些测量时我可以离表面有多近以及离我有多远,这样应用的结果是正确的。

在我的程序中,我将测量结果读成双重类型的3元组,以表示R3中的点。所需精度为2或3位小数。

不知道从哪里开始。 。

编辑:我没有试图抓住溢出;我试图分析应用程序的限制。

1 个答案:

答案 0 :(得分:0)

A double precision floating point number  有大约15位有效数字,其大小可能介于1e-3081e308之间。

假设从测量基准到表面的距离估计约为x长度单位,表面粗糙度,测量误差和任何其他不确定度约为{{1}以相同的长度单位。 (单位的选择取决于你。)在这里,假设a相对大于x是很自然的。

至少需要满足以下限制。

  • 数字a的幅度小于约x
  • 数字1e308的幅度大于约a
  • 比率1e-308大于a/x

我认为您可以存储有关从月球到地球的距离(1e-15 m)的测量原始数据,以便在双精度浮点数中解析头发(3e8 m)米的单位。

如果您在一个原子层的分辨率下从地球上检测到月球上的光滑表面,则双精度浮点数的15个有效数字可能不足以忠实地表示测量结果。但是,如果您的测量设备本身具有更多有效数字,则可以将平均(或典型)距离1e-5存储在一个浮点数中,并将测量距离的差值d存储在平均值中。相应测量的其他浮点数。