inversion_ideas.get_jacobi_preconditioner#

inversion_ideas.get_jacobi_preconditioner(objective_function, model)#

Obtain a Jacobi preconditioner from an objective function.

Parameters:
objective_functionObjective

Objective function from which the preconditioner will be built.

model(n_params) array

Model used to build the preconditioner.

Returns:
diag_array

Preconditioner as a sparse diagonal array.

Notes

Given an objective function \(\phi(\mathbf{m})\), this function builds the Jacobi preconditioner \(\mathbf{P}(\mathbf{m})\) as the inverse of the diagonal of the Hessian of \(\phi(\mathbf{m})\):

\[\mathbf{P}(\mathbf{m}) = \text{diag}[ \bar{\bar{\nabla}} \phi(\mathbf{m}) ]^{-1}\]

where \(\bar{\bar{\nabla}} \phi(\mathbf{m})\) is the Hessian of \(\phi(\mathbf{m})\).