GroupL1Norm

class odl.solvers.functional.default_functionals.GroupL1Norm(*args, **kwargs)[source]

Bases: odl.solvers.functional.functional.Functional

The functional corresponding to the mixed L1-Lp norm on ProductSpace.

The L1-norm, || ||x||_p ||_1, is defined as the integral/sum of ||x||_p, where ||x||_p is the pointwise p-norm.

This is also known as the cross norm.

Notes

If the functional is defined on an \mathbb{R}^{n \times m}-like space, the group L_1-norm, denoted \| \cdot \|_{\times, p} is defined as

\|F\|_{\times, p} =
\sum_{i = 1}^n \left(\sum_{j=1}^m |F_{i,j}|^p\right)^{1/p}

If the functional is defined on an (\mathcal{L}^p)^m-like space, the group L_1-norm is defined as

\| F \|_{\times, p} =
\int_{\Omega} \left(\sum_{j = 1}^m |F_j(x)|^p\right)^{1/p}
\mathrm{d}x.

Attributes
adjoint

Adjoint of this operator (abstract).

convex_conj

The convex conjugate functional of the group L1-norm.

domain

Set of objects on which this operator can be evaluated.

grad_lipschitz

Lipschitz constant for the gradient of the functional.

gradient

Gradient operator of the functional.

inverse

Return the operator inverse.

is_functional

True if this operator’s range is a Field.

is_linear

True if this operator is linear.

proximal

Return the proximal factory of the functional.

range

Set in which the result of an evaluation of this operator lies.

Methods

_call(self, x)

Return the group L1-norm of x.

bregman(self, point, subgrad)

Return the Bregman distance functional.

derivative(self, point)

Return the derivative operator in the given point.

norm(self[, estimate])

Return the operator norm of this operator.

translated(self, shift)

Return a translation of the functional.

__init__(self, vfspace, exponent=None)[source]

Initialize a new instance.

Parameters
vfspaceProductSpace

Space of vector fields on which the operator acts. It has to be a product space of identical spaces, i.e. a power space.

exponentnon-zero float, optional

Exponent of the norm in each point. Values between 0 and 1 are currently not supported due to numerical instability. Infinity gives the supremum norm. Default: vfspace.exponent, usually 2.

Examples

>>> space = odl.rn(2)
>>> pspace = odl.ProductSpace(space, 2)
>>> op = GroupL1Norm(pspace)
>>> op([[3, 3], [4, 4]])
10.0

Set exponent of inner (p) norm:

>>> op2 = GroupL1Norm(pspace, exponent=1)
>>> op2([[3, 3], [4, 4]])
14.0