Question: Physics[Dagger] simplification, non commuting variables

Hi:

I am trying to use the Physics package to help me deal with non-commuting operators, but having some problems when trying to simplify expressions.The following should explain what i mean:

 

################

restart:
with(Physics):
# 'a' represents a quantum operator
Physics[Setup](noncommutativeprefix={a}, mathematicalnotation = true);

#we can try to expand to see that a and Dagger(a) do not commute!
expand((2*a+Dagger(a))^2);

#define a displacement operator
Disp:=(v_a)->exp(v_a*Dagger(a) - Dagger(v_a)*a); #displacement operator

#define a transofrmation that uses the displacement operator
P:=Disp(c_e(t))*Matrix([[0,0],[0,1]])+Disp(c_g(t))*Matrix([[1,0],[0,0]]);

#i would like the result of this to be simplified - i.e. each variable should at most have one Dagger/conjugation on it.
DP:=Dagger(P);

#these do not work
value(DP);
Simplify(DP);
simplify(DP);

#this expression gives the correct/simplified result when dealing with a matrix, but there has to  be a better way!?
LinearAlgebra[Transpose](map(Dagger, P));

################


has anyone worked with Physics[Dagger] before and knows how to simpify it? Note that converting complex numbers to x+I*y form and using evalc is not ideal for me as it changes the forms of my expressions too much.


thanks!

Please Wait...