Skip to content

Spin Precession in Three Pictures Notebook

This notebook guide specifies a reproducible spin-precession calculation in three equivalent pictures of quantum mechanics. The purpose is to make picture equivalence computationally visible: states and operators may carry time dependence differently, but physical expectation values agree.

The existing source notebook notebooks/wave-mechanics-canonical-systems/two-level-systems/two-level-system-dynamics.ipynb provides a compatible two-level dynamics benchmark. A Dynamics-specific notebook should extend that style by computing the same spin expectation values in the Schrödinger, Heisenberg, and interaction pictures and comparing them numerically.

The notebook should show:

  • spin-half precession in a constant magnetic-field-like Hamiltonian;
  • state evolution in the Schrödinger picture;
  • Pauli-operator evolution in the Heisenberg picture;
  • an interaction-picture split with matching expectation values;
  • numerical equality checks between all three pictures.

The central validation target is not a plot. It is the equality

⟨A⟩S(t)=⟨A⟩H(t)=⟨A⟩I(t)\langle A\rangle_S(t) = \langle A\rangle_H(t) = \langle A\rangle_I(t)

for the same physical observable AA.

Use a spin-half Hamiltonian written in Pauli-matrix form:

H=ℏ2Ω⋅σ,H = \frac{\hbar}{2} \boldsymbol\Omega\cdot\boldsymbol\sigma,

where

σ=(σx,σy,σz),\boldsymbol\sigma=(\sigma_x,\sigma_y,\sigma_z),

and Ω\boldsymbol\Omega is a constant vector with units of angular frequency. A useful nontrivial benchmark is

Ω=(Ωx,0,Ωz),\boldsymbol\Omega=(\Omega_x,0,\Omega_z),

so the interaction-picture split can separate the zz part from the transverse xx part.

The exact unitary is

U(t)=cos⁡(Ωt2)I−isin⁡(Ωt2)Ω^⋅σ,U(t) = \cos\left(\frac{\Omega t}{2}\right)I - i\sin\left(\frac{\Omega t}{2}\right) \hat{\boldsymbol\Omega}\cdot\boldsymbol\sigma,

where

Ω=∣Ω∣,Ω^=ΩΩ.\Omega=\lvert\boldsymbol\Omega\rvert, \qquad \hat{\boldsymbol\Omega} = \frac{\boldsymbol\Omega}{\Omega}.

This closed form is the analytic benchmark for the notebook.

In the Schrödinger picture,

∣ψS(t)⟩=U(t)∣ψ(0)⟩,\lvert\psi_S(t)\rangle = U(t)\lvert\psi(0)\rangle,

and

⟨σj⟩S(t)=⟨ψS(t)∣σj∣ψS(t)⟩.\langle\sigma_j\rangle_S(t) = \langle\psi_S(t)\rvert\sigma_j\lvert\psi_S(t)\rangle.

In the Heisenberg picture,

σj,H(t)=U†(t)σjU(t),\sigma_{j,H}(t) = U^\dagger(t)\sigma_jU(t),

while the state is fixed:

∣ψH⟩=∣ψ(0)⟩.\lvert\psi_H\rangle=\lvert\psi(0)\rangle.

The expectation value is

⟨σj⟩H(t)=⟨ψH∣σj,H(t)∣ψH⟩.\langle\sigma_j\rangle_H(t) = \langle\psi_H\rvert\sigma_{j,H}(t)\lvert\psi_H\rangle.

The Heisenberg equation gives the vector precession law

dσHdt=Ω×σH.\frac{d\boldsymbol\sigma_H}{dt} = \boldsymbol\Omega\times\boldsymbol\sigma_H.

For the interaction picture, split

H=H0+V,H=H_0+V,

with

H0=ℏΩz2σz,V=ℏΩx2σx.H_0=\frac{\hbar\Omega_z}{2}\sigma_z, \qquad V=\frac{\hbar\Omega_x}{2}\sigma_x.

Then

U0(t)=e−iH0t/ℏ,U_0(t)=e^{-iH_0t/\hbar},

and the interaction-picture objects are

∣ψI(t)⟩=U0†(t)∣ψS(t)⟩,\lvert\psi_I(t)\rangle = U_0^\dagger(t)\lvert\psi_S(t)\rangle,

and

σj,I(t)=U0†(t)σjU0(t).\sigma_{j,I}(t) = U_0^\dagger(t)\sigma_jU_0(t).

The interaction-picture expectation value is

⟨σj⟩I(t)=⟨ψI(t)∣σj,I(t)∣ψI(t)⟩.\langle\sigma_j\rangle_I(t) = \langle\psi_I(t)\rvert \sigma_{j,I}(t) \lvert\psi_I(t)\rangle.

This expression should match the Schrödinger and Heisenberg results at every sampled time.

Use explicit 2×22\times2 matrices:

σx=(0110),σy=(0−ii0),σz=(100−1).\sigma_x= \begin{pmatrix} 0&1\\ 1&0 \end{pmatrix}, \quad \sigma_y= \begin{pmatrix} 0&-i\\ i&0 \end{pmatrix}, \quad \sigma_z= \begin{pmatrix} 1&0\\ 0&-1 \end{pmatrix}.

Set ℏ=1\hbar=1 in the code unless physical units are part of the exercise. Choose an initial state, such as the +x+x spin state

∣+x⟩=12(11).\lvert +x\rangle = \frac{1}{\sqrt2} \begin{pmatrix} 1\\ 1 \end{pmatrix}.

For each time tnt_n:

  1. Build U(tn)U(t_n) from the exact closed form.
  2. Compute ∣ψS(tn)⟩=U(tn)∣ψ(0)⟩\lvert\psi_S(t_n)\rangle=U(t_n)\lvert\psi(0)\rangle.
  3. Compute σj,H(tn)=U†(tn)σjU(tn)\sigma_{j,H}(t_n)=U^\dagger(t_n)\sigma_jU(t_n).
  4. Build U0(tn)U_0(t_n) and compute the interaction-picture state and operators.
  5. Evaluate ⟨σx⟩\langle\sigma_x\rangle, ⟨σy⟩\langle\sigma_y\rangle, and ⟨σz⟩\langle\sigma_z\rangle in all three pictures.
  6. Assert that the three answers agree within tolerance.

No numerical ODE solver is required for the baseline notebook. An optional extension can integrate the interaction-picture equation and compare the result with the exact U0†(t)U(t)U_0^\dagger(t)U(t).

Use a NumPy-only baseline. A reliable first parameter set is

Ωx=0.7,Ωz=1.3,ℏ=1.\Omega_x=0.7, \qquad \Omega_z=1.3, \qquad \hbar=1.

Sample several periods of the total precession frequency

Ω=Ωx2+Ωz2.\Omega=\sqrt{\Omega_x^2+\Omega_z^2}.

The notebook should print or assert:

  • unitarity residuals for U(t)U(t) and U0(t)U_0(t);
  • equality residuals between pictures;
  • Bloch-vector norm;
  • conservation of the Bloch-vector component along Ω\boldsymbol\Omega;
  • Pauli algebra checks at initialization.

Plots are useful after the assertions pass. A good plot shows the three components of the Bloch vector versus time, but the validation cells should remain independent of plotting.

The Bloch vector

r(t)=⟨σ⟩(t)\mathbf r(t) = \langle\boldsymbol\sigma\rangle(t)

rotates about Ω\boldsymbol\Omega. Its norm is preserved for a pure state:

∣r(t)∣=1.\lvert\mathbf r(t)\rvert=1.

The component along the precession axis is conserved:

r(t)⋅Ω^=r(0)⋅Ω^.\mathbf r(t)\cdot\hat{\boldsymbol\Omega} = \mathbf r(0)\cdot\hat{\boldsymbol\Omega}.

For the special case Ω=(0,0,Ω)\boldsymbol\Omega=(0,0,\Omega) and initial state ∣+x⟩\lvert +x\rangle,

⟨σx⟩(t)=cos⁡Ωt,⟨σy⟩(t)=sin⁡Ωt,⟨σz⟩(t)=0.\langle\sigma_x\rangle(t)=\cos\Omega t, \qquad \langle\sigma_y\rangle(t)=\sin\Omega t, \qquad \langle\sigma_z\rangle(t)=0.

This simple case is a useful sign-convention check.

The minimum validation suite should include:

CheckTarget
Pauli algebraσiσj=δijI+iϵijkσk\sigma_i\sigma_j=\delta_{ij}I+i\epsilon_{ijk}\sigma_k
UnitarityU†U=IU^\dagger U=I and U0†U0=IU_0^\dagger U_0=I
Picture equalityall three ⟨σj⟩(t)\langle\sigma_j\rangle(t) values agree
Bloch norm∣r(t)∣=1\lvert\mathbf r(t)\rvert=1 for pure states
Axis projectionr(t)⋅Ω^\mathbf r(t)\cdot\hat{\boldsymbol\Omega} is constant
Special-case signszz-axis precession matches the analytic sine and cosine formulas

The equality check should compare arrays over all sampled times, not just one time point.

For the exact-unitary baseline, convergence mainly means verifying floating-point stability and sampling resolution. If the notebook adds numerical integration of the interaction-picture equation, convergence should be checked by reducing the time step and comparing with the exact unitary.

For a time-stepper, useful residuals are:

max⁡t∥Unum†(t)Unum(t)−I∥,\max_t \left\lVert U_{\rm num}^\dagger(t)U_{\rm num}(t)-I \right\rVert,

and

max⁡t∥Unum(t)−Uexact(t)∥.\max_t \left\lVert U_{\rm num}(t)-U_{\rm exact}(t) \right\rVert.

If the integrator is not exactly unitary, the Bloch-vector norm may drift. That drift should be reported, not hidden by normalizing after every step unless the method explicitly includes such a projection.

  • Changing the sign convention for HH without updating the expected precession direction.
  • Comparing a Schrödinger-picture state with a Heisenberg-picture operator incorrectly.
  • Treating a global phase difference between state vectors as a physical disagreement.
  • Forgetting complex conjugation in expectation values.
  • Using a nonunitary time stepper and missing Bloch-norm drift.
  • Testing only σz\sigma_z when σz\sigma_z happens to be conserved.
  • Mixing conventions for spin operators Sj=ℏσj/2S_j=\hbar\sigma_j/2 and Pauli matrices σj\sigma_j.

Natural extensions include:

  • add a rotating frame and connect it to the interaction picture;
  • use a time-dependent transverse drive and compare with a time-ordered numerical solution;
  • add a Rabi-oscillation benchmark;
  • compare exact unitary evolution with first-order and second-order time stepping;
  • add mixed states and verify density-matrix evolution;
  • add dephasing only after the closed-system picture equivalence is validated.
  • J. J. Sakurai and J. Napolitano, Modern Quantum Mechanics, 3rd ed., Cambridge University Press, 2020.
  • R. Shankar, Principles of Quantum Mechanics, 2nd ed., Springer, 1994.
  • D. J. Griffiths and D. F. Schroeter, Introduction to Quantum Mechanics, 3rd ed., Cambridge University Press, 2018.
  • J. M. Thijssen, Computational Physics, 2nd ed., Cambridge University Press, 2007.
  1. For H=ℏΩσz/2H=\hbar\Omega\sigma_z/2 and initial state ∣+x⟩\lvert +x\rangle, compute ⟨σx⟩(t)\langle\sigma_x\rangle(t) and ⟨σy⟩(t)\langle\sigma_y\rangle(t).
Solution

The unitary is

U(t)=e−iΩtσz/2.U(t)=e^{-i\Omega t\sigma_z/2}.

The state evolves to

∣ψ(t)⟩=12(e−iΩt/2eiΩt/2).\lvert\psi(t)\rangle = \frac{1}{\sqrt2} \begin{pmatrix} e^{-i\Omega t/2}\\ e^{i\Omega t/2} \end{pmatrix}.

Direct evaluation gives

⟨σx⟩(t)=cos⁡Ωt,⟨σy⟩(t)=sin⁡Ωt.\langle\sigma_x\rangle(t)=\cos\Omega t, \qquad \langle\sigma_y\rangle(t)=\sin\Omega t.
  1. Why should the three pictures give the same spin expectation values?
Solution

The pictures are related by unitary transformations that move time dependence between states and operators. For example,

⟨ψS(t)∣AS∣ψS(t)⟩=⟨ψ(0)∣U†(t)ASU(t)∣ψ(0)⟩.\langle\psi_S(t)\rvert A_S\lvert\psi_S(t)\rangle = \langle\psi(0)\rvert U^\dagger(t)A_SU(t)\lvert\psi(0)\rangle.

The right-hand side is the Heisenberg-picture expectation value. The interaction picture is another unitary redistribution of the same time dependence, so the scalar expectation value is unchanged.

  1. What validation check detects a sign error in the Hamiltonian convention?
Solution

The special case Ω=(0,0,Ω)\boldsymbol\Omega=(0,0,\Omega) with initial state ∣+x⟩\lvert +x\rangle detects the sign. With the convention H=ℏΩσz/2H=\hbar\Omega\sigma_z/2, the expected result is

⟨σx⟩=cos⁡Ωt,⟨σy⟩=sin⁡Ωt.\langle\sigma_x\rangle=\cos\Omega t, \qquad \langle\sigma_y\rangle=\sin\Omega t.

Changing the sign of HH reverses the sign of the σy\sigma_y expectation.

  1. Why is comparing state-vector components across pictures a poor validation test?
Solution

Different pictures intentionally assign time dependence to different objects. State vectors in different pictures need not have the same components, and they may differ by unitary transformations or global phases. Physical validation should compare expectation values, transition probabilities, unitarity, and invariant quantities such as Bloch-vector norm.