Propagation of Uncertainty

When a result is calculated from several measured quantities, their uncertainties propagate into it. Learn the first-order (partial-derivative) law of propagation, sensitivity coefficients, the quick rules for sums and products/powers, correlation effects, worst-case versus statistical combination, and Monte Carlo propagation — with a density example checked both ways.

You measure mass and volume to get density, voltage and resistance to get power, length and period to get g. Each input has an uncertainty; how uncertain is the result? And which input should you measure better to improve it most?

Partial derivatives answer both questions. The sensitivity coefficient ∂f/∂xᵢ tells how strongly each input moves the output, and the uncertainty contributions add in quadrature.

An analogy

Uncertainty propagation is like a mixing desk: each input channel (measurement) has its own noise, the sensitivity coefficient is the channel's fader, and the output noise is the root-sum-square of all faded channels.

Quick rules

Adding or subtracting: absolute uncertainties combine. Multiplying or dividing: relative (percentage) uncertainties combine. Powers multiply the relative uncertainty by the exponent — so a squared quantity doubles its percentage uncertainty.

Sensitivity and the uncertainty budget

Tabulate each input: value, u(xᵢ), cᵢ, contribution cᵢu(xᵢ), and its share of u_c². The biggest share tells you where to spend money — a better timer, a better balance, or more repeats.

Worst case vs statistical

Worst-case (arithmetic sum of |cᵢ|Δxᵢ) guarantees bounds but is pessimistic — all errors are unlikely to hit their limits together. Root-sum-square (RSS) is realistic for independent errors. Tolerance stack-up in assemblies uses the same choice.

Correlation and nonlinearity

If two inputs share a calibration source, their errors are correlated; ignoring it can over- or under-state uncertainty. For a difference of perfectly correlated readings, common errors cancel — the principle behind differential measurements and bridge circuits.

First-order propagation assumes the function is locally linear over ±u. When that fails (e.g. dividing by a small uncertain number), use second-order terms or Monte Carlo.

Formulas

Worked example: Density

Given: m = 100 ± 0.5 g; V = 40 ± 0.4 cm³

Find: ρ ± u.

Answer: ρ = 2.500 ± 0.028 g/cm³

Worked example: Electrical power

Given: V = 12.0 ± 0.1 V; R = 6.00 ± 0.06 Ω

Find: P = V²/R ± u.

Answer: P = 24.0 ± 0.47 W

Worked example: Gravity from a pendulum

Given: L = 1.000 ± 0.002 m; T = 2.007 ± 0.005 s

Find: g ± u.

Answer: g = 9.80 ± 0.05 m/s² (timing dominates)

GUM propagation vs Monte Carlo

import numpy as np

m, um = 100.0, 0.5      # mass (g) and standard uncertainty
V, uV = 40.0, 0.4       # volume (cm^3) and standard uncertainty

# 1) Linear (GUM) propagation for rho = m / V
rho = m / V
u_rho = rho * np.hypot(um / m, uV / V)
print(f"GUM:         rho = {rho:.4f} +/- {u_rho:.4f} g/cm^3")

# 2) Monte Carlo propagation
rng = np.random.default_rng(1)
N = 200_000
r = rng.normal(m, um, N) / rng.normal(V, uV, N)
lo, hi = np.percentile(r, [2.5, 97.5])
print(f"Monte Carlo: rho = {r.mean():.4f} +/- {r.std():.4f} g/cm^3")
print(f"95% interval: [{lo:.4f}, {hi:.4f}]   (GUM k=2: [{rho-2*u_rho:.4f}, {rho+2*u_rho:.4f}])")
# GUM:         rho = 2.5000 +/- 0.0280 g/cm^3
# Monte Carlo: rho = 2.5003 +/- 0.0279 g/cm^3
# 95% interval: [2.4463, 2.5558]   (GUM k=2: [2.4441, 2.5559])

For this mildly nonlinear model both methods agree. Monte Carlo becomes essential when the model is strongly nonlinear, inputs are non-Gaussian, or the output distribution is skewed (note the slightly asymmetric MC interval).

Common mistakes

Applications

Key takeaways

Going further