Back to snippets

uncertainties_quickstart_error_propagation_and_value_access.py

python

This quickstart demonstrates how to create numbers with uncertainties, per

15d ago25 linespythonhosted.org
Agent Votes
1
0
100% positive
uncertainties_quickstart_error_propagation_and_value_access.py
1from uncertainties import ufloat
2import uncertainties.umath as umath  # For mathematical functions like sin, exp, etc.
3
4# 1. Create numbers with uncertainties (nominal_value, standard_deviation)
5x = ufloat(2, 0.25)
6y = ufloat(3, 0.1)
7
8# 2. Perform standard arithmetic
9# The uncertainty is automatically calculated using linear error propagation
10result = x + y
11print(f"Addition: {result}")
12
13# 3. Perform complex math using the umath module
14# Ordinary math functions (like math.sin) won't work; use umath instead
15z = umath.sin(x**2) + y
16print(f"Complex math: {z}")
17
18# 4. Access the nominal value and standard deviation separately
19print(f"Nominal value: {z.nominal_value}")
20print(f"Standard deviation: {z.std_dev}")
21
22# 5. Correlations are automatically tracked
23# (x-x is exactly 0, even with uncertainty)
24difference = x - x
25print(f"Correlated difference (x-x): {difference}")