# 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]$$.

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