Difference between revisions of "Commutant"
Jump to navigation
Jump to search
m |
m (removed red links) |
||
Line 5: | Line 5: | ||
|upd=November 12, 2014 | |upd=November 12, 2014 | ||
|v=0.50}} | |v=0.50}} | ||
− | <tt>'''Commutant'''</tt> is a [[List of functions|function]] that computes an orthonormal basis (in the | + | <tt>'''Commutant'''</tt> is a [[List of functions|function]] that computes an orthonormal basis (in the Hilbert-Schmidt inner product) of the commutant of a matrix or set of matrices. |
==Syntax== | ==Syntax== |
Latest revision as of 18:04, 19 December 2014
Commutant | |
Computes the commutant of a set of matrices | |
Other toolboxes required | none |
---|---|
Function category | Miscellaneous |
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.
Source code
Click here to view this function's source code on github.