pylops.optimization.cls_leastsquares.NormalEquationsInversion#

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

Inversion of normal equations.

Solve the regularized normal equations for a system of equations given the operator Op, a data weighting operator Weight and optionally a list of regularization terms Regs and/or NRegs.

Parameters
Oppylops.LinearOperator

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

See also

RegularizedInversion

Regularized inversion

PreconditionedInversion

Preconditioned inversion

Notes

Solve the following normal equations for a system of regularized equations given the operator \(\mathbf{Op}\), a data weighting operator \(\mathbf{W}\), a list of regularization terms (\(\mathbf{R}_i\) and/or \(\mathbf{N}_i\)), the data \(\mathbf{y}\) and regularization data \(\mathbf{y}_{\mathbf{R}_i}\), and the damping factors \(\epsilon_I\), \(\epsilon_{\mathbf{R}_i}\) and \(\epsilon_{\mathbf{N}_i}\):

\[( \mathbf{Op}^T \mathbf{W} \mathbf{Op} + \sum_i \epsilon_{\mathbf{R}_i}^2 \mathbf{R}_i^T \mathbf{R}_i + \sum_i \epsilon_{\mathbf{N}_i}^2 \mathbf{N}_i + \epsilon_I^2 \mathbf{I} ) \mathbf{x} = \mathbf{Op}^T \mathbf{W} \mathbf{y} + \sum_i \epsilon_{\mathbf{R}_i}^2 \mathbf{R}_i^T \mathbf{y}_{\mathbf{R}_i}\]

Note that the data term of the regularizations \(\mathbf{N}_i\) is implicitly assumed to be zero.

Methods

__init__(Op[, callbacks])

callback(x, *args, **kwargs)

Callback routine

finalize(*args[, show])

Finalize solver

run(x[, engine, show])

Run solver

setup(y, Regs[, Weight, dataregs, epsI, ...])

Setup solver

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

Run entire solver

step()

Run one step of solver