pdhg_stepsize

odl.solvers.nonsmooth.primal_dual_hybrid_gradient.pdhg_stepsize(L, tau=None, sigma=None)[source]

Default step sizes for pdhg.

Parameters:
LOperator or float

Operator or norm of the operator that are used in the pdhg method. If it is an Operator, the norm is computed with Operator.norm(estimate=True).

taupositive float, optional

Use this value for tau instead of computing it from the operator norms, see Notes.

sigmapositive float, optional

The sigma step size parameters for the dual update.

Returns:
taufloat

The tau step size parameter for the primal update.

sigmatuple of float

The sigma step size parameter for the dual update.

Notes

To guarantee convergence, the parameters \tau, \sigma and L need to satisfy

\tau \sigma \|L\|^2 < 1

This function has 4 options, \tau/\sigma given or not given.

  • Neither \tau nor \sigma are given, they are chosen as

    \tau = \sigma = \frac{\sqrt{0.9}}{\|L\|}

  • If only \sigma is given, \tau is set to

    \tau = \frac{0.9}{\sigma \|L\|^2}

  • If only \tau is given, \sigma is set to

    \sigma = \frac{0.9}{\tau \|L\|^2}

  • If both are given, they are returned as-is without further validation.