pylops.optimization.leastsquares.regularized_inversion¶
- pylops.optimization.leastsquares.regularized_inversion(Op, y, Regs, x0=None, Weight=None, dataregs=None, epsRs=None, engine='scipy', show=False, **kwargs_solver)[source]¶
Regularized inversion.
Solve a system of regularized equations given the operator
Op, a data weighting operatorWeight, and a list of regularization termsRegs.- Parameters:
- Op
pylops.LinearOperator Operator to invert of size \([N \times M]\)
- y
numpy.ndarray Data of size \([N \times 1]\)
- Regs
list Regularization operators (
Noneto avoid adding regularization)- x0
numpy.ndarray, optional Initial guess of size \([M \times 1]\)
- Weight
pylops.LinearOperator, optional Weight operator
- dataregs
list, optional Regularization data (if
Nonea zero data will be used for every regularization operator inRegs)- epsRs
list, optional Regularization dampings
- engine
str, optional Solver to use (
scipyorpylops)- show
bool, optional Display normal equations solver log
- **kwargs_solver
Arbitrary keyword arguments for chosen solver (
scipy.sparse.linalg.lsqrandpylops.optimization.solver.cglsare used for enginescipyandpylops, respectively)
- Op
- Returns:
- xinv
numpy.ndarray Inverted model.
- istop
int Gives the reason for termination
1means \(\mathbf{x}\) is an approximate solution to \(\mathbf{y} = \mathbf{Op}\,\mathbf{x}\)2means \(\mathbf{x}\) approximately solves the least-squares problem- itn
int Iteration number upon termination
- r1norm
float \(||\mathbf{r}||_2^2\), where \(\mathbf{r} = \mathbf{y} - \mathbf{Op}\,\mathbf{x}\)
- r2norm
float \(\sqrt{\mathbf{r}^T\mathbf{r} + \epsilon^2 \mathbf{x}^T\mathbf{x}}\). Equal to
r1normif \(\epsilon=0\)
- xinv
See also
RegularizedOperatorRegularized operator
NormalEquationsInversionNormal equations inversion
PreconditionedInversionPreconditioned inversion
Notes
See
pylops.optimization.cls_leastsquares.RegularizedInversion