Appendix C — Direct sums and tensor products
In this appendix, we review how to combine two vector spaces into a larger one, which is the mathematical basis for describing composite quantum systems such as a particle with both spin and orbital angular momentum (Section 15.3), or multiple particles. If you’d like another perspective, have a look at these nice lecture notes from Hitoshi Murayama about tensor products.
Suppose we have two vector spaces V_A and V_B, with dimensions m and n. They each have a set of basis vectors \{\hat{e}_1, ..., \hat{e}_m\} and \{\hat{f}_1, ..., \hat{f}_n\}. Suppose we want to combine them together to form a single vector space: how can we do it?
One possibility is to form the direct sum, V_A \oplus V_B. This creates a new (m+n)-dimensional vector space with basis simply equal to the union of the two original bases, i.e. \{\hat{e}_1, ..., \hat{e}_m, \hat{f}_1, ... \hat{f}_n \}. If \vec{v} is a vector in V_A and \vec{w} a vector in V_B, we can also define the vector direct sum v \oplus w in the obvious way: its m + n components are just given by stacking the components in each individual space. For example, if m=2 and n=3, then \vec{v} \oplus \vec{w} = \left( \begin{array}{c} v_1 \\ v_2 \\ w_1 \\ w_2 \\ w_3 \end{array} \right).
All of our original vectors are in the new direct-sum space, e.g. for every \vec{v} in V_A, we can write \vec{v} \oplus \vec{0} in V_A \oplus V_B.
If A is a matrix acting on vectors in V_A and B is a matrix acting on V_B, then we can combine them block-diagonally to obtain a matrix acting on V_A \oplus V_B: A \oplus B = \left( \begin{array}{cc} A_{m \times m} & 0_{m \times n} \\ 0_{n \times m} & B_{n \times n} \end{array} \right). This doesn’t imply that every matrix on the direct sum space can be written in this block-diagonal form, but we can make such a matrix from any matrices on the original spaces. When working with such composite matrices, the operations are very simple: we see that (A_1 \oplus B_1) (A_2 \oplus B_2) = (A_1 A_2) \oplus (B_1 B_2) \\ (A \oplus B) (\vec{v} \oplus \vec{w}) = (A\vec{v}) \oplus (B\vec{w}) i.e. all the operations just break apart into operations on our original spaces. This also applies to commutators: from above, we immediately have [(A_1 \oplus B_1), (A_2 \oplus B_2)] = [A_1, A_2] \oplus [B_1, B_2].
The other way we can form a new vector space from our original pair is by taking the direct product, V_A \otimes V_B (also known as the “tensor product”.) In the direct product, we define our new basis vectors by pairing together all possible combinations of the original basis, i.e. \{\hat{e}_i \otimes \hat{f}_j\},\ \ i = 1...m,\ \ j=1...n This gives a space of dimension mn. The “tensor” in the name is self-evident, since our basis vectors are now tensors - you can think of them as having two indices, i and j.
Let’s go back to our concrete example from above where m=2 and n=3. Now our direct product basis is six-dimensional: given two vectors \vec{v} and \vec{w}, their tensor product is \vec{v} \otimes \vec{w} = \left( \begin{array}{c} v_1 w_1 \\ v_1 w_2 \\ v_1 w_3 \\ v_2 w_1 \\ v_2 w_2 \\ v_2 w_3 \end{array} \right). For matrices, we can similarly form A \otimes B, but it’s not as simple as just stacking them together anymore. We define the direct product of matrices by requiring that its action on direct products of vectors decomposes over the original spaces, i.e. (A \otimes B) (\vec{v} \otimes \vec{w}) = (A\vec{v} \otimes B\vec{w}). The resulting matrix (which you may also hear referred to as the matrix outer product or Kronecker product) will usually be rather dense. It’s easiest to see how this works if one of the matrices is the identity, e.g. A \otimes I = \left( \begin{array}{cccccc} a_{11} & 0 & 0 & a_{12} & 0 & 0 \\ 0 & a_{11} & 0 & 0 & a_{12} & 0 \\ 0 & 0 & a_{11} & 0 & 0 & a_{12} \\ a_{21} & 0 & 0 & a_{22} & 0 & 0 \\ 0 & a_{21} & 0 & 0 & a_{22} & 0 \\ 0 & 0 & a_{21} & 0 & 0 & a_{22} \end{array} \right) You can verify that multiplying this out gives the expected result (A \otimes I) (\vec{v} \otimes \vec{w}) = (A\vec{v}) \otimes \vec{w}.
So in general, direct products are much more complicated to work with than direct sums; most natural matrices we build from individual spaces are not diagonal. On the other hand, direct sums give block diagonal subspaces that can easily be worked with separately.
Although the details are more complicated, the direct product still satisfies the important property that products of matrices break apart as expected: (A \otimes B) (C \otimes D) = (AC) \otimes (BD). Addition satisfies a distribution property, A \otimes B + A \otimes D = A \otimes (B+D) \\ A \otimes B + C \otimes B = (A + C) \otimes B, and scalar multiplication also works as you would expect, (cA) \otimes B = A \otimes (cB) = c(A \otimes B).
All of the above lets us write down a nice little identity for commutators of direct-product operators:
[(A_1 \otimes B_1), (A_2 \otimes B_2)] = \frac{1}{2} [\hat{A}_1, \hat{A}_2] \otimes \{\hat{B}_1, \hat{B}_2\} + \frac{1}{2} \{\hat{A}_1, \hat{A}_2\} \otimes [\hat{B}_1, \hat{B}_2].
(There’s a similar identity for anti-commutators, which you can find in the exercise below.)
Prove the identity above, using the given properties of direct products.
Answer:
We start with the identity we previously found for regular operators, \hat{A} \hat{B} = \frac{1}{2} \left( [\hat{A}, \hat{B}] + \{\hat{A}, \hat{B}\} \right) then we see that (\hat{A}_1 \hat{A}_2) \otimes \hat{B} = \frac{1}{2} [\hat{A}_1, \hat{A}_2] \otimes \hat{B} + \frac{1}{2} \{\hat{A}_1, \hat{A}_2\} \otimes \hat{B}
Let’s see what this implies for a commutator: [(A_1 \otimes B_1), (A_2 \otimes B_2)] = (A_1 \otimes B_1) (A_2 \otimes B_2) - (A_2 \otimes B_2) (A_1 \otimes B_1) \\ = (A_1 A_2 \otimes B_1 B_2) - (A_2 A_1 \otimes B_2 B_1) The first term can be broken into four pieces: A_1 A_2 \otimes B_1 B_2 = \frac{1}{2} [\hat{A}_1, \hat{A}_2] \otimes B_1 B_2 + \frac{1}{2} \{\hat{A}_1, \hat{A}_2\} \otimes B_1 B_2 \\ = \frac{1}{4} \left( [\hat{A}_1, \hat{A}_2] \otimes [\hat{B}_1, \hat{B}_2] + [\hat{A}_1, \hat{A}_2] \otimes \{\hat{B}_1, \hat{B}_2 \} \right. \\ \left. + \{\hat{A}_1, \hat{A}_2\} \otimes [\hat{B}_1, \hat{B}_2] + \{\hat{A}_1, \hat{A}_2\} \otimes \{\hat{B}_1, \hat{B}_2 \} \right) Back to the commutator, the second term is the same but with labels 1 and 2 swapped. This means that any term which is symmetric under 1 \leftrightarrow 2 will just cancel, while antisymmetric terms will add. As a result, we find the formula: [(A_1 \otimes B_1), (A_2 \otimes B_2)] = \frac{1}{2} [\hat{A}_1, \hat{A}_2] \otimes \{\hat{B}_1, \hat{B}_2\} + \frac{1}{2} \{\hat{A}_1, \hat{A}_2\} \otimes [\hat{B}_1, \hat{B}_2]. Since we relied on antisymmetry here, we can easily read off a corollary formula that we won’t need right away, but that might be useful someday: \{(A_1 \otimes B_1), (A_2 \otimes B_2) \} = \frac{1}{2} [\hat{A}_1, \hat{A}_2] \otimes [\hat{B}_1, \hat{B}_2] + \frac{1}{2} \{\hat{A}_1, \hat{A}_2\} \otimes \{\hat{B}_1, \hat{B}_2 \}.