Simplify ladder operators




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.
< But I read saw threads about geometric algebra simplifications
< 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
 
I forgot to add:
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.