5.10 Appendices

5.10.1 Tensor products in components

In our discussion of tensor products we have so far taken a rather abstract approach. There are, however, situations in which we have to put numbers in, and write tensor products of vectors and matrices explicitly. For example, here is the standard basis of two qubits written explicitly as column vectors: \begin{aligned} |00\rangle &\equiv |0\rangle\otimes|0\rangle = \begin{bmatrix}1\\0\end{bmatrix} \otimes \begin{bmatrix}1\\0\end{bmatrix} = \begin{bmatrix}1\\0\\0\\0\end{bmatrix} \\[1em] |01\rangle &\equiv |0\rangle\otimes|1\rangle = \begin{bmatrix}1\\0\end{bmatrix} \otimes \begin{bmatrix}0\\1\end{bmatrix} = \begin{bmatrix}0\\1\\0\\0\end{bmatrix} \\[1em] |10\rangle &\equiv |1\rangle\otimes|0\rangle = \begin{bmatrix}0\\1\end{bmatrix} \otimes \begin{bmatrix}1\\0\end{bmatrix} = \begin{bmatrix}0\\0\\1\\0\end{bmatrix} \\[1em] |11\rangle &\equiv |1\rangle\otimes|1\rangle = \begin{bmatrix}0\\1\end{bmatrix} \otimes \begin{bmatrix}0\\1\end{bmatrix} = \begin{bmatrix}0\\0\\0\\1\end{bmatrix} \end{aligned} Given |a\rangle = \alpha_0|0\rangle + \alpha_1|1\rangle and |b\rangle = \beta_0|0\rangle +\beta_1|1\rangle, we write |a\rangle\otimes|b\rangle as \begin{aligned} |a\rangle\otimes|b\rangle &= \begin{bmatrix}\alpha_0\\\alpha_1\end{bmatrix} \otimes \begin{bmatrix}\beta_0\\\beta_1\end{bmatrix} \\&= \begin{bmatrix}\alpha_0\begin{bmatrix}\beta_0\\\beta_1\end{bmatrix}\\\alpha_1\begin{bmatrix}\beta_0\\\beta_1\end{bmatrix}\end{bmatrix} \\&= \begin{bmatrix}\alpha_0\beta_0\\\alpha_0\beta_1\\\alpha_1\beta_0\\\alpha_1\beta_1\end{bmatrix}. \end{aligned} Note that each element of the first vector multiplies the entire second vector. This is often the easiest way to get the tensor products in practice.

The matrix elements of the tensor product operation A\otimes B

are given by (A\otimes B)_{ik,jl} = A_{ij}B_{kl} where ik\in\{00,01,10,11\} labels the rows, and kl\in\{00,01,10,11\} labels columns, when forming the block matrix:83 \begin{aligned} A\otimes B &= \begin{bmatrix}A_{00}&A_{01}\\A_{10}&A_{11}\end{bmatrix} \otimes \begin{bmatrix}B_{00}&B_{01}\\B_{10}&B_{11}\end{bmatrix} \\&= \begin{bmatrix}A_{00}B&A_{01}B\\A_{10}B&A_{11}B\end{bmatrix} \\&= \left[ \, \begin{array}{c|c} \begin{matrix}A_{00}B_{00}&A_{00}B_{01}\\A_{00}B_{10}&A_{00}B_{11}\end{matrix} & \begin{matrix}A_{01}B_{00}&A_{01}B_{01}\\A_{01}B_{10}&A_{01}B_{11}\end{matrix} \\\hline \begin{matrix}A_{10}B_{00}&A_{10}B_{01}\\A_{10}B_{10}&A_{10}B_{11}\end{matrix} & \begin{matrix}A_{11}B_{00}&A_{11}B_{01}\\A_{11}B_{10}&A_{11}B_{11}\end{matrix} \end{array} \, \right] \end{aligned}

The tensor product induces a natural partition of matrices into blocks. Multiplication of block matrices works pretty much the same as regular matrix multiplication (assuming the dimensions of the sub-matrices are appropriate), except that the entries are now matrices rather than numbers, and so may not commute.

  1. Evaluate the following matrix product of (4\times 4) block matrices: \left[ \, \begin{array}{c|c} \mathbf{1}& X \\\hline Y & Z \end{array} \, \right] \left[ \, \begin{array}{c|c} \mathbf{1}& Y \\\hline X & Z \end{array} \, \right] (where X, Y, and Z are the Pauli matrices).

  2. Using the block matrix form of A\otimes B expressed in terms of A_{ij} and B_{ij} (as described above), explain how the following operations are performed on the block matrix:

    • transposition (A\otimes B)^T; partial transpositions A^T\otimes B and A\otimes B^T;
    • trace \operatorname{tr}(A\otimes B); partial traces (\operatorname{tr}A )\otimes B and A\otimes (\operatorname{tr}B).

    Consider the Hadamard transform H\otimes H\otimes H on three qubits, which is described by a (2^3\times2^3) matrix. We know that H = \frac{1}{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix} and so we can calculate that H\otimes H = \frac12 \left[ \, \begin{array}{c|c} \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} \\\hline \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} \end{array} \, \right] and thus that H\otimes H\otimes H = \frac12 \left[ \, \begin{array}{c|c|c|c} \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} \\\hline \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} \\\hline \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} \\\hline \begin{matrix}1&1\\1&-1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} & \begin{matrix}-1&-1\\-1&1\end{matrix} & \begin{matrix}1&1\\1&-1\end{matrix} \end{array} \, \right]. The rows and columns of H\otimes H\otimes H are labelled by the triples 000,001,\ldots,111. Now, suppose we apply H\otimes H\otimes H to the state |110\rangle:

  1. The output state is a superposition of all binary strings: \sum_x c_x|x\rangle, with x\in\{0,1\}^3. Where in the H^{\otimes 3} matrix will you find the coefficients c_x?

    Now, do you want to write down H\otimes H\otimes H\otimes H? I don’t think so. This is an exponentially growing monster and you may soon run out of space if you actually do try to write it down. Instead, let’s spot the pattern of the entries \pm1 in these matrices.

  2. Consider the Hadamard gate matrix H_{ab}, where a,b=0,1 are the labels for the rows and the columns. Observe that H_{ab}=(-1)^{ab}/\sqrt{2}. (This may look like a fancy way of writing the entries of the Hadamard matrix but it will pay off in a moment). Using the fact that (A\otimes B)_{ik,jl} = A_{ij}B_{kl}, or any other method, analyse the pattern of the \pm1 in the tensor product of Hadamard matrices. What is the entry H^{\otimes 4}_{0101,1110}?

  3. For any two binary strings a=(a_1,\ldots, a_n) and b =(b_1,\ldots , b_n) of the same length we can define their “scalar” product as a\cdot b = (a_1b_1\oplus \ldots \oplus a_n b_n). Show that, up to the constant (1/\sqrt{2})^n, the entry H^{\otimes n}_{a,b}, for any n and for any binary strings a and b of length n, is (-1)^{a\cdot b}.

  4. Show that H^{\otimes n} acts as |a\rangle \longmapsto \left(\frac{1}{\sqrt 2}\right)^n \sum_{b\in\{0,1\}^n} (-1)^{a\cdot b}|b\rangle

  5. A quantum register of 10 qubits holds the binary string 0110101001. The Hadamard Transform is then applied to this register yielding a superposition of all binary strings of length 10. What is the sign in front of the |0101010101\rangle term?

5.10.2 The Schmidt decomposition

An arbitrary vector in the Hilbert space \mathcal{H}_{\mathcal{A}}\otimes \mathcal{H}_{\mathcal{B}} can be expanded in a product basis as |\psi\rangle = \sum_{ij} c_{ij}|a_i\rangle|b_j\rangle. Moreover, for each particular joint state |\psi\rangle, we can find orthonormal bases, \{|\widetilde{a_i}\rangle\} in \mathcal{H}_{\mathcal{A}} and \{|\widetilde{b_j}\rangle\} in \mathcal{H}_{\mathcal{B}}, such that |\psi\rangle can be expressed as |\psi\rangle = \sum_{i} d_{i}|\tilde a_i\rangle|\tilde b_i\rangle, where the coefficients d_i are non-negative numbers. This is known as the Schmidt decomposition of |\psi\rangle. Any bipartite state can be expressed in this form, but remember that the bases used depend on the state being expanded. Indeed, given two bipartite states |\psi\rangle and |\phi\rangle, we usually cannot perform the Schmidt decomposition using the same orthonormal bases in \mathcal{H}_{\mathcal{A}} and \mathcal{H}_{\mathcal{B}}. The number of terms in the Schmidt decomposition is, at most, the minimum of \dim\mathcal{H}_{\mathcal{A}} and \dim\mathcal{H}_{\mathcal{B}}.

The Schmidt decomposition follows from the singular value decomposition or SVD): any (n\times m) matrix C can be written as C = UDV where U and V are (respectively) (n\times n) and (m\times m) unitary matrices and D is an (n\times m) diagonal matrix with real, non-negative elements in descending order d_1\geqslant d_2\geqslant\ldots\geqslant d_{\min{(n,m)}} (and with the rest of the matrix is filled with zeros). The elements d_k are called the singular values of C.

You can visualize the SVD by thinking of C as representing a linear transformation from m-dimensional to n-dimensional Euclidean space: it maps the unit ball in the m-dimensional space to an ellipsoid in the n-dimensional space; the singular values are the lengths of the semi-axes of that ellipsoid; the matrices U and V carry information about the locations of those axes and the vectors in the first space which map into them. Thus SVD tells us that the transformation C is composed of rotating the unit ball (transformation V), stretching the axes by factors d_k, and then rotating the resulting ellipsoid (transformation U).

Using the index notation C_{ij} = \sum_k U_{ik}d_k V_{kj}, we can thus apply SVD to c_{ij}, \begin{aligned} |\psi\rangle &= \sum_{ij} c_{ij}|a_ib_j\rangle \\&= \sum_{ij} \sum_k U_{ik}d_k V_{kj}|a_ib_j\rangle \\&= \sum_k d_k \left(\sum_i U_{ik}|a_i\rangle\right)\otimes\left(\sum_j V_{kj}|b_j\rangle\right). \end{aligned} The Schmidt decomposition of a separable state of the form |a\rangle\otimes|b\rangle is trivially just this state. The Bell states \Psi^+ and \Phi^+ are already written in their Schmidt form, whereas \Psi^- and \Phi^- can be easily expressed in the Schmidt form. For example, for |\Psi^-\rangle we have d_1 = d_2 = \frac{1}{\sqrt 2}, and the Schmidt basis is |\bar a_1\rangle =|0\rangle, |\bar a_2\rangle=|1\rangle, |\bar b_1\rangle = |1\rangle, |\bar b_2\rangle=-|0\rangle. The number of non-zero singular values of c_{ij} is called the rank of c_{ij}, or the rank of the corresponding quantum state, or sometimes, the Schmidt number. Clearly, all bipartite states of rank one are separable.

The Schmidt decomposition is almost unique. The ambiguity arises when we have two or more identical singular values, as, for example, in the case of the Bell states. Then any unitary transformation of the basis vectors corresponding to a degenerate singular value, both in \mathcal{H}_a and in \mathcal{H}_b, generates another set of basis vectors.


  1. We always use the lexicographic order 00<01<10<11.↩︎