用 uncertainties 把误差传播做成“一键完成”
写物理实验报告、做工程测量或拟合数据时,最怕的就是手推误差传播公式。
Python 的第三方库 uncertainties 把这件事压缩成一句话:定义一次,后面全部自动算。
核心对象:ufloat
1 2 3 4
| from uncertainties import ufloat
x = ufloat(2.0, 0.1) y = ufloat(3.0, 0.2)
|
任何后续运算都会实时传播误差:
支持所有常用的数学函数
1 2 3 4
| from uncertainties.umath import sin, log, exp
print(sin(x)) print(log(x))
|
与 NumPy 无缝配合
1 2 3 4 5 6
| import uncertainties.unumpy as unp import numpy as np
a = unp.uarray([1, 2, 3], [0.1, 0.2, 0.15]) b = np.sin(a) print(b)
|
真实场景示例:圆柱体积误差
1 2 3 4
| r = ufloat(1.2, 0.02) h = ufloat(5.0, 0.1) V = np.pi * r**2 * h print(f"V = {V:.2f}")
|
官方链接
阅读更多