已修改
鉴于“不确定”和“不确定性”这两个词无处不在,谷歌“不确定性算术”很难获得立即有用的东西。因此,根据以下描述,任何人都可以在几乎任何编程/脚本语言中建议一个良好的例程库,它实现了对不确定值的处理:
使用不确定性算法记录近似值,其中存在测量公差。这是当我们不确定某个值时,但知道它可以具有的上限和下限,表示为±值。
答案 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
有关其他区间算术库/软件,请访问以下网站: