我想尝试使用 SciPy 套件而不是 Octave 在我的实验室实验中进行统计。我的大部分问题都得到了解答 here , 还剩下一件事:
我的测量结果通常会出错,在 Octave 中我只是做了以下操作:
R.val = 10;
R.err = 0.1;
U.val = 4;
U.err = 0.1;
然后我会像这样计算 I
:
I.val = U.val / R.val;
I.err = sqrt(
(1 / R.val * U.err)^2
+ (U.val / R.val^2 * R.err)^2
);
当我有一堆测量时,我通常使用结构数组,像这样:
R(0).val = 1;
R(0).err = 0.1;
…
R(15).val = 100;
R(15).err = 9;
然后我可以执行 R(0).val
或使用 R.val
直接访问它们,并且我有一个包含所有值的列向量,对于 mean(R.val)
例如。
我如何使用 SciPy/NumPy/Python 表示它?
最佳答案
这种错误传播正是uncertainties Python包确实如此。它透明地并通过正确处理相关性来做到这一点:
from uncertainties import ufloat
R = ufloat(10, 0.1)
U = ufloat(4, 0.1)
I = U/R
print I
打印 0.4+/-0.0107703296143
,在自动确定和计算您在示例中手动键入的错误公式后。另外,I.n
和 I.s
分别是标称值(your val
)和标准差(your err
) .
也可以使用包含不确定数字的数组 ( http://pythonhosted.org/uncertainties/numpy_guide.html )。
(免责声明:我是这个包的作者。)
关于python - NumPy 中的模型测量和误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351837/