Difference between revisions of "SchmidtRank"

From QETLAB
Jump to navigation Jump to search
(Uploaded v1.02 and a simple example)
Line 2: Line 2:
 
|name=SchmidtRank
 
|name=SchmidtRank
 
|desc=Computes the [[Schmidt rank]] of a [[bipartite]] vector
 
|desc=Computes the [[Schmidt rank]] of a [[bipartite]] vector
|req=[[opt_args]]<br />[[sporth]]
 
 
|rel=[[OperatorSchmidtRank]]<br />[[SchmidtDecomposition]]<br />[[SchmidtNumber]]
 
|rel=[[OperatorSchmidtRank]]<br />[[SchmidtDecomposition]]<br />[[SchmidtNumber]]
 +
|cat=[[List of functions#Entanglement_and_separability|Entanglement&nbsp;and&nbsp;separability]]
 
|upd=December 19, 2012
 
|upd=December 19, 2012
|v=1.02}}
+
|v=0.50}}
 
<tt>'''SchmidtRank'''</tt> is a [[List of functions|function]] that computes the Schmidt Rank of a [[bipartite]] vector. If the vector is full, the Schmidt rank is computed using MATLAB's <tt>[http://www.mathworks.com/help/matlab/ref/rank.html rank]</tt> function. If the vector is sparse, the Schmidt rank is computed using the [http://en.wikipedia.org/wiki/QR_decomposition QR decomposition].
 
<tt>'''SchmidtRank'''</tt> is a [[List of functions|function]] that computes the Schmidt Rank of a [[bipartite]] vector. If the vector is full, the Schmidt rank is computed using MATLAB's <tt>[http://www.mathworks.com/help/matlab/ref/rank.html rank]</tt> function. If the vector is sparse, the Schmidt rank is computed using the [http://en.wikipedia.org/wiki/QR_decomposition QR decomposition].
  
Line 20: Line 20:
 
==Examples==
 
==Examples==
 
The following code computes a random state vector in $\mathbb{C}^4 \otimes \mathbb{C}^6$ with Schmidt rank three, and then verifies that its Schmidt rank is indeed 3:
 
The following code computes a random state vector in $\mathbb{C}^4 \otimes \mathbb{C}^6$ with Schmidt rank three, and then verifies that its Schmidt rank is indeed 3:
<pre<noinclude></noinclude>>
+
<syntaxhighlight>
 
>> SchmidtRank([[RandomStateVector|RandomStateVector([4,6],0,3)]],[4,6])
 
>> SchmidtRank([[RandomStateVector|RandomStateVector([4,6],0,3)]],[4,6])
  
Line 26: Line 26:
  
 
     3
 
     3
</pre<noinclude></noinclude>>
+
</syntaxhighlight>
 +
 
 +
{{SourceCode|name=SchmidtRank}}

Revision as of 15:24, 22 September 2014

SchmidtRank
Computes the Schmidt rank of a bipartite vector

Other toolboxes required none
Related functions OperatorSchmidtRank
SchmidtDecomposition
SchmidtNumber
Function category Entanglement and separability

SchmidtRank is a function that computes the Schmidt Rank of a bipartite vector. If the vector is full, the Schmidt rank is computed using MATLAB's rank function. If the vector is sparse, the Schmidt rank is computed using the QR decomposition.

Syntax

  • RNK = SchmidtRank(VEC)
  • RNK = SchmidtRank(VEC,DIM)
  • RNK = SchmidtRank(VEC,DIM,TOL)

Argument descriptions

  • VEC: A bipartite vector (e.g., a pure quantum state) to have its Schmidt rank computed.
  • 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.
  • TOL (optional, default sqrt(length(VEC))*eps(norm(VEC))): The numerical tolerance used when determining if a Schmidt coefficient equals zero or not.

Examples

The following code computes a random state vector in $\mathbb{C}^4 \otimes \mathbb{C}^6$ with Schmidt rank three, and then verifies that its Schmidt rank is indeed 3:

>> SchmidtRank([[RandomStateVector|RandomStateVector([4,6],0,3)]],[4,6])

ans =

     3

Source code

Click here to view this function's source code on github.