# SchattenNorm

 Other toolboxes required SchattenNorm Computes the Schatten p-norm of an operator none InducedSchattenNormkpNormKyFanNormTraceNorm Norms yes (convex)

SchattenNorm is a function that computes the Schatten p-norm of an operator (i.e., the p-norm of its vector of singular values): $$\|X\|_p := \left(\sum_i \sigma_i^\downarrow(X)^p\right)^{1/p},$$ where $\sigma_1^\downarrow(X) \geq \sigma_2^\downarrow(X) \geq \cdots$ are the singular values of $X$ in non-increasing order. This function works with both full and sparse matrices, and it can be used within CVX.

## Syntax

• NRM = SchattenNorm(X,P)

## Argument descriptions

• X: An operator to have its Schatten P-norm computed.
• P: A real number ≥ 1, or Inf.

## Examples

### Equals the Frobenius norm when P = 2

The Shatten 2-norm is simply the Frobenius norm:

>> X = rand(2500);
>> [norm(X,'fro'), SchattenNorm(X,2)]

ans =

1443.6       1443.6

### Can be used within CVX

Like all norms, Schatten norms are convex, and this function can be used within CVX just like any other convex function. For example, the following code finds the smallest Schatten 3-norm of any 4-by-4 density matrix whose (1,2)-entry equals 1/8:

>> cvx_begin sdp quiet
variable rho(4,4) hermitian
minimize SchattenNorm(rho,3)
subject to
trace(rho) == 1;
rho >= 0;
rho(1,2) == 1/8;
cvx_end
>> cvx_optval

cvx_optval =

0.4400

>> rho

rho =

0.2344 + 0.0000i   0.1250 + 0.0000i  -0.0000 - 0.0000i  -0.0000 - 0.0000i
0.1250 + 0.0000i   0.2344 + 0.0000i  -0.0000 - 0.0000i  -0.0000 - 0.0000i
-0.0000 + 0.0000i  -0.0000 + 0.0000i   0.2656 + 0.0000i   0.0000 - 0.0000i
-0.0000 + 0.0000i  -0.0000 + 0.0000i   0.0000 + 0.0000i   0.2656 + 0.0000i

>> SchattenNorm(rho,3)

ans =

0.4400

## Source code

Click here to view this function's source code on github.