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

2024-06-25 23:16:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在临时将ufloat存储在字符串中并随后再次加载之后,我遇到了一些关于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对象中然而,显然不确定性软件包以某种方式跟踪变量dependencis。这到底是怎么回事


Tags: 对象字符串infromimport示例meanresults