Commutant: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
| Line 1: | Line 1: | ||
{{Function | {{Function | ||
|name=Commutant | |name=Commutant | ||
|desc=Computes the | |desc=Computes the commutant of a set of matrices | ||
|req=[[opt_args]]<br />[[PartialTranspose]]<br />[[PermuteSystems]]<br />[[spnull]]<br />[[Swap]] | |req=[[opt_args]]<br />[[PartialTranspose]]<br />[[PermuteSystems]]<br />[[spnull]]<br />[[Swap]] | ||
|upd=November 18, 2012 | |upd=November 18, 2012 | ||
Revision as of 17:03, 23 November 2012
| Commutant | |
| Computes the commutant of a set of matrices | |
| Other toolboxes required | opt_args PartialTranspose PermuteSystems spnull Swap |
|---|---|
Commutant is a function that computes an orthonormal basis (in the Hilbert-Schmidt inner product) of the commutant of a matrix or set of matrices.
Syntax
- C = Commutant(A)
Argument descriptions
- A: Either a matrix, or a cell containing one or more matrices of the same size.
Examples
A single matrix
Everything commutes with the identity matrix, which we can verify in the 2-dimensional case as follows:
>> C = Commutant(eye(2));
>> celldisp(C) % display the contents of C
C{1} =
1 0
0 0
C{2} =
0 1
0 0
C{3} =
0 0
1 0
C{4} =
0 0
0 1
Bicommutant
If A is a cell that contains a basis of a unital, self-adjoint algebra, then its bicommutant spans the same set, by the von Neumann bicommutant theorem. The following code verifies this in the case of the subalgebra $M_2 \oplus M_1 \subseteq M_3$:
>> A = {[1 0 0;0 0 0;0 0 0] [0 1 0;0 0 0;0 0 0] [0 0 0;1 0 0;0 0 0] [0 0 0;0 1 0;0 0 0] [0 0 0;0 0 0;0 0 1]};
>> B = Commutant(Commutant(A));
>> celldisp(B)
B{1} =
1 0 0
0 0 0
0 0 0
B{2} =
0 1 0
0 0 0
0 0 0
B{3} =
0 0 0
1 0 0
0 0 0
B{4} =
0 0 0
0 1 0
0 0 0
B{5} =
0 0 0
0 0 0
0 0 1
Note that the basis output for the bicommutant in general may be different than the basis provided as input.