KyFanNorm
KyFanNorm | |
Computes the Ky Fan norm | |
Other toolboxes required | none |
---|---|
Related functions | kpNorm SchattenNorm TraceNorm |
Function category | Norms |
Usable within CVX? | yes (convex) |
KyFanNorm is a function that computes the Ky Fan k-norm of an operator (i.e., the sum of its k largest singular values): \[\|X\|_{(k)} := \sum_{j=1}^k \sigma_j^{\downarrow}(X).\] This function works with both full and sparse matrices, and can be used in the objective function or constraints of a CVX optimization problem.
Syntax
- NRM = KyFanNorm(X,K)
Argument descriptions
- X: An operator to have its Ky Fan K-norm computed.
- K: A positive integer.
Examples
Equals the operator norm when K = 1 (but faster!)
The Ky Fan 1-norm is just the operator norm, which is implemented in MATLAB by the norm function. However, the KyFanNorm function is typically much faster than the norm function:
>> X = rand(2500);
>> tic; KyFanNorm(X,1)
toc
ans =
1250.2
Elapsed time is 0.861377 seconds.
>> tic; norm(X)
toc
ans =
1250.2
Elapsed time is 4.288788 seconds.
Can be used with CVX
This function can be used directly in constraints or the objective function of CVX problems. The following code snippet computes the minimum value of $\mathrm{Tr}(S\rho)$ over all density matrices $\rho$ satisfying $\|\rho\|_{(2)} \leq 3/4$, where $S$ is the swap operator.
>> cvx_begin sdp quiet
variable rho(4,4) hermitian;
minimize trace(rho*SwapOperator(2));
subject to
trace(rho) == 1;
rho >= 0;
KyFanNorm(rho,2) <= 3/4;
cvx_end
cvx_optval
cvx_optval =
-0.2500
>> rho
rho =
0.1250 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i
-0.0000 - 0.0000i 0.3750 + 0.0000i -0.2500 + 0.0000i -0.0000 + 0.0000i
-0.0000 - 0.0000i -0.2500 - 0.0000i 0.3750 + 0.0000i -0.0000 + 0.0000i
-0.0000 - 0.0000i -0.0000 - 0.0000i -0.0000 - 0.0000i 0.1250 + 0.0000i
Source code
Click here to view this function's source code on github.