Sk iterate

sk_iterate is a function that iteratively computes a lower bound on the S(k)-norm of an operator : $$ \|X\|_{S(k)} := \sup_{|v\rangle, |w\rangle } \Big\{ \big| \langle w| X |v \rangle \big| : SR(|v \rangle), SR(|v \rangle) \leq k, \big\||v \rangle\big\| = \big\||w \rangle\big\| = 1 \Big\}, $$ where $SR(\cdot)$ refers to the Schmidt rank of a pure state. The method used to compute this lower bound is described here.

Syntax

 * SK = sk_iterate(X)
 * SK = sk_iterate(X,K)
 * SK = sk_iterate(X,K,DIM)
 * SK = sk_iterate(X,K,DIM,TOL)
 * SK = sk_iterate(X,K,DIM,TOL,V0)
 * [SK,V] = sk_iterate(X,K,DIM,TOL,V0)

Input arguments

 * X: A square positive semidefinite matrix to have its S(k)-norm bounded.
 * K</tt> (optional, default 1): A positive integer, the Schmidt rank to optimize over.
 * DIM</tt> (optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the subsystems that X</tt> acts on.
 * TOL</tt> (optional, default $$10^{-5}$$): The numerical tolerance used when determining whether or not the iterative procedure has converged.
 * V0</tt> (optional, default is randomly-generated): The vector to begin the iterative procedure from.

Output arguments

 * V</tt> (optional): A vector with Schmidt rank at most K</tt> such that V'*X*V == SK</tt>.

A two-qubit example
In, it was shown that the density matrix $$ \rho = \frac{1}{8}\begin{bmatrix}5 & 1 & 1 & 1\\1 & 1 & 1 & 1\\1 & 1 & 1 & 1\\1 & 1 & 1 & 1\end{bmatrix} $$ has S(1)-norm equal to $(3+2\sqrt{2})/8 \approx 0.7286$. The following code shows that this quantity is indeed a lower bound of the S(1)-norm: