picos.expressions.exp_nucnorm

Implements NuclearNorm.

Classes

class picos.expressions.exp_nucnorm.NuclearNorm(x)[source]

Bases: Expression

The nuclear norm of a matrix.

This class can represent the nuclear norm of a matrix-affine expression (real- or complex valued). The nuclear norm is convex, so we can form expressions of the form NuclearNorm(X) <= t which are typically reformulated as LMIs that can be handled by SDP solvers.

Definition

If the normed expression is a matrix X, then its nuclear norm is

\|X\|_* =  \operatorname{trace}\ (X^*X)^{1/2}
        = \sum_{i=1}^{\min(n,m)} \sigma_i(X)

where the \sigma_i(X) denote the singular values of a X, and X^* denotes the adjoint matrix of X (i.e., the transposed matrix X^T if X is real-valued).

Special cases:

  • If X is scalar, then \|X\|_* reduces to the the absolute value (or modulus) |X|.

  • If X is scalar, then \|X\|_* coincides with the Euclidean norm of X.

__init__(x)[source]

Construct a NuclearNorm.

Parameters

x (ComplexAffineExpression) – The affine expression to take the norm of.

__le__(other)[source]

Return a constraint that the expression is upper-bounded.

__mul__(other)[source]

Denote multiplication with another expression on the right.

__rmul__(other)[source]

Denote multiplication with another expression on the left.

property x

Real expression whose norm equals that of the original expression.