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