pylops.optimization.cls_leastsquares.RegularizedInversion

class pylops.optimization.cls_leastsquares.RegularizedInversion(Op, callbacks=None)[source]

Regularized inversion.

Solve a system of regularized equations given the operator Op, a data weighting operator Weight, and a list of regularization terms Regs.

Parameters:
Oppylops.LinearOperator

Operator to invert of size \([N \times M]\).

Attributes:
ncpmodule

Array module used by the solver (obtained via pylops.utils.backend.get_array_module) ). Available only after setup is called.

RegOppylops.LinearOperator

Augmented operator with regularization terms stack to the main operator.

datatotnumpy.ndarray

Stack of the data term (y) or weighed data terms (W @ y if Weight is provided) and regularization data terms.

See also

RegularizedOperator

Regularized operator

NormalEquationsInversion

Normal equations inversion

PreconditionedInversion

Preconditioned inversion

Notes

Solve the following system of regularized equations given the operator \(\mathbf{Op}\), a data weighting operator \(\mathbf{W}^{1/2}\), a list of regularization terms \(\mathbf{R}_i\), the data \(\mathbf{y}\) and regularization data \(\mathbf{y}_{\mathbf{R}_i}\), and the damping factors \(\epsilon_\mathbf{I}\): and \(\epsilon_{\mathbf{R}_i}\):

\[\begin{split}\begin{bmatrix} \mathbf{W}^{1/2} \mathbf{Op} \\ \epsilon_{\mathbf{R}_1} \mathbf{R}_1 \\ \vdots \\ \epsilon_{\mathbf{R}_N} \mathbf{R}_N \end{bmatrix} \mathbf{x} = \begin{bmatrix} \mathbf{W}^{1/2} \mathbf{y} \\ \epsilon_{\mathbf{R}_1} \mathbf{y}_{\mathbf{R}_1} \\ \vdots \\ \epsilon_{\mathbf{R}_N} \mathbf{y}_{\mathbf{R}_N} \\ \end{bmatrix}\end{split}\]

where the Weight provided here is equivalent to the square-root of the weight in pylops.optimization.leastsquares.NormalEquationsInversion. Note that this system is solved using the scipy.sparse.linalg.lsqr and an initial guess x0 can be provided to this solver, despite the original solver does not allow so.

Methods

__init__(Op[, callbacks])

callback(x, *args, **kwargs)

Callback routine

finalize(*args[, show])

Finalize solver

memory_usage([nopRegs, show, unit])

Compute memory usage of the solver

run(x[, engine, show])

Run solver

setup(y, Regs[, Weight, dataregs, epsRs, show])

Setup solver

solve(y, Regs[, x0, Weight, dataregs, ...])

Run entire solver

step()

Run one step of solver