uncertainties

see: https://uncertainties-python-package.readthedocs.io/en/latest/

[ ]:
from uncertainties import ufloat
import uncertainties.umath as umath
import uncertainties.unumpy as unp
import numpy as np
from smpl import io

Single number

[ ]:
x = ufloat(1,0.1)
print(x)
[ ]:
print(x*x)

This is error propagation of the function \(f(x)=x^2\) yielding \(\Delta f = \frac{\partial f(x)}{\partial x} \Delta x=2\Delta x\)

[ ]:
y = ufloat(1,0.2)
print(x*y)

Here \(f(x,y)=x*y\) gives \(\Delta f = \sqrt{(\frac{\partial f(x)}{\partial x} \Delta x)^2 +(\frac{\partial f(y)}{\partial y} \Delta y)^2}\)

[ ]:
umath.sin(2*y)

Arrays

[ ]:
data = np.loadtxt(io.find_file('test_linear_data.txt',3))
xdata = data[:,0]
xerr = data[:,2]
ydata = data[:,1]
yerr = data[:,3]
x = unp.uarray(xdata,xerr)
y = unp.uarray(ydata,yerr)
[ ]:
print(x)
print(y)
[ ]:
print(x*y)

Error propagation for each number in the array.

[ ]:
print(unp.sin(x)*y)
[ ]:

[ ]:

[ ]: