iterative_ensemble_smoother.steplength_exponential#

iterative_ensemble_smoother.steplength_exponential(iteration: int, min_steplength: float = 0.3, max_steplength: float = 0.6, halflife: float = 1.5) float[source]#

Compute a suitable step length for the update step.

This is an implementation of Eq. (49), which calculates a suitable step length for the update step, from the book: "Formulating the history matching problem with consistent error statistics”, written by Evensen [2021].

Examples

>>> [steplength_exponential(i) for i in [1, 2, 3, 4]]
[0.6, 0.48898815748423097, 0.41905507889761495, 0.375]
>>> [steplength_exponential(i, 0.0, 1.0, 1.0) for i in [1, 2, 3, 4]]
[1.0, 0.5, 0.25, 0.125]
>>> [steplength_exponential(i, 0.0, 1.0, 0.5) for i in [1, 2, 3, 4]]
[1.0, 0.25, 0.0625, 0.015625]
>>> [steplength_exponential(i, 0.5, 1.0, 1.0) for i in [1, 2, 3]]
[1.0, 0.75, 0.625]