Difference between revisions of "KyFanNorm"
Jump to navigation
Jump to search
(→Examples: Added CVX example) |
|||
| Line 37: | Line 37: | ||
Elapsed time is 4.288788 seconds. | Elapsed time is 4.288788 seconds. | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===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\|_{(k)} \leq 3/4$, where $S$ is the [[SwapOperator|swap operator]]. | ||
| + | <syntaxhighlight> | ||
| + | >> 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{SourceCode|name=KyFanNorm}} | {{SourceCode|name=KyFanNorm}} | ||
Revision as of 02:19, 23 October 2014
| KyFanNorm | |
| Computes the Ky Fan k-norm of an operator | |
| Other toolboxes required | none |
|---|---|
| Related functions | kpNorm SchattenNorm TraceNorm |
| Function category | Norms |
KyFanNorm is a function that computes the Ky Fan k-norm of an operator (i.e., the sum of its k largest singular values). It works with both full and sparse matrices.
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\|_{(k)} \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.0000iSource code
Click here to view this function's source code on github.