6

已编辑

鉴于“不确定”和“不确定性”这两个词相当普遍,很难通过谷歌搜索“不确定性算术”并立即获得任何有用的信息。因此,任何人都可以建议一个好的例程库,在几乎任何编程/脚本语言中,实现对不确定值的处理,按照这个描述:

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

4

7 回答 7

6

我相信“区间算术”是您正在寻找的更常见的名称。 boost::interval将是我作为支持库的首选。

于 2009-03-08T16:32:57.947 回答
5

如果您正在寻找错误传播模块(这与区间算术不同,但错误传播是科学家常用的),我建议您看看我的uncertaintiesPython 模块。它以透明的方式处理错误/不确定性传播,并且与许多实现相反,正确处理变量之间的相关性。

于 2009-09-23T13:27:14.623 回答
3

看看 Thomas Flanagan 的Error Propagation Java 类。它使用的方法最适合处理不确定性而不会带来额外的麻烦。

于 2009-03-08T15:57:46.173 回答
3

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

于 2013-11-13T15:57:56.670 回答
1

它不是图书馆,但您的问题让我想起了“Expert F#”中描述概率工作流程的示例:

我们不是编写表达式来计算整数,而是编写表达式来计算整数的分布。本案例研究基于 Ramsey 和 Pfeffer 于 2002 年发表的一篇论文。

你可以阅读谷歌书籍的摘录。

于 2009-03-08T14:36:35.730 回答
1

我可能会通过声明一个名为 UncertainValue 的类来解决这个问题,该类具有诸如(伪代码)之类的方法和属性:

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

我意识到这并不能回答您在查找预制库方面的问题,抱歉。

于 2009-03-08T15:21:47.570 回答
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

于 2019-07-11T14:22:01.630 回答