Python的不确定性包如何处理相关数据?

时间:2019-12-12 22:19:49

标签: python uncertainty

在暂时将ufloats存储在字符串中并随后再次加载它们之后,我遇到了uncertainties包的某些问题。现在,我想知道如何在uncertainties.ufloat对象中处理/存储变量之间的相关性。 考虑以下示例

from uncertainties import ufloat
A=ufloat(1.,0.1)#mean, std
B=ufloat(2,0.2)

print(A+B+A-B) # correctly results in 2.0+/-0.2.
print(ufloat_fromstr(str(A+B))+ufloat_fromstr(str(A-B))) # results in 2.00+/-0.31
print((A+B)+(A-B)) # surprisingly correctly results in 2.0+/-0.2.

在将数据临时存储在字符串中之后,有关相关性的信息将丢失。所得的标准偏差2.00 +/- 0.31对应于将每个变量(两个B)视为自变量0.31=sqrt(0.1**2+0.2**2+0.1**2+0.2**2)

最后一个表达式令人惊讶地再次导致正确的错误。我期望给定括号,首先评估(A + B)和(A-B)并将其存储在ufloat对象中。 但是,显然,不确定性包以某种方式跟踪变量的相依性。这是如何工作的?

0 个答案:

没有答案