proximal_convex_conj_l2

odl.solvers.nonsmooth.proximal_operators.proximal_convex_conj_l2(space, lam=1, g=None)[source]

Proximal operator factory of the convex conj of the l2-norm/distance.

Function for the proximal operator of the convex conjugate of the functional F where F is the l2-norm (or distance to g, if given):

F(x) =  lam ||x - g||_2

with x and g elements in space, scaling factor lam, and given data g.

Parameters:
spaceLinearSpace

Domain of F(x). Needs to be a Hilbert space. That is, have an inner product (LinearSpace.inner).

lampositive float, optional

Scaling factor or regularization parameter.

gspace element, optional

An element in space. Default: space.zero.

Returns:
prox_factoryfunction

Factory for the proximal operator to be initialized

See also

proximal_l2

proximal without convex conjugate

proximal_convex_conj_l2_squared

proximal for squared norm/distance

Notes

Most problems are forumlated for the squared norm/distance, in that case use the proximal_convex_conj_l2_squared instead.

The L_2-norm/distance F is given by is given by

F(x) = \lambda \|x - g\|_2

The convex conjugate F^* of F is given by

F^*(y) = \begin{cases}
0 & \text{if } \|y-g\|_2 \leq \lambda, \\
\infty & \text{else.}
\end{cases}

For a step size \sigma, the proximal operator of \sigma F^* is given by the projection onto the set of y satisfying \|y-g\|_2 \leq \lambda, i.e., by

\mathrm{prox}_{\sigma F^*}(y) = \begin{cases}
\lambda \frac{y - g}{\|y - g\|}
& \text{if } \|y-g\|_2 > \lambda, \\
y & \text{if } \|y-g\|_2 \leq \lambda
\end{cases}

Note that the expression is independent of \sigma.