Computing Library › Applications
Applications

Uncertainty Quantification in Engineering

Turning point predictions into honest ranges by tracking how input uncertainty and model error propagate to outputs.

Why a single number is not enough

Every prediction rests on uncertain inputs and imperfect models. Reporting a single number hides that and invites false confidence. Uncertainty quantification (UQ) asks how uncertain the output is given the uncertainty in what went into it, so a result becomes a distribution or an interval rather than a bare figure.

Sources of uncertainty

Kronos motion — operating point

How it is done

The workhorse is Monte Carlo: sample the uncertain inputs from their distributions, run the model on each sample, and look at the spread of outputs. When the model is expensive, a surrogate stands in so thousands of samples are affordable. More efficient methods exist (polynomial chaos, quasi-Monte Carlo) but the logic is the same: propagate the input distributions through to the output.

python
import numpy as np

def propagate(model, sampler, n=10000):
    outs = np.array([model(sampler()) for _ in range(n)])
    return {'mean': outs.mean(), 'p05': np.percentile(outs,5),
            'p95': np.percentile(outs,95)}

Separating the two kinds

Good UQ keeps aleatory and epistemic uncertainty distinct, because they call for different responses. Epistemic uncertainty can be attacked with more experiments (this is where Bayesian experimental design earns its keep); aleatory uncertainty must be designed around with margin.

Kronos use

Design numbers such as the tritium breeding estimate carry uncertainty bands, and UQ is what makes those bands defensible. It also identifies which inputs dominate the uncertainty, focusing future work where it reduces the band most.