SchattenNorm

From QETLAB
Jump to: navigation, search
SchattenNorm
Computes the Schatten p-norm of an operator

Other toolboxes required none
Related functions InducedSchattenNorm
kpNorm
KyFanNorm
TraceNorm
Function category Norms
Usable within CVX? 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 on "expand" to the right to view the MATLAB source code for this function.

  1. %%  SCHATTENNORM  Computes the Schatten p-norm of an operator
  2. %   This function has two required arguments:
  3. %     X: an operator
  4. %     P: a real number >= 1, or Inf
  5. %
  6. %   NRM = SchattenNorm(X,P) is the Schatten P-norm of X.
  7. %
  8. %   URL: http://www.qetlab.com/SchattenNorm
  9.  
  10. %   requires: kpNorm.m
  11. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
  12. %   package: QETLAB
  13. %   last updated: December 1, 2012
  14.  
  15. function nrm = SchattenNorm(X,p)
  16.  
  17. nrm = kpNorm(X,min(size(X)),p);