一个很好的不确定性(区间)算术库?

时间:2009-03-08 14:25:36

标签: math uncertainty interval-arithmetic

已修改

鉴于“不确定”和“不确定性”这两个词无处不在,谷歌“不确定性算术”很难获得立即有用的东西。因此,根据以下描述,任何人都可以在几乎任何编程/脚本语言中建议一个良好的例程库,它实现了对不确定值的处理:

  

使用不确定性算法记录近似值,其中存在测量公差。这是当我们不确定某个值时,但知道它可以具有的上限和下限,表示为±值。

7 个答案:

答案 0 :(得分:6)

我相信“Interval Arithmetic”是您正在寻找的更常见的名称。 boost::interval将是我支持图书馆的首选。

答案 1 :(得分:4)

如果您正在寻找error propagation模块(这与interval arithmetic不同,但错误传播是科学家常用的模块),我建议您查看我的uncertainties模块。 3}} Python模块。它以透明的方式处理错误/不确定性传播,与许多实现相反,正确处理变量之间的相关性。

答案 2 :(得分:3)

看看Thomas Flanagan的Error Propagation Java课程。它使用的方法非常适合处理不确定性而没有过多的麻烦。

答案 3 :(得分:3)

供参考,因为对你来说可能为时已晚,我建议使用BIAS / Profil:http://www.ti3.tuhh.de/keil/profil/index_e.html

答案 4 :(得分:1)

这不是一个图书馆,但你的问题让我想起了“专家F#”中描述概率工作流程的一个例子:

  

而不是将表达式写入计算,比方说,整数,我们改为编写计算整数分布的表达式。本案例研究基于Ramsey和Pfeffer 2002年的一篇论文。

您可以阅读摘录on google books

答案 5 :(得分:1)

我可能会通过声明一个名为UncertainValue的类来解决这个问题,其方法和属性如(psuedocode):

class UncertainValue
{
  private double upperbound;
  private double lowerbound;
  private double nominalvalue;
  private double certainty;
  ...
  UncertainValue add(UncertainValue value);
  UncertainValue multiply(UncertainValue factor);
}

我发现在寻找预制图书馆方面,这并没有回答你的问题,对不起。

答案 6 :(得分:0)

INTLAB(INTerval LABoratory)是用于区间算术和经过验证的数值线性代数的著名库。它基于MATLAB / Octave。您可以从此处下载该库:

http://www.ti3.tu-harburg.de/rump/intlab/

kv库是由C ++和Boost C ++库组成的区间算术库。多精度间隔算术可用。它还具有经过验证的ODE求解器。

http://verifiedby.me/kv/index-e.html

有关其他区间算术库/软件,请访问以下网站:

http://www.cs.utep.edu/interval-comp/intsoft.html