inversion_ideas.create_l2_inversion#

inversion_ideas.create_l2_inversion(data_misfit, model_norm, *, starting_beta, initial_model, minimizer, beta_cooling_factor=2.0, beta_cooling_rate=1, chi_target=1.0, max_iterations=None, cache_models=True, preconditioner=None)#

Create inversion of the form \(\phi_d + \beta \phi_m\).

Build an inversion with a beta cooling schedule and a stopping criterion for a chi factor target.

Parameters:
data_misfitObjective

Data misfit term \(\phi_d\).

model_normObjective

Model norm \(\phi_m\).

starting_betafloat

Starting value for the trade-off parameter \(\beta\).

initial_model(n_params) array

Initial model to use in the inversion.

minimizerMinimizer

Instance of Minimizer used to minimize the objective function during the inversion.

beta_cooling_factorfloat, optional

Cooling factor for the trade-off parameter \(\beta\). Every beta_cooling_rate iterations, the \(\beta\) will be cooled down by dividing it by the beta_cooling_factor.

beta_cooling_rateint, optional

Cooling rate for the trade-off parameter \(\beta\). The trade-off parameter will be cooled down every beta_cooling_rate iterations.

chi_targetfloat, optional

Target for the chi factor. The inversion will finish after the data misfit reaches a \(\chi\) factor lower or equal to chi_target.

max_iterationsint, optional

Max amount of iterations that will be performed. If None, then there will be no limit on the total amount of iterations.

cache_modelsbool, optional

Whether to cache models after each iteration in the inversion.

preconditioner{“jacobi”} or 2d array or sparse array or LinearOperator or None, optional

Preconditioner that will be passed to the minimizer on every call during the inversion. If "bfgs", a default BFGS preconditioner will be used, where the initial estimate for it will be set as the Jacobi preconditioner of the model_norm times the starting_beta. If "jacobi", a default Jacobi preconditioner that will get updated on every iteration will be defined for the inversion. If None, no preconditioner will be passed.

Returns:
Inversion