Bra - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

Physics[Bra] - create a Bra state vector of a discrete or continuous space of quantum states in Dirac's notation

Physics[Ket] - create a Ket state vector of a discrete or continuous space of quantum states in Dirac's notation

Calling Sequence

Ket(A, n1, n2, ...)

Bra(A, n1, n2, ...)




label; identifies the basis of quantum states to which the Bra or Ket belongs (see Setup)

n1, n2, ...


a sequence of "quantum numbers," or algebraic expressions representing them (the sequence could be empty)



The Dirac Bra-Ket notation is the standard notation in quantum mechanics, although it can also be used to denote abstract vectors and linear functionals in general.


In quantum mechanics, a Ket state vector is used to represent the quantum state of a physical system. In this implementation, Kets are assumed to be non-degenerate, the correspondence between Kets and quantum states is one-to-one, and a set of Kets can always be said to form a basis of a (sub)space of quantum states.


The first argument in KetA,n1,n2 is a label identifying the basis to which the Ket belongs. Recall that a single space of quantum states can be represented by different bases, so the scalar product of Kets of these different bases is, generally speaking, not zero. To represent fermionic state vectors, use an anticommutative label; see Setup for more information.


The second and subsequent N arguments of the Ket function represent "quantum numbers," and identify one Ket from another inside the basis. In this sense, the concept of a quantum number is equivalent to the concept of components of a standard vector in a Euclidean N-dimensional space, if the different components are associated with the different values of the quantum number. However, note that in the case of quantum-state vectors, there can be many quantum numbers (the N-dimensional Euclidean analog of that would be a tensor, not a vector). Kets with many quantum numbers belong to the tensor product of spaces that can be represented with Kets of only one quantum number.


When the label, A, of a Ket has also been set as a quantum operator, the Ket is automatically an eigenvector of this operator with a quantum number as its eigenvalue. To specify which quantum number, use the operator indexed with the position of the quantum number; for example, A2·KetA,n,m will result in mKetA,n,m.


A Bra is also a vector in a space of quantum states and corresponds to a Ket vector in the sense that one is obtained from the other through Hermitian conjugation. Bras are elements of the dual of the space, associated with the corresponding Kets.


The set of Kets formed by attributing all possible values to its quantum numbers forms a basis for the corresponding space of quantum states. To construct projectors onto this basis, use the Projector command. To set the dimension, possibly different, of each of the quantum numbers of the Kets of a basis of quantum states, see Setup.


The space of states spanned by a basis of Kets can be either continuous or discrete. To make the label (first argument) of a Bra or Ket be associated with a continuous space of states, use the Setup command, as in Setupcontinuousbasis=A; otherwise, it is assumed that the Bra or Ket corresponds to a discrete space of states.


The Physics[`.`] is the computational representation for the scalar (also called inner) product between any two of a Bra, a Ket, or a quantum operator, the latter set to be so by the Setup command or returned by the Annihilation, Creation, or Projector commands.


For scalar products involving Bras and Kets of the same basis and with quantum numbers, the result is expressed in terms of KroneckerDeltas, when the state vectors belong to a discrete space of states, or in terms of Dirac functions when they belong to a continuous space of states. In this sense, Bras and Kets with quantum numbers are analogous to 3-D Euclidean "unit vectors."


When the scalar product cannot be resolved, the operation is returned unevaluated, expressed by using the Bracket command (note the 'c' between Bra and Ket). For details regarding when a scalar product is returned unevaluated, see Physics[`.`].


To represent the tensor product of Bras and Kets, use the Physics[`*`] operator, as in &verbar;A>*<B&verbar; (a quantum operator) or &verbar;A>*&verbar;B> (a Ket of the tensor product of spaces).


Two important operations, representing the annihilation and creation of 'particles' in a given state, are performed by using the linear operators returned by the Annihilation and Creation commands. These operators diminish and augment by one, respectively, the "quantum numbers" over which they act; see the respective help pages and the examples below.


To set bracket rules involving Bra and Ket state vectors, use the Setup command; see the examples below.


Consider two Kets belonging to the same basis, labeled with the letter ψ (psi).


Setup(mathematicalnotation = true);



K1 := Ket(psi, n, m);



K2 := Ket(psi, r, s);



To construct the corresponding Bras, you can enter them directly, by using the Bra command (see BK1), or by taking the Hermitian conjugate, by using the Dagger command (see BK2).

BK1 := Bra(psi, n, m);



BK2 := Dagger(K2);



To perform the scalar product, use the Bracket command (note the 'c' between 'Bra' and 'ket') or the scalar product operator, Physics[`.`].

BK1 . K2;



Bracket(BK1, K2);



Note that the above is the product of two Kronecker deltas. This is so because these Kets are assumed to be part of a discrete basis. To indicate that they belong to a continuous space of states, use the Setup command.

Setup(continuousbasis = psi);

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




Bracket(BK1, K2);



In the above, you see a 2-dimensional Dirac function. To set the label psi in this example to represent a discrete basis, use the Setup command again, but first you need to clear the previous setting.

Setup(clear, continuousbasis);

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




Setup(discretebasis = psi);

* Partial match of 'discretebasis' against keyword 'quantumdiscretebasis'




For discrete bases, it is possible to define creation and annihilation operators acting on Kets belonging to this space of states (that is, to the basis labeled by the Ket's first argument). For these purposes, use the Annihilation and Creation operators (see the optional argument notation = explicit to make explicit the label and quantum numbers onto which the operator returned acts).

am1 := Annihilation(psi, 1);



am2 := Annihilation(psi, 2, notation = explicit);



In the above, am1 and am2 represent the annihilation operators with respect to the first and second quantum numbers, respectively; their action over the Kets K1 and K2 is







Below are the corresponding creation operators.

ap1 := Creation(psi, 1);



ap2 := Creation(psi, 2);



Note that the application of these annihilation and creation operators can be performed as shown with the annihilation operators am1 and am2 above, or by using the Physics[`.`] scalar product operator.

ap1 . K1;



ap2 . K2;



As an example involving the creation of a bracket rule, let &verbar;R,x,y,z> and &verbar;P,px,py,pz> represent "position" and "momentum" state vectors; their scalar product is unknown to the system.

Bracket(Bra(R, x, y, z), Ket(P, p[x], p[y], p[z]));



Let their scalar product be the corresponding normalized plane wave (see References below).

(20) = 1/(2*Pi)^(3/2)*exp(I*(x*p[x] + y*p[y]+z*p[z]));



To set the above as a rule when computing Brackets between the vectors R and P, use the Setup command.



Now this rule is used automatically.

%Bracket(Bra(R, a, b, c), Ket(P, d, e, f));






Setup(continuousbasis = {P,R});

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




Projector(Ket(P, p[1], p[2], p[3]));



Bra(R, x[1], x[2], x[3]) . (26);



(26) . Ket(R, x[1], x[2], x[3]);



The result above for P|R was computed by using the rule stated for R|P, but you can also state the rule for P|R in addition, by using the Setup command with the keyword additionally, or by stating the two rules at the same time.

See Also

Annihilation, Bracket, Creation, Dagger, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Physics/`.`, Setup



Cohen-Tannoudji, C.; Diu, B.; and Laloe, F. Quantum Mechanics. Chapter II. Paris, France: Hermann, 1977.