Understanding The Bloch Sphere

Introduction

In quantum computing, a qubit is a vector of the form

|ψ=a|0+b|1

where a,bC are complex numbers satisfying

ψ|ψ=|a|2+|b|2=1

In other words, the state space of a single qubit is the set of unit vectors in the two dimensional complex vector space C2 with basis vectors |0 and |1.

Operations on a single qubit are linear transformations which preserve the norm and therefore correspond to 2×2 unitary matrices UU(2).

The vector space C2 is a four dimensional real vector space, and the constraint |a|2+|b|2=1 means that the state space of a qubit can be identified with the three dimensional sphere in four dimensional space S3R4. Concretely, if a=x+yi and b=z+wi then |a|2=x2+y2 and |b|2=z2+w2 and so the state space of a qubit consists of the points (x,y,z,w)R4 satisfying:

x2+y2+z2+w2=1

which is precisely the definition of a sphere in four dimensions with radius 1.

It is difficult to visualize S3 and even more difficult to imagine how it behaves under unitary transformations.

The Bloch Sphere is a projection of the state space onto the more familiar two dimensional sphere in three dimensional space S2R3. Importantly, under this projection unitary transformations of the state space correspond to ordinary rotations of the sphere. Furthermore, there is an explicit formula that determines precisely which rotation corresponds to a given unitary matrix. This makes the Bloch Sphere an indispensible tool for analyzing single qubit operations.

The classic formula for the rotation of the Bloch Sphere associated to a unitary matrix U is given in terms of matrix exponentials of Pauli Matrices.

The goal of this post is to present an alternative version of the formula that describes the rotation in terms of the eigenvalues and eigenvectors of U. In addition to using only intrinsic properties of U, this version has a fairly intuitive proof.

We’ll conclude the post by using this alternative version to provide a succinct proof of the classic formula.

The Bloch Sphere

As stated in the introduction, a single qubit is a vector of the form

|ψ=a|0+b|1

where a,bC are complex numbers satisfying

|a|2+|b|2=1

Due to this constraint, we can parameterize the qubit with three angles as:

|ψ=eiφ0cos(θ/2)|0+eiφ1sin(θ/2)|1

We can factor out a global phase eiφ0 and, after defining φ=φ1φ0, rewrite this as:

|ψ=eiφ0(cos(θ/2)|0+eiφsin(θ/2)|1)

Recall that in spherical coordinates the pair of angles (θ,φ) define a point on the unit sphere:

Source: Wikipedia

The Bloch sphere projection maps the qubit state |ψ to the point on the sphere with spherical coordinates (θ,φ). In cartesian coordinates this point is equal to:

(cosφsinθ,sinφsinθ,cosθ)R3

To facilitate notation, we will denote the Bloch projection by Bloch:

Bloch:C2R3

Note that this projection ignores the global phase eiφ0. The physical motivation for this is that due to the properties of quantum measurement a global phase has no observable effect.

For example, consider the state:

|ψ=12(|0+|1)

We can write this as

|ψ=cos(θ/2)|0+eiφsin(θ/2)|1

for θ=π/2 and φ=0. Therefore, by the definition of the Bloch projection:

Bloch(|ψ)=(cos(0)sin(π/2),sin(0)sin(π/2),cos(π/2))=(1,0,0)

Unitary Transformations

Recall that a 2×2 unitary matrix U is a 2×2 matrix with complex values satisfying

UU=I

where U denotes the complex conjugate of U. The set of unitary matrices together with matrix multiplication forms the Unitary Group denoted U(2).

We can represent a qubit state |ψ=a|0+b|1 as a length 2 column vector in C2:

|ψ=[ab]

We can therefore transform a qubit state |ψ by a unitary matrix U via matrix multiplication:

U|ψ=U[ab]

For example, consider the state

|ψ=12(|0+|1)

and the unitary matrix:

Z=[1001]

Applying Z to |ψ gives us:

Z|ψ=12(|0|1)

The Bloch Rotation Theorem

All operations (with the exception of measurement) that we can physically apply to a qubit can be represented by transformation by a unitary matrix U. It is therefore natural to wonder what multiplication by U corresponds to on the Bloch sphere. Or, more precisely, what is the relationship between the points Bloch(|ψ)R3 and Bloch(U|ψ)R3?

Motivating Example

We’ll start by answering this question for the unitary matrix Z from the previous example. If we apply Z to a general qubit state:

|ψ=cos(θ/2)|0+eiφsin(θ/2)|1

we get:

Z|ψ=cos(θ/2)|0eiφsin(θ/2)|1=cos(θ/2)|0+ei(φ+π)sin(θ/2)|1

In terms of spherical coordinates, Z transforms the coordinates (θ,φ) to (θ,φ+π). On the Bloch sphere, adding π to the φ coordinate corresponds to rotation by π radians around the z-axis.

We can easily generalize this example to unitary matrices of the form

Zα=[100eiα]

Clearly

Zα|ψ=cos(θ/2)|0+ei(φ+α)sin(θ/2)|1

and so multiplication by Zα corresponds to rotating the Bloch sphere by α radians around the z-axis.

Theorem Statement

We’ll now generalize the example in the previous section to an arbitrary unitary matrix UU(2). In order to formalize the result, it is helpful to define the function

F:U(2)Aut(R3)

which sends a unitary matrix U to the corresponding automorphism of the Bloch sphere. In other words, F is defined to satisfy

Bloch(U|ψ)=F(U)Bloch(|ψ)

for any qubit state |ψC2 and unitary UU(2).

We will also use the notation Rotn(α) to denote rotation of R3 by α radians around the axis nR3.

Using this notation, we can restate our above observations about Zα more compactly as:

F(Zα)=Rotz(α)

where z=(0,0,1) denotes the z-axis.

We can now state the general correspondence between unitary transformations of qubits and rotations of the Bloch Sphere.

Theorem (Bloch Rotation). Let UU(2) be a unitary matrix with eigenvalues λ1,λ2C and corresponding eigenvectors |ψ1,|ψ2C2. Then

F(U)=Rotn(α)

Where n=Bloch(|ψ1) and α is the angle satisfying λ2/λ1=eiα. In other words, transforming qubits by U corresponds to rotating the Bloch Sphere by α radians around the axis n.

To see how this works, let’s apply the theorem to the unitary matrix Zα from the example above. The eigenvalues of Zα are λ1=1 and λ2=eiα with eigenvectors |ψ1=|0 and ψ2=|1.

According to the theorem, the axis of rotation is:

n=Bloch(|ψ1)=Bloch(|0)=(0,0,1)

which is indeed equal to the z-axis z. To find the angle of rotation, we can compute:

λ2/λ1=eiα/1=eiα

which by the theorem implies that the angle of rotation is equal to α as we found above.

Note that it is not obvious from the definition of the Bloch projection that F(U) is even a rotation at all. We can think of the Bloch Rotation theorem as consisting of two parts:

  1. A unitary transformation U of qubit states corresponds to some rotation F(U) of the Bloch sphere.
  2. A formula relating the angle and axis of the rotation F(U) to the eigenvalues and eigenvectors of U.

In the next section we will prove the angle and axis formula under the assumption that F(U) is indeed a rotation. In the following sections we’ll introduce an alternative formulation of the Bloch projection and use it to prove that F(U) is always a rotation.

Proof: Part 1

In this section we will prove the Bloch Rotation theorem under the assumption that F(U) is always a rotation of R3. The set of rotations of R3 forms a group called the Special Orthogonal Group denoted SO(3). So we can rephrase our assumption on F as saying that F is a function from the group of unitary matrices U(2) to the group of rotations SO(3):

F:U(2)SO(3)

We saw in the previous section that the Bloch Rotation theorem holds for the unitary matrices

Zα=[100eiα]

Our strategy to prove the general case is to show that an arbitrary unitary matrix U can be transformed to Zα using a change of coordinates. This will allow us to deduce the general case of the theorem from the special case of Zα.

We’ll start by proving some simple facts about the function F.

Lemma (Composition). Let U and V be unitary matrices. Then

F(UV)=F(U)F(V)

Proof. By the definition of F, for any state |ψ we have:

F(UV)Bloch(|ψ)=Bloch(UV|ψ)=F(U)Bloch(V|ψ)=F(U)F(V)Bloch(|ψ)

Since the Bloch projection is onto, this means that

F(UV)v=F(U)F(V)v

for any vector v on the Bloch sphere which implies that F(UV)=F(U)F(V).

q.e.d

Lemma (Inverse). Let UU(2) be a unitary matrix. Then

F(U1)=F(U)1

Proof. This follows directly from the composition lemma above and the fact that F maps the identity in U(2) to the identity in SO(3).

q.e.d

Lemma (Scalar Multiplication). Let UU(2) be a unitary matrix and λC be a complex number with norm 1. Then

F(λU)=F(U)

Proof. This follows immediately from the definition of F and the fact that the Bloch projection is invariant under scalar multiplication by complex numbers with norm 1.

q.e.d

Lemma (Z Axis). Let UU(2) be a unitary matrix and let |ψC2 be the first column of U. Then

F(U)z=Bloch(|ψ)

where z=(0,0,1)R3 denotes the z-axis.

Proof. By the definition of |ψ,

U|0=|ψ

Furthermore, direct calculation easily shows that

Bloch(|0)=z

The claim follows from these two observations together with the definition of F:

F(U)z=F(U)Bloch(|0)=Bloch(U|0)=Bloch(|ψ)

q.e.d

We are now ready to prove the Bloch Rotation theorem.

Let UU(2) be a unitary matrix. By the unitary property, it has two eigenvalues λ1,λ2C which both have an absolute value of 1 (wikipedia). Let |ψ1,|ψ2C2 be the corresponding eigenvectors.

Let VC2×2 denote the matrix whose columns are the eigenvectors.

By the eigendecomposition theorem, we can factor U as:

U=V[λ100λ2]V1

Dividing by λ1 and setting α to satisfy eiα=λ2/λ1 we get:

1λ1U=VZαV1

By the scalar multiplication, composition and identity lemmas:

F(U)=F(1λ1U)=F(VZαV1)=F(V)F(Zα)F(V)1=F(V)Rotz(α)F(V)1

In summary:

(1)F(U)=F(V)Rotz(α)F(V)1

By the z-axis lemma and the definition of V, F(V) transforms the z-axis in R3 to Bloch(|ψ1). Combining this with equation 1 we see that F(U) first applies the rotation F(V)1 which rotates Bloch(|ψ1) to the z-axis, then preforms a rotation of α radians around the z-axis and then applies F(V) which rotates the z-axis back to Bloch(|ψ1). This sequence of operations clearly fixes Bloch(|ψ1). It is also easy to see that it rotates the plane orthogonal to Bloch(|ψ1) by α radians. Together this proves the theorem.

Reflections

In this section we will start to develop an alternative formulation of the Bloch projection. In addition to being interesting in its own right, this new perspective will make it easy to prove that unitary transformations of qubits always correspond to rotations of the Bloch sphere which will complete our proof of the Bloch Rotation theorem.

Definition (Reflection). Let |ψC2 be a qubit state. The reflection with axis |ψ, denoted Ref(|ψ), is defined to be the linear transformation of C2 that fixes |ψ and scales the vector orthogonal to |ψ by 1.

More concretely, if |ψC2 denotes a vector orthogonal to |ψ then Ref(|ψ) is defined to satisfy:

Ref(|ψ)|ψ=|ψRef(|ψ)|ψ=|ψ

In terms of coordinates, if |ψ=a|0+b|1 then |ψ=b|0+a|1 and so:

(2)Ref(|ψ)=[abba][1001][abba]=[aabb2ab2abaa+bb]

Clearly the eigenvalues of Ref(|ψ) are 1 and 1 which implies that Ref(|ψ) is Hermitian. Furthermore, since the trace of a matrix is equal to the sum of its eigenvalues, the trace of Ref(|ψ) is 0. We’ll denote the vector space of 2×2 Hermitian matrices with trace 0 by su(2) and define the reflection function:

Ref:C2su(2)|ψRef(|ψ)

Pauli Matrices

We’ll now find a basis for the vector space su(2). Let Msu(2) be a matrix with coefficients:

M=[abcd]

where a,b,c,dC. The Hermitian condition means that M=M and so

[abcd]=[acbd]

This implies that a and d are real numbers and that c=b.

The trace 0 condition implies that:

tr(M)=a+d=0

and so a=d. Setting a=zR and c=x+yiC we can write M as:

M=[zxyix+yiz]=x[0110]+y[0ii0]+z[1001]

for some real numbers x,y,zR. The matrices

X=[0110]Y=[0ii0]Z=[1001]

are called Pauli Matrices. It is easy to see that all three Pauli matrices are in su(2). The above calculation shows that the Pauli matrices form a real basis for su(2). In particular this implies that su(2) is a three dimensional real vector space.

We’ll define the Pauli function

Pauli:su(2)R3

to be the function that sends a matrix Msu(2) to it’s coordinates with respect to the basis of Pauli matrices X,Y,Zsu(2).

The vector space su(2) has an inner product defined by the Frobenious Product. Specifically, the inner product of A,Bsu(2) is defined to be:

(A,B):=12tr(AB)

It is not hard to see via direct calculation that the Pauli matrices form an orthonormal basis for su(2). For example:

XZ=[0110]

which implies that X and Z are orthogonal:

(X,Z)=12tr(XZ)=0

Another Path To Bloch

We can reformulate the Bloch projection in terms of the Ref and Pauli operators:

Claim (Bloch From Reflections). Let |ψC2 be a qubit state. Then:

Bloch(|ψ)=Pauli(Ref(|ψ))

We can understand the claim in terms of the following diagram:

Bloch Factorization

The diagram shows two ways to map a point in C2 to R3. We can either follow the top arrow or compose the two bottom ones. The claim states that both paths are equivalent.

The rest of this section will be dedicated to proving the claim.

First let’s obtain a more concrete version of the Pauli basis map Pauli. Since the Pauli matrices X,Y,Zsu(2) form an orthonormal basis, the coordinates of a matrix Msu(2) in the Pauli basis are given by the inner products with X, Y and Z:

(3)Pauli(M)=((M,X),(M,Y),(M,Z))

Consider the qubit state

|ψ=a|0+b|1

We’ll use equations 2 and 3 to compute Pauli(Ref(|ψ)).

By equation 2 it’s easy to see that

(Ref(|ψ),X)=12tr(Ref(|ψ)X)=ab+ab(Ref(|ψ),Y)=12tr(Ref(|ψ)Y)=i(abab)(Ref(|ψ),Z)=12tr(Ref(|ψ)Z)=aabb

By equation 3 this implies:

(4)Pauli(Ref(|ψ))=(ab+ab,i(abab),aabb)

If |ψ has the form

|ψ=cos(θ/2)|0+eiφsin(θ/2)|1

then plugging a=cos(θ/2) and b=eiφsin(θ/2) into equation 4, together with standard trig identities and Euler’s formula gives us:

Pauli(Ref(|ψ))=(cosφsinθ,sinφsinθ,cosθ)

which by definition is equal to Bloch(|ψ). This concludes the proof of claim Bloch From Reflections.

Proof: Part 2

In this section we will prove that unitary transformations UU(2) on C2 correspond to rotations of the Bloch sphere in R3. This will complete the proof of the Bloch Rotation theorem.

To be precise, a rotation of R3 is defined as a linear transformation that preserves the inner product and orientation.

By claim Bloch From Reflections in the previous section, the Bloch projection can be decomposed into the composition of the reflection map Ref and the Pauli basis map:

Bloch Factorization

Since Pauli is an isomorphism of inner product spaces, rotations of the inner product space su(2) correspond under the Pauli map to rotations of R3. So we just need to show that unitary transformations of C2 correspond to rotations of su(2) under Ref.

Let UU(2) be a unitary transformation. We will define G(U) to be the corresponding transformation of su(2). More precisely, G(U) is defined to be the unique transformation of su(2) satisfying:

Ref(U|ψ)=G(U)Ref(|ψ)

for all |ψC2. Our goal in this section is to prove that for every unitary matrix UU(2), G(U) is a rotation of su(2).

By definition, Ref(|ψ)su(2) is a reflection along the vector |ψC2. Similarly, Ref(U|ψ)su(2) is a reflection along the vector U|ψC2. This means that we can obtain Ref(U|ψ) by applying a change of basis to Ref(|ψ) via the unitary matrix U:

Ref(U|ψ)=URef(|ψ)U

In particular, this implies that for all Msu(2):

G(U)M=UMU

Clearly G(U) is a linear transformation of M. We’ll now show that G(U) preserves the inner product. Let M and N be elements of su(2). By the definition of the inner product, the trace cyclic property, and the fact that U is unitary we have:

(G(U)M,G(U)N)=(UMU,UNU)=12tr(UMUUNU)=12tr(UMNU)=12tr(MNUU)=12tr(MN)=(M,N)

This proves that G(U) preserves the inner product. The last step in proving that G(U) is a rotation is to show that it preserves orientation. To see why this is true, note that if IU(2) is the identity matrix then G(I) is the identity on su(2) and in particular preserves orientation. Since U(2) is connected and G:U(2)O(3) is continuous, this implies that G(U) preserves orientation for all UU(2).

The Pauli Vector Rotation Formula

The standard relationship between unitary transformations of qubits and rotations of the Bloch Sphere is stated in terms of Pauli Vectors. The Pauli Vector is defined to be the tuple of Pauli matrices:

σ=(X,Y,Z)

Analogously to the dot product, the product of a vector v=(x,y,z)R3 and σ is defined to be:

vσ=xX+yY+zZsu(2)

Since vσ is a traceless Hermitian matrix, the matrix exponential eivσ is unitary.

The connection to the Bloch Sphere comes from the following theorem:

Theorem (Pauli Vector Rotation Formula). Let θR be a real number and nR3 be a unit vector. Let U be the unitary matrix U=eiθ2nσU(2). Then transforming qubit states by U corresponds to a rotation by θ radians around the axis n on the Bloch sphere. More precisely, for every qubit state |ψC2:

Bloch(U|ψ)=Rn(θ)(Bloch(|ψ))

We’ll prove this theorem using the Bloch Rotation theorem and Bloch From Reflections.

In order to apply the Bloch Rotation theorem to U=eiθ2nσ we need to find the eigenvalues and eigenvectors of U. For this we’ll use the following lemma:

Lemma (Pauli Vector Norm). Let vR3 be a vector. Then

det(vσ)=||v||2

Proof. We’ll denote the coordinates of v by v=(x,y,z). Then by the definition of σ:

vσ=xX+yY+zZ=[zx+yixyiz]

And so

det(vσ)=x2y2z2=||v||2

q.e.d

To facilitate notation, we’ll define

M=nσ

According to the lemma, if ||n||=1 then det(M)=1. Since M=nσ is Hermitian with zero trace and determinant equal to 1, this means that its eigenvalues λ1(M) and λ2(M) are real numbers satisfying:

(5)λ1(M)+λ2(M)=tr(M)=0(6)λ1(M)λ2(M)=det(M)=1

This means that one of the eiganvalues must be 1 and the other is 1. We’ll set λ1(M)=1 and λ2(M)=1. This means that we can diagonalize M as:

M=VZV

where the columns of V are the eigenvectors of M. By elementary properties of the matrix exponential, this implies that:

U=eiθ2M=eiθ2VZV=Veiθ2ZV=V[eiθ200eiθ2]V

This shows that the eigenvalues of U are:

λ1(U)=eiθ2λ2(U)=eiθ2

and that the eigenvectors of U are equal to the eigenvectors of M.

We can now apply theorem Bloch Rotation to U. We just saw that the first eigenvector of U, |ψ1 is equal to the first eigenvector of M. Since the eigenvalues of M are λ1(M)=1 and λ2(M)=1, M is a reflection matrix and

Ref(|ψ1)=M

By Bloch From Reflections:

Bloch(|ψ1)=Pauli(Ref(|ψ1))=Pauli(M)

But since by definition M=nσ we have:

Pauli(M)=n

Together we’ve shown that

Bloch(|ψ1)=n

By the Bloch Rotation theorem this means that U corresponds to a rotation of the Bloch Sphere around the axis n.

Furthermore, since

λ2(U)/λ1(U)=eiθ

the theorem implies that U corresponds to rotation by θ radians around n.

Comments

The comments are powered by the utterences Github app. If you do not want the app to post on your behalf, you can comment directly on this Github issue.