Difference between revisions of "AntisymmetricProjection"

From QETLAB
Jump to navigation Jump to search
Line 2: Line 2:
 
|name=AntisymmetricProjection
 
|name=AntisymmetricProjection
 
|desc=Produces the [[projection]] onto the [[antisymmetric subspace]]
 
|desc=Produces the [[projection]] onto the [[antisymmetric subspace]]
|req=[[opt_args]]<br />[[perm_sign]]<br />[[PermutationOperator]]<br />[[PermuteSystems]]<br />[[sporth]]
 
 
|rel=[[SymmetricProjection]]<br />[[SwapOperator]]
 
|rel=[[SymmetricProjection]]<br />[[SwapOperator]]
 +
|cat=[[List of functions#Permutations_and_symmetry_of_subsystems|Permutations and symmetry of subsystems]]
 
|upd=November 26, 2012
 
|upd=November 26, 2012
|v=1.01}}
+
|v=0.50}}
 
<tt>'''AntisymmetricProjection'''</tt> is a [[List of functions|function]] that computes the [[orthogonal projection]] onto the [[antisymmetric subspace]] of two or more subsystems. The output of this function is always a sparse matrix.
 
<tt>'''AntisymmetricProjection'''</tt> is a [[List of functions|function]] that computes the [[orthogonal projection]] onto the [[antisymmetric subspace]] of two or more subsystems. The output of this function is always a sparse matrix.
  
Line 25: Line 25:
 
===Two subsystems===
 
===Two subsystems===
 
To compute the antisymmetric projection on two-qubit space, the following code suffices:
 
To compute the antisymmetric projection on two-qubit space, the following code suffices:
<pre>
+
<syntaxhighlight>
 
>> AntisymmetricProjection(2)
 
>> AntisymmetricProjection(2)
  
Line 34: Line 34:
 
   (2,3)      -0.5000
 
   (2,3)      -0.5000
 
   (3,3)      0.5000
 
   (3,3)      0.5000
</pre>
+
</syntaxhighlight>
 
Note that the output of this function is always sparse. If you want a full matrix (not recommended for even moderately large <tt>DIM</tt> or <tt>P</tt>), you must explicitly convert it using MATLAB's built-in [http://www.mathworks.com/help/matlab/ref/full.html full] function.
 
Note that the output of this function is always sparse. If you want a full matrix (not recommended for even moderately large <tt>DIM</tt> or <tt>P</tt>), you must explicitly convert it using MATLAB's built-in [http://www.mathworks.com/help/matlab/ref/full.html full] function.
  
 
===More subsystems and <tt>PARTIAL</tt>===
 
===More subsystems and <tt>PARTIAL</tt>===
 
To compute a matrix whose columns form an orthonormal basis for the symmetric subspace of three-[[qutrit]] space, set <tt>PARTIAL = 1</tt>:
 
To compute a matrix whose columns form an orthonormal basis for the symmetric subspace of three-[[qutrit]] space, set <tt>PARTIAL = 1</tt>:
<pre>
+
<syntaxhighlight>
 
>> PA = AntisymmetricProjection(3,3,1)
 
>> PA = AntisymmetricProjection(3,3,1)
  
Line 50: Line 50:
 
   (20,1)      0.4082
 
   (20,1)      0.4082
 
   (22,1)      -0.4082
 
   (22,1)      -0.4082
</pre>
+
</syntaxhighlight>
  
 
Note that <tt>PA</tt> is an isometry from the antisymmetric subspace (which is one-dimensional in this case) to the full three-qutrit space. In other words, <tt>PA'*PA</tt> is the identity matrix (i.e., the scalar 1 here) and <tt>PA*PA'</tt> is the orthogonal projection onto the antisymmetric subspace, which we can verify as follows:
 
Note that <tt>PA</tt> is an isometry from the antisymmetric subspace (which is one-dimensional in this case) to the full three-qutrit space. In other words, <tt>PA'*PA</tt> is the identity matrix (i.e., the scalar 1 here) and <tt>PA*PA'</tt> is the orthogonal projection onto the antisymmetric subspace, which we can verify as follows:
<pre>
+
<syntaxhighlight>
 
>> PA'*PA
 
>> PA'*PA
  
Line 65: Line 65:
  
 
   3.3307e-016
 
   3.3307e-016
</pre>
+
</syntaxhighlight>
  
 
===When <tt>DIM</tt> is too small===
 
===When <tt>DIM</tt> is too small===
 
When <tt>DIM < P</tt>, the antisymmetric subspace is zero-dimensional, as verified in the <tt>DIM = 4, P = 6</tt> case by the following line of code:
 
When <tt>DIM < P</tt>, the antisymmetric subspace is zero-dimensional, as verified in the <tt>DIM = 4, P = 6</tt> case by the following line of code:
<pre>
+
<syntaxhighlight>
 
>> AntisymmetricProjection(4,6)
 
>> AntisymmetricProjection(4,6)
  
Line 75: Line 75:
  
 
   All zero sparse: 4096-by-4096
 
   All zero sparse: 4096-by-4096
</pre>
+
</syntaxhighlight>
 +
 
 +
{{SourceCode|name=AntisymmetricProjection}}
  
 
==References==
 
==References==
 
<references />
 
<references />

Revision as of 19:17, 23 September 2014

AntisymmetricProjection
Produces the projection onto the antisymmetric subspace

Other toolboxes required none
Related functions SymmetricProjection
SwapOperator
Function category Permutations and symmetry of subsystems

AntisymmetricProjection is a function that computes the orthogonal projection onto the antisymmetric subspace of two or more subsystems. The output of this function is always a sparse matrix.

Syntax

  • PA = AntisymmetricProjection(DIM)
  • PA = AntisymmetricProjection(DIM,P)
  • PA = AntisymmetricProjection(DIM,P,PARTIAL)
  • PA = AntisymmetricProjection(DIM,P,PARTIAL,MODE)

Argument descriptions

  • DIM: The dimension of each of the subsystems.
  • P (optional, default 2): The number of subsystems.
  • PARTIAL (optional, default 0): If PARTIAL = 1 then PA isn't the orthogonal projection itself, but rather a matrix whose columns form an orthonormal basis for the antisymmetric subspace (and hence PA*PA' is the orthogonal projection onto the antisymmetric subspace).
  • MODE (optional, default -1): A flag that determines which of two algorithms is used to compute the antisymmetric projection. If MODE = -1 then this script chooses which algorithm it thinks will be faster based on the values of DIM and P. If you wish to force the script to use a specific one of the algorithms (not recommended!), they are as follows:
    • MODE = 0: Computes the antisymmetric projection by explicitly constructing an orthonormal basis of the antisymmetric subspace. The method for constructing such a basis is a modification of the procedure described for the symmetric subspace in [1]. This method is typically fast when DIM is small compared to P.
    • MODE = 1: Computes the antisymmetric projection by averaging all P! permutation operators (in the sense of the PermutationOperator function). Permutation operators corresponding to an even permutation are given a weight of +1, while permutation operators corresponding to an odd permutation are given a weight of -1.[2] Because P! grows very quickly, this method is only practical when P is small.

Examples

Two subsystems

To compute the antisymmetric projection on two-qubit space, the following code suffices:

>> AntisymmetricProjection(2)

ans =

   (2,2)       0.5000
   (3,2)      -0.5000
   (2,3)      -0.5000
   (3,3)       0.5000

Note that the output of this function is always sparse. If you want a full matrix (not recommended for even moderately large DIM or P), you must explicitly convert it using MATLAB's built-in full function.

More subsystems and PARTIAL

To compute a matrix whose columns form an orthonormal basis for the symmetric subspace of three-qutrit space, set PARTIAL = 1:

>> PA = AntisymmetricProjection(3,3,1)

PA =

   (6,1)       0.4082
   (8,1)      -0.4082
  (12,1)      -0.4082
  (16,1)       0.4082
  (20,1)       0.4082
  (22,1)      -0.4082

Note that PA is an isometry from the antisymmetric subspace (which is one-dimensional in this case) to the full three-qutrit space. In other words, PA'*PA is the identity matrix (i.e., the scalar 1 here) and PA*PA' is the orthogonal projection onto the antisymmetric subspace, which we can verify as follows:

>> PA'*PA

ans =

   (1,1)       1.0000

>> norm(PA*PA' - AntisymmetricProjection(3,3),'fro')

ans =

  3.3307e-016

When DIM is too small

When DIM < P, the antisymmetric subspace is zero-dimensional, as verified in the DIM = 4, P = 6 case by the following line of code:

>> AntisymmetricProjection(4,6)

ans =

   All zero sparse: 4096-by-4096

Source code

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

References

  1. John Watrous. Lecture 21: The quantum de Finetti theorem, Theory of Quantum Information Lecture Notes, 2008.
  2. R.B. Griffiths. Systems of Identical Particles, 33-756 Quantum Mechanics II Course Notes, 2011.