# Difference between revisions of "Commutant"

Jump to navigation
Jump to search

m |
|||

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.