Computing Library › Surrogates & Uncertainty
Surrogates & Uncertainty

Adjoint-Based UQ

Adjoint methods compute the sensitivity of an output to all inputs at a cost independent of the number of inputs, powering efficient local UQ.

One solve, all sensitivities

The adjoint method computes the gradient of a scalar output with respect to many inputs by solving one additional linear system, the adjoint equation, regardless of how many inputs there are. This is the reverse-mode counterpart of forward sensitivity, which would need one solve per input. For thousands of uncertain parameters, adjoints are the only feasible route to full gradients.

How it works

Kronos motion — uncertainty

Given a state equation R(u, p) = 0 and an output J(u, p), the adjoint variable lambda solves (dR/du)^T lambda = -(dJ/du)^T. The total derivative is then dJ/dp = dJ/dp + lambda^T dR/dp, obtained without differentiating the expensive state solve with respect to each parameter.

Uses in UQ

Second-order information

Hessian-vector products via adjoints enable curvature-aware methods, improving local UQ and the Laplace approximation for large inverse problems. Full Hessians remain expensive, but the actions needed for optimization and low-rank posterior approximations are affordable.

Limits

Adjoint UQ is inherently local: it linearizes around a point, so it captures small-perturbation sensitivity but not large excursions, multimodality, or strong nonlinearity. It also requires an adjoint-capable solver, which is nontrivial to implement or maintain. For global behavior, adjoint gradients feed sampling and surrogate methods rather than replacing them.