The Bloch Sphere
Two real numbers describe a qubit's state — and two real numbers are the latitude and longitude of a point on a sphere. The Bloch sphere turns the algebra of into geometry you can see: states are points, gates are rotations, orthogonal states are antipodes. It is the single most useful picture in all of single-qubit quantum computing, and we'll lean on it constantly.
Learning Objectives
After this lesson you will be able to:
- Derive the Bloch-sphere parametrization .
- Compute the Bloch vector of a pure state.
- Locate the standard states () on the sphere.
- Explain why antipodal points are orthogonal and why gates act as rotations.
- Map states to Bloch vectors in NumPy.
Intuition
In 1.1.1 E5 we counted a qubit's degrees of freedom: four real numbers in , minus one for normalization, minus one for the unobservable global phase, leaving two. Two angles parametrize a sphere. So the set of pure qubit states is (geometrically) the surface of a unit ball — the Bloch sphere. The north and south poles are and ; the equator holds the "equal-superposition" states whose only difference is a relative phase. Once you internalize this, single-qubit gates stop being matrices and become rotations of a sphere, which is far easier to reason about.
Theory
The parametrization
Start from a general . Write in polar form and factor out the global phase of (which is unobservable, 1.1.1). Normalization lets us set , for a unique . The only surviving phase is the relative phase between and . Hence
The half-angle is not a typo — it's what makes the map to the sphere exact (and why a rotation in takes you only halfway, the famous spin- sign; see Exercises).
The Bloch vector
Map to the point
The components are exactly the expectation values of the Pauli operators:
Derivation of the -component. $\langle Z\rangle = \langle\psi|Z|\psi\rangle = |\alpha|^2 - |\beta|^2 = \cos^2\tfrac\theta2 - \sin^2\tfrac\theta2 = \cos\theta = r_z$. ✓ Similarly (Exercise E1) and . For a pure state (on the surface); mixed states (1.5.3) live inside the ball with , and (Appendix E).
Landmarks on the sphere
+z = |0> (north pole, θ=0)
|
|-i> ----- + ----- |+i> (±y on the equator)
/ | \
|-> ---/ | \--- |+> (±x on the equator, φ=0 and φ=π)
|
-z = |1> (south pole, θ=π)| State | Bloch vector | Axis | |
|---|---|---|---|
Antipodes are orthogonal; gates are rotations
Two key geometric facts:
- Orthogonal ⟺ antipodal. A state and its orthogonal partner sit at opposite points of the sphere (, ). E.g. are the two poles; are . (Note: a physical angle between measurement axes corresponds to a angle on the Bloch sphere — the half-angle again.)
- Unitaries are rotations. Every single-qubit unitary acts on as a rotation in ; in particular rotates the Bloch vector by angle about axis (Appendix E). So is a flip about , about , the Hadamard about . This is the geometric heart of Term 2's gate algebra, and the picture behind Rabi precession (1.6.2).
All of this section, live. Jump between the landmarks and check that each orthogonal pair sits at opposite ends of a diameter; then apply gates and watch each one turn the whole sphere about a fixed axis, drawn dashed while it turns:
Interactive demo: Bloch sphere. Apply gates to one qubit and follow its state on the sphere, or shrink it into the ball to see mixed states.
Worked Examples
Example 1 — Bloch vector of
has , so and relative phase . Then $\vec r = (\sin\tfrac\pi2\cos0,\ \sin\tfrac\pi2\sin0,\ \cos\tfrac\pi2) = (1,0,0)+x\langle X\rangle = \langle+|X|+\rangle = 1\langle Y\rangle = \langle Z\rangle = 0$. ✓
Example 2 — From Bloch angles to a state vector
The point corresponds to
Check ✓, and ✓.
Hands-on (Python)
import numpy as np
X = np.array([[0, 1], [1, 0]], dtype=complex)
Y = np.array([[0, -1j], [1j, 0]], dtype=complex)
Z = np.array([[1, 0], [0, -1]], dtype=complex)
def state(theta, phi):
return np.array([np.cos(theta/2), np.exp(1j*phi)*np.sin(theta/2)], dtype=complex)
def bloch_vector(psi):
"""(<X>,<Y>,<Z>) for a single-qubit pure state."""
return np.array([np.real(psi.conj() @ M @ psi) for M in (X, Y, Z)])
# Landmarks:
print(np.round(bloch_vector(state(0, 0)), 3)) # |0> -> [0 0 1] (north pole)
print(np.round(bloch_vector(state(np.pi, 0)), 3)) # |1> -> [0 0 -1] (south pole)
print(np.round(bloch_vector(state(np.pi/2, 0)), 3)) # |+> -> [1 0 0]
print(np.round(bloch_vector(state(np.pi/2, np.pi/2)),3))# |+i>-> [0 1 0]
# Pure states have |r| = 1:
r = bloch_vector(state(1.1, 2.0))
print(round(np.linalg.norm(r), 6)) # 1.0# Antipodal = orthogonal. |+> at +x, |-> at -x:
plus = state(np.pi/2, 0)
minus = state(np.pi/2, np.pi)
print(np.round(bloch_vector(plus), 3), np.round(bloch_vector(minus), 3)) # [1 0 0] [-1 0 0]
print(abs(np.vdot(plus, minus))) # 0.0 -> orthogonal
# A gate is a rotation: X flips the Bloch vector 180° about x (z -> -z).
psi0 = state(0, 0) # |0>, r=(0,0,1)
print(np.round(bloch_vector(X @ psi0), 3)) # |1>, r=(0,0,-1)For a rendered 3-D Bloch sphere,
qutip'sBlochclass is excellent (pip install qutip); we keep to the lightweightbloch_vectorhere to avoid an extra dependency, as in Appendix B §7.2.
Exercises
E1 (easy). Derive for .
Solution
. Then $\langle\psi|X|\psi\rangle = \cos\tfrac\theta2,e^{i\varphi}\sin\tfrac\theta2 + e^{-i\varphi}\sin\tfrac\theta2\cos\tfrac\theta2 = 2\sin\tfrac\theta2\cos\tfrac\theta2\cos\varphi = \sin\theta\cos\varphi\tfrac{e^{i\varphi}+e^{-i\varphi}}2=\cos\varphi$ and the double-angle identity. ∎
E2 (easy). Where on the sphere is ?
Solution
(equal magnitudes), relative phase so (or ). — the axis.
E3 (medium). Show that orthogonal states map to antipodal Bloch vectors ().
Solution
The orthogonal partner of is (check ). Its Bloch vector: but , , and . So . ∎
E4 (medium). The gate acts on . Compute the new Bloch vector and describe the geometric action.
Solution
, with . So rotated the Bloch vector from to — a rotation about the -axis (indeed , Appendix E).
Start at and press once to land on . Press it three more times and the state walks the equator a quarter-turn at a time, back to where it began:
Interactive demo: Bloch sphere. Apply gates to one qubit and follow its state on the sphere, or shrink it into the ball to see mixed states.
E5 (hard). Show that (not ), and interpret: why does a "full rotation" return the Bloch vector to itself but multiply the state by ?
Solution
; at this is . The Bloch vector is built from expectation values, which are invariant under the global phase , so it returns to itself after . But the state vector picks up the global and only returns to itself after — the defining signature of spin- and the reason the parametrization uses the half-angle . (This sign is unobservable for an isolated qubit but becomes a real relative phase in a controlled operation — Term 2.4.) ∎
Checkpoint
- Write the Bloch parametrization and explain the half-angle .
- What are the three components of the Bloch vector in terms of observables?
- Give the Bloch vectors of .
- How are orthogonality and antipodality related on the sphere?
- How do single-qubit unitaries act geometrically?
Answers
- ; the half-angle makes the map to exact and reflects the periodicity of spin-.
- .
- , , , .
- Orthogonal states are exactly antipodal (); a axis angle = on the sphere.
- As rotations in : rotates by about axis .
Further Reading
- [NC] Nielsen & Chuang, §1.2, §4.2 — the Bloch sphere and single-qubit rotations.
- [Pre] Preskill, Ph219, Ch. 2 — qubit geometry.
- [QuTiP] QuTiP
Blochclass docs — for 3-D visualization.
← Prev: The Qubit · Up: Term 1 · Next: Bases & Expectation Values →