Cycling¶
DUBFI does not provide a cycling loop. But if provides the option to initialize from previous output. This shall make it easy for external tools to implement a cycling loop.
When cycling the inversion, we distinguish the initial prior from which the cycling starts, and the prior of one cycling step. The latter is constructed from the combination of the initial prior and the posterior of the previous cycling step.
Prior scaling factors¶
DUBFI assumes that the initial prior scaling factors are 0.
For the prior in a cycling step, we assume that \(s^\text{prior} = \alpha s^\text{init} + (1 - \alpha) s^\text{prev. posterior}\)
where \(\alpha\) denotes the weight of the initial prior (configuration entry cycle.initial_prior_weight) and \(s^\text{init}=0\).
Prior B matrix¶
We need to find the error covariance matrix \(B\) of \(s^\text{prior}\). Assume that \(s^\text{prev. posterior}\) (covariance matrix \(B^p\)) and \(s^\text{init}\) (\(B^i\)) have correlated uncertainties. We can write the joint error covariance matrix as
where \(B^{pi}={B^{ip}}^\top\) describes the correlations. We obtain \(B = \alpha^2 B^i + (1-\alpha)^2 B^p + \alpha (1 - \alpha) (B^{ip} + B^{pi})\).
As an error covariance matrix, (4) must be real-symmetric and positive semi-definite. Since each cycling step adds information to the initial state, the information in \(s^\text{init}\) and \(s^\text{prev. posterior}\) is maximally correlated. This maximal correlation is obtained by choosing \(B^{ip}=\sqrt{B^i}\sqrt{B^p}\) such that
where \(I\) denotes the identity matrix. This leads to the relation
that is implemented in dubfi.fluxes.util.mix_b() and used in dubfi.fluxes.util.get_prior_cycling().
Note
Choosing \(B=\alpha B^i + (1-\alpha) B^p\) is in general not consistent with positivity of (4). Consider \(\alpha=\tfrac{1}{2}\), \(B^i=3\), and \(B^p=1\). Choosing \(B=\alpha B^i + (1-\alpha) B^p = 2\) implies that \(B^{ip}=2\), but the matrix \(\begin{pmatrix} 3 & 2 \\ 2 & 1 \end{pmatrix}\) is not positive semidefinite. Thus, \(B=2\) is inconsistent with the uncertainties assumed for \(s^\text{init}\) and \(s^\text{prev. posterior}\).