NormalOrder examples

⇠ Back to Blog:Notes
(Created page with "In this note I give some particular cases of the module <tt>NormalOrder</tt> (see here). If <m>C</m> commute with <m>A</m> and <m>B</m> then: ...")
 
Line 18: Line 18:
  
 
:<m>[a^\dagger a,a^\dagger b]=a^\dagger b\,.</m>
 
:<m>[a^\dagger a,a^\dagger b]=a^\dagger b\,.</m>
 +
 +
Here is a module that does it directly, computing <m>:[elem_1,elem_2]:</m>:
 +
 +
<pre>
 +
NormalOrderCommutator[elem1_, elem2_] := Module[{},
 +
  NormalOrder[{prod[elem1, elem2], prod[{1, -1}*elem2, elem1]}]
 +
  ]
 +
</pre>
 +
 +
in term of another module, prod, which is a component of the NormalOrder module:
 +
 +
<pre>
 +
prod[sequence__] := Module[{terms},
 +
  terms = Transpose[List[sequence]];
 +
  {Associate[Flatten[EvenSize /@ (terms[[1]])]], Times @@ terms[[2]]}
 +
  ]
 +
 +
EvenSize[list_] := Module[{},
 +
  If[OddQ[Length[list]], Prepend[list, 0], list]
 +
  ]
 +
</pre>
 +
 +
Some examples:
 +
 +
<pre>
 +
NormalOrderCommutator[{{1, 1}, 1}, {{1, 0}, 1}]
 +
{{{1, 0}, 1}}
 +
</pre>
 +
 +
already given above, or
 +
 +
<pre>
 +
NormalOrderCommutator[{{1}, 1}, {{1, 0}, 1}]
 +
{{{0, 0}, 1}}
 +
</pre>
 +
 +
which is the fundamental relation <m>[a,a^\dagger]=1</m>.

Revision as of 18:05, 3 November 2010

In this note I give some particular cases of the module NormalOrder (see here).

If <m>C</m> commute with <m>A</m> and <m>B</m> then:

<m>[A,BC]=[A,B]C</m>

So it is easy to compute expressions like, e.g.,

<m>[a^\dagger a,a^\dagger b]</m>

factoring out b and computing:

NormalOrder[{{{1, 1, 1, 0}, 1}, {{2, 1}, -1}}]
{{{1, 0}, 1}}

we find:

<m>[a^\dagger a,a^\dagger b]=a^\dagger b\,.</m>

Here is a module that does it directly, computing <m>:[elem_1,elem_2]:</m>:

NormalOrderCommutator[elem1_, elem2_] := Module[{},
  NormalOrder[{prod[elem1, elem2], prod[{1, -1}*elem2, elem1]}]
  ]

in term of another module, prod, which is a component of the NormalOrder module:

prod[sequence__] := Module[{terms},
  terms = Transpose[List[sequence]];
  {Associate[Flatten[EvenSize /@ (terms[[1]])]], Times @@ terms[[2]]}
  ]

EvenSize[list_] := Module[{},
  If[OddQ[Length[list]], Prepend[list, 0], list] 
  ]

Some examples:

NormalOrderCommutator[{{1, 1}, 1}, {{1, 0}, 1}]
{{{1, 0}, 1}}

already given above, or

NormalOrderCommutator[{{1}, 1}, {{1, 0}, 1}]
{{{0, 0}, 1}}

which is the fundamental relation <m>[a,a^\dagger]=1</m>.