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.
- P = V²/R: u_P/P = √((2u_V/V)² + (u_R/R)²)
- g = 4π²L/T²: the period's relative uncertainty counts twice
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
- Law of propagation (independent):
u_c²(y) = Σ (∂f/∂xᵢ)² u²(xᵢ) - With correlation:
+ 2 Σᵢ<ⱼ cᵢcⱼ u(xᵢ)u(xⱼ) r(xᵢ, xⱼ) - Sums and differences:
y = a ± b → u_y = √(u_a² + u_b²) - Products and quotients:
y = ab or a/b → u_y/y = √((u_a/a)² + (u_b/b)²) - Powers:
y = xⁿ → u_y/y = |n| u_x/x - Worst case (upper bound):
Δy = Σ |∂f/∂xᵢ| Δxᵢ
Worked example: Density
Given: m = 100 ± 0.5 g; V = 40 ± 0.4 cm³
Find: ρ ± u.
- ρ = 2.5 g/cm³
- u/ρ = √(0.005² + 0.01²) = 0.01118
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.
- P = 24 W
- u/P = √((2·0.1/12)² + (0.06/6)²) = 0.0194
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.
- g = 4π²L/T² = 9.801
- u/g = √(0.002² + (2·0.005/2.007)²) = 0.00537
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
- Wrong: Adding percentage uncertainties for a sum. — Right: Sums use absolute uncertainties.
- Wrong: Forgetting the exponent in powers. — Right: u/y = |n| u_x/x.
- Wrong: Ignoring correlation between inputs. — Right: Add covariance terms or propagate jointly.
Applications
- Lab reports: Error bars on calculated results.
- Tolerance analysis: RSS stack-up of dimensions in assemblies.
- Sensor design: Choose which measurement to improve from the budget.
- Simulation: Monte Carlo UQ for models with uncertain inputs.
Key takeaways
- u_c² = Σ(∂f/∂xᵢ)²u²(xᵢ).
- Sums: absolute; products: relative.
- Budget shows where to improve.
- Monte Carlo when linearisation fails.
Going further
- Second-order propagation: Include ½Σ(∂²f/∂xᵢ∂xⱼ)² terms for curvature.
- Bayesian uncertainty: Posterior distributions combine prior knowledge and data.
- Sensitivity analysis: Sobol indices for global, nonlinear models.