compute the projector onto a space of states represented by the given (Ket) argument - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Physics : Physics/Projector

Physics[Projector] - compute the projector onto a space of states represented by the given (Ket) argument

Calling Sequence

Projector(K, dimension = N, quantumcontinuousbasis, subspace)




a Ket state vector



positive integer, infinity, or an algebraic expression that could be positive or a positive integer, when the space of states is respectively continuous or discrete



(optional) indicates that the projector acts over a continuous space of states



(optional) indicates that the projector projects onto a subspace, so its dimension should not be used to update the dimension of the embedding space



The Projector command returns the quantum operator that projects onto a basis of a space of states. This operator is constructed as a sum of tensor products of Bras and Kets of the basis. To indicate that the space is a continuous space of states, use the quantumcontinuousbasis option, or set the label of the space (first argument of the given Ket) to represent a continuous space of states, by using the Setup command.


The dimension of the space associated with each quantum number entering the Ket passed as first argument can be specified directly to Projector. If so, this information is automatically used to update the current Setup, unless the optional argument subspace is given, indicating that the dimensions given are not the ones of the embedding quantum space of states. Alternatively, you can set the dimension first, by using the Setup command, and then call Projector without specifying the dimension.


In the case of a continuous space of states, if the dimension is not given and it is not known to the Setup command, this dimension is assumed to be from  to .


When indicating the dimension as dimension = N, N can be a positive integer or an algebraic expression representing it, so that the dimension will be from 0 to N1 in the discrete case, and from N to N in the continuous case. You can also indicate directly a range of the form N=a..b, where a and b are also half-integers. When there are many quantum numbers, the dimension indicated in one of these ways will be assumed to be the same for all of them.


Alternatively, to indicate different dimensions for each quantum number, N should be a list of dimensions, so that the first dimension in the list is associated with the first quantum number, and so on, and each dimension is as in the previous paragraph.


The %Projector command is the inert form of Projector; that is, it represents the same mathematical operation while displaying the operation unevaluated. To evaluate the operation, use the value command.



Setup(mathematicalnotation = true);



Ket(A, n);



Projector((2), dimension = 3);



Setup(continuousbasis = R);

* Partial match of 'continuousbasis' against keyword 'quantumcontinuousbasis'




Ket(R, x,y,z);






A projector with different dimensions associated with each quantum number: the dimension information passed to Projector is automatically tracked in the Setup for later use.

Projector( Ket(B, m,n,x), dimension = [N, -3/2..3/2, infinity] );




* Partial match of 'basisdim' against keyword 'quantumbasisdimension'




A projector where some of the quantum numbers are associated with discrete spaces, and others with continuous spaces (note that you do not need to specify the dimensions again).

Setup(continuous = {B[1], B[3]});

* Partial match of 'continuous' against keyword 'quantumcontinuousbasis'




Projector( Ket(B, m,n,x) );



When projecting onto a subspace, use the optional argument subspace to avoid having the dimension information tracked in the Setup.

PC := Projector( Ket(C, m,n), dimension = [-1/2..1/2, 1], subspace );




* Partial match of 'basisdim' against keyword 'quantumbasisdimension'




To project the Ket Ketψ into a basis, take the scalar product of the Projector and the Ket.

expansion := PC. Ket(psi);



Set a bracket rule forC,m,n|ψ, and use the value command to perform the sum (rewrite it explicitly as a sum of terms).

%Bracket(Bra(C, m,n), Ket(psi)) = psi(n,m);










See Also

Ket, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Setup