full⚓︎
Full (model-space) LM ensemble update.
full_update
⚓︎
Bases: AnalysisBase
Full LM update as in Chen & Oliver (2013).
Unlike the approximate update, the state-error covariance is represented
in model space via the Am matrix, which adds an explicit regularisation
term pulling the ensemble toward the prior.
Reference
Chen, Y., & Oliver, D. S. (2013). Levenberg-Marquardt forms of the iterative ensemble smoother for efficient history matching and uncertainty quantification. Computational Geosciences, 17(4), 689-703. https://doi.org/10.1007/s10596-013-9351-5
Note
No localization is implemented for this update scheme.
ext_Am()
⚓︎
Compute and cache the Am matrix from the scaled prior anomalies.
The anomalies are divided by state_scaling, the same scaled space
update puts X_anom and the prior misfit in, so that
Am @ Am.T approximates the inverse of the scaled prior
covariance. Multiplying by the scaling instead, as this once did,
made the regularisation term off by the squared standard deviation
for any variable whose prior standard deviation was not 1.
update(enX, enY, enE, **kwargs)
⚓︎
Perform the full LM update.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
enX
|
(ndarray, shape(nx, ne))
|
State ensemble matrix. |
required |
enY
|
(ndarray, shape(nd, ne))
|
Predicted data ensemble matrix. |
required |
enE
|
(ndarray, shape(nd, ne))
|
Perturbed observations ensemble. |
required |
Returns:
| Type | Description |
|---|---|
(ndarray, shape(nx, ne))
|
Update step to be added to the state ensemble. |