Leo Butler l.butler at ed.ac.uk
Sun Feb 28 10:45:41 CST 2010

```
On Sun, 28 Feb 2010, Raoul wrote:

< Hi all,
<
<
< I tried to simplify ladder operators as they appear
< in quantuum mechanics. For a simple example assume
< R and L be the operators for which we know:
<
< L|n> = sqrt(n)*|n-1>
<
< and
<
< R|n> = sqrt(n+1)*|n+1>
<
< and [R,L] = 1
<
<
< I do not know much about the simplifier of maxima
< and this is my first real world try which custom rules.
< on this list. So I tried to do more or less the same thing here.
<
<
< First I would like to simplify the following expression: (R+L).(R+L)
<
< expand((R+L).(R+L));
<
< yields a big result which is correct but can be simplified
< which the help of the commutator relation mentioned above.
<
< I tried to use "tellsimpafter" like this:
<
< tellsimpafter(R.L, 1-L.R);
<
< This works nice for (R+L).(R+L), lets call the
< fully simplified result E. No problems so far.
<
<
< Now I would like to simplify (R+L).(R+L).(R+L).(R+L),
< so I try:
<
< expand((R+L).(R+L).(R+L).(R+L));
<
< but there remain terms which could be simplified away.
< What does prohibit the full simplification?
< I can get a fully simplified result f.e. with expand(E.E).
<
<
<
< Finally I would like to be able to calculate for example:
<
< R.R.L.L |n> = ...?
<
< Is there an (easy) way to use the definitions of R and L
< as simplifing rules? Something like
<
< tellsimpafter(L.ket(n), sqrt(n)*ket(n-1));
<
< And how should I tell maxima about the kets?
<
<
< Thanks for any hint.
<
<
< -- Raoul

http://www.johnlapeyre.com/qinf/index.html
seems to be doing what you wish to do. Maybe
it is worth looking at.

Leo

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

```