SkVectorNorm

From QETLAB
Jump to: navigation, search
SkVectorNorm
Computes the s(k)-norm of a vector

Other toolboxes required none
Related functions KyFanNorm
SchmidtDecomposition
SkOperatorNorm
Function category Norms
Usable within CVX? no

SkVectorNorm is a function that computes the s(k)-norm of a vector (i.e., the Euclidean norm of the vector of its k largest Schmidt coefficients[1]).

Syntax

  • SkVectorNorm(VEC)
  • SkVectorNorm(VEC,K)
  • SkVectorNorm(VEC,K,DIM)

Argument descriptions

  • VEC: A vector living in bipartite space.
  • K (optional, default 1): A positive integer.
  • DIM (optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the subsystems that VEC lives on.

Examples

Sum of squares of eigenvalues of reduced density matrix

The square of the s(k)-vector norm is equal to the Ky Fan k-norm of the vector's reduced density matrix:

>> v = RandomStateVector(9);
>> [SkVectorNorm(v,1)^2, KyFanNorm(PartialTrace(v*v'),1)]
 
ans =
 
    0.7754    0.7754
 
>> [SkVectorNorm(v,2)^2, KyFanNorm(PartialTrace(v*v'),2)]
 
ans =
 
    0.9333    0.9333
 
>> [SkVectorNorm(v,3)^2, KyFanNorm(PartialTrace(v*v'),3)]
 
ans =
 
    1.0000    1.0000

Source code

Click on "expand" to the right to view the MATLAB source code for this function.

  1. %%  SKVECTORNORM  Computes the s(k)-norm of a vector
  2. %   This function has one required argument:
  3. %     VEC: a bipartite vector to have its s(k)-norm computed
  4. %
  5. %   NRM = SkVectorNorm(VEC) is the maximal inner product of the bipartite
  6. %   vector VEC with a separable pure state. This is equal to the largest
  7. %   Schmidt coefficient of VEC.
  8. %
  9. %   This function has two optional input arguments:
  10. %     K (default 1)
  11. %     DIM (default has both subsystems of equal dimension)
  12. %
  13. %   NRM = SkVectorNorm(VEC,K,DIM) is the maximal inner product of VEC with
  14. %   a state that has Schmidt rank <= K. This quantity is equal to the sum
  15. %   of the squares of the singular values of the partial trace of VEC. It
  16. %   is also equal to the Euclidean norm of the vector of VEC's k largest
  17. %   Schmidt coefficients.
  18. %
  19. %   DIM is a 1x2 vector containing the dimensions of the subsystems that
  20. %   VEC lives on. If DIM is a scalar instead of a vector, then it is
  21. %   assumed that the first subsystem of size DIM and the second subsystem
  22. %   of size length(VEC)/DIM.
  23. %
  24. %   URL: http://www.qetlab.com/SkVectorNorm
  25.  
  26. %   requires: opt_args.m, SchmidtDecomposition.m
  27. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
  28. %   package: QETLAB
  29. %   last updated: December 2, 2012
  30.  
  31. function nrm = SkVectorNorm(vec,varargin)
  32.  
  33. lv = length(vec);
  34.  
  35. % set optional argument defaults: k=1, dim=sqrt(length(vec))
  36. [k,dim] = opt_args({ 1, round(sqrt(lv)) },varargin{:});
  37.  
  38. % allow the user to enter a single number for dim
  39. if(length(dim) == 1)
  40.     dim = [dim,lv/dim];
  41.     if abs(dim(2) - round(dim(2))) >= 2*lv*eps
  42.         error('SkVectorNorm:InvalidDim','If DIM is a scalar, it must evenly divide length(VEC); please provide a DIM array containing the dimensions of the subsystems.');
  43.     end
  44.     dim(2) = round(dim(2));
  45. end
  46.  
  47. % It's faster to just compute the norm of VEC directly if that will give
  48. % the correct answer.
  49. if(k >= min(dim))
  50.     nrm = norm(vec);
  51. else
  52.     nrm = norm(SchmidtDecomposition(vec,dim,k));
  53. end

References

  1. N. Johnston and D. W. Kribs. A Family of Norms With Applications in Quantum Information Theory. J. Math. Phys., 51:082202, 2010. E-print: arXiv:0909.3907 [quant-ph]