Python:不确定性的ufloat功能

时间:2015-10-19 08:40:53

标签: python uncertainty

我代表python 2.7使用模块uncertainties。谁输入了以下代码行:

import uncertainties
counts = uncertainties.ufloat(1,1)
auto_correlator = (counts - counts) / (2 * counts)
print auto_correlator
#0.0+/-0

你想知道结果的不确定性吗?根据我对统计数据的理解,我预计会出现一个有限误差:0.0+/-0.5。我使用的错误传播公式如下:

Error Propagation Formula

我不喜欢每次都手工做。如何有效和可靠地传播错误或者我的直觉是错误的?

2 个答案:

答案 0 :(得分:2)

我认为结果很好。 counts不确定多少并不重要,counts - counts总是完全 0,因为它是从相同的变量中减去的本身,我们并不关心它的“真正”价值。

正如@elric在评论中所说,如果你想要相同的“价值”(即相同的名义价值和相同的不确定性),请使用不同的变量。

counts1 = uncertainties.ufloat(1,1)
counts2 = uncertainties.ufloat(1,1)
auto_correlator = (counts1 - counts2) / (counts1 + counts2)
print auto_correlator

答案 1 :(得分:2)

如果使用相同的数字,则减法的不确定性为零。你在想的是具有相同不确定性的不同数字。

import uncertainties
counts1 =     uncertainties.ufloat(1,1)
counts2 = uncertainties.ufloat(1,1)
counts3 = uncertainties.ufloat(1,1)
not_auto_correlator = (counts1 - counts2) / (2 * counts3)
print not_auto_correlator