
Physics V course sequence · Interactive lesson
Hermitian operators and the spectral theorem
Here the week-one linear algebra earns its keep. † =  buys everything measurement needs: real outcomes, mutually exclusive outcome states, and a basis that catches every state. Learn to test for it, run the two-line proofs it powers, and diagonalise past 3×3 with numpy.linalg.eigh.
Build the model
Real values, orthogonal outcomes, a complete basis: all bought by † = Â.
The key idea
A Hermitian operator equals its own adjoint, † = Â, so ⟨φ|Âψ⟩ = ⟨Âφ|ψ⟩ for all states in its domain; its real eigenvalues are the possible results of measuring the observable it represents, and its eigenvectors are the outcome states.
Example. σy = [[0, −i],[i, 0]] equals its own conjugate transpose, so despite the imaginary entries its eigenvalues are the real pair ±1, and its eigenvectors (1, i)/√2 and (1, −i)/√2 obey ⟨+|−⟩ = ½[1⋅1 + (−i)(−i)] = 0 once the first slot is conjugated.
The complete physical model and assumptions
Quantum mechanics needs a mathematical object to stand for a measurable quantity, and Hermiticity is what makes the candidate work. Define the adjoint by how an operator crosses the inner product, ⟨φ|Âψ⟩ = ⟨†φ|ψ⟩, and call  Hermitian when † = Â. That one equation forces everything a measurement requires. Sandwich Â|a⟩ = a|a⟩ between ⟨a| and itself and the eigenvalue equals its own conjugate: measured values are real. Sandwich it between two different eigenvectors and (a − a′)⟨a|a′⟩ = 0: distinct outcomes are orthogonal, hence perfectly distinguishable in a single shot. The spectral theorem finishes the job: a Hermitian operator on a finite-dimensional space has a complete orthonormal eigenbasis, so every state expands as Σ cₙ|aₙ⟩ with Σ |cₙ|² = 1 — the Born rule has somewhere to live. The cost comes in two instalments. Degeneracy leaves you a subspace rather than a direction, and you must orthogonalise within it yourself, by Gram–Schmidt or by a second commuting observable. And in infinite dimensions bare symmetry is not enough: whether −iℏ d/dx is genuinely self-adjoint depends on the boundary conditions that fix its domain, and its eigenfunctions can escape the space entirely, surviving only as δ-normalised distributions.
1The adjoint is defined by the inner product, not the transpose
The adjoint † is whatever operator lets  cross the inner product: ⟨φ|Âψ⟩ = ⟨†φ|ψ⟩ for every pair of states. Choose an orthonormal basis and the abstract definition becomes a recipe: (†)ᵢⱼ = (Âⱼᵢ)* — transpose, then conjugate every entry. A real symmetric matrix passes; so does σy = [[0, −i],[i, 0]], because its imaginary entries mirror into their conjugates; but [[0, i],[i, 0]] fails, since its adjoint is [[0, −i],[−i, 0]], the negative of itself. Two facts fall out before any eigenvalue is computed. Diagonal matrix elements must equal their own conjugates, so they are real. And ⟨ψ|Âψ⟩ = ⟨Âψ|ψ⟩ = ⟨ψ|Âψ⟩* for every state, so every expectation value of a Hermitian operator is real. Keep the physics convention straight: the inner product is conjugate-linear in its first slot, so the star lands on the bra side of every coefficient.
2Two sandwiches: real eigenvalues, orthogonal eigenvectors
Both classic theorems are two-line computations with the same move: evaluate a matrix element twice, once with  acting rightward and once leftward. Take Â|a⟩ = a|a⟩ with ⟨a|a⟩ = 1. Then ⟨a|Â|a⟩ read rightward is a; read leftward, using † = Â, it is a*. So a = a*: every eigenvalue is real. Now take a second eigenvector with a′ ≠ a and evaluate ⟨a|Â|a′⟩ both ways: rightward gives a′⟨a|a′⟩, leftward gives a⟨a|a′⟩, reality already banked. Subtracting, (a − a′)⟨a|a′⟩ = 0, and since a ≠ a′ the overlap must vanish: outcome states of distinct results are orthogonal. Notice what the proof does not say. Two eigenvectors sharing the same eigenvalue make the bracket a − a = 0, so their overlap is unconstrained — degeneracy is where orthogonality stops being automatic and becomes your job.
3Degeneracy, Gram–Schmidt, and the spectral theorem
A degenerate eigenvalue owns a subspace, not a direction: if Â|u⟩ = a|u⟩ and Â|v⟩ = a|v⟩, then every combination α|u⟩ + β|v⟩ is again an eigenvector with the same a. So "the" eigenvectors of a degenerate level are a choice of basis, and you make that choice orthonormal by running Gram–Schmidt inside each degenerate block. The spectral theorem guarantees the pieces assemble: a Hermitian operator on a finite-dimensional space has a complete orthonormal eigenbasis of the whole space and is rebuilt from it as  = Σ aₙ|aₙ⟩⟨aₙ|, with Σ |aₙ⟩⟨aₙ| = 1. Completeness is the load-bearing word: expand |ψ⟩ = Σ cₙ|aₙ⟩ and Parseval gives Σ|cₙ|² = 1, so the outcome probabilities exhaust certainty. Contrast a matrix that is not Hermitian: [[1, 1],[0, 1]] has eigenvalue 1 twice but only the single eigenvector direction (1, 0). It is defective — no eigenbasis exists — and no Hermitian matrix can ever be.
4Read Â|a⟩ = a|a⟩ as a statement about measurement
The physical decode of the eigenvalue equation: measuring  can return only its eigenvalues, and returns aₙ with certainty exactly when the state lies in that eigenvalue's eigenspace: for a nondegenerate aₙ, the state must be |aₙ⟩ up to a phase. For any other state, expand on the eigenbasis and read off probabilities. Take σₓ = [[0, 1],[1, 0]] and prepare |ψ⟩ = (1, 0). The eigenvectors are (1, 1)/√2 and (1, −1)/√2 with eigenvalues ±1; both overlaps are 1/√2, so each outcome appears with probability ½ and ⟨σₓ⟩ = 0 — which matches ⟨ψ|σₓψ⟩ = 0 computed directly, no diagonalisation needed. Guard against the standard misreading: Â|ψ⟩ is not "the state after the measurement", and it is not "a number times the state" unless |ψ⟩ was an eigenvector already. Here σₓ(1, 0) = (0, 1), a different state entirely, because (1, 0) is a basis vector of the representation, not of the observable.
5Commuting observables share an eigenbasis
Let [Â, B̂] = 0 and let |a⟩ be an eigenvector of  with a nondegenerate eigenvalue. Then Â(B̂|a⟩) = B̂Â|a⟩ = a(B̂|a⟩): the vector B̂|a⟩ sits in the same one-dimensional eigenspace, so B̂|a⟩ ∝ |a⟩, and the eigenvector of  is automatically an eigenvector of B̂. When the eigenvalue is degenerate, B̂ is only guaranteed to map the block into itself; diagonalise B̂ within the block and the shared basis appears. Physically, commuting Hermitian operators are compatible: one experiment can pin sharp values of both at once, and a complete set of commuting observables labels every basis state by its list of simultaneous eigenvalues — precisely what (n, ℓ, m_ℓ, mₛ) will do for hydrogen later in the course. Non-commuting pairs such as x̂ and p̂ share no eigenbasis at all, which is where Unit 8's uncertainty relation will start.
6In infinite dimensions, Hermiticity lives in the domain
On the function space L², moving an operator across the inner product is an integration by parts, and a boundary term rides along. For p̂ = −iℏ d/dx, ⟨φ|p̂ψ⟩ − ⟨p̂φ|ψ⟩ = −iℏ[φ*ψ] evaluated at the endpoints, so p̂ is Hermitian only on functions whose boundary conditions kill that term: periodic on a ring, vanishing at ±∞ on the line. Killing the boundary term is necessary, not sufficient — on the half-line x ≥ 0 with ψ(0) = 0 the term vanishes, so p̂ is symmetric, yet it admits no self-adjoint version, and no momentum eigenbasis exists there at all. On the ring the eigenfunctions e(ikx) are normalisable because k is quantised, but on the line they are not square-integrable; they survive as distributions normalised to ⟨p|p′⟩ = δ(p − p′). The working escape used all course: put the problem on N grid points, build the boundary condition into the finite-difference stencil, and hand the resulting N×N Hermitian matrix to numpy.linalg.eigh, which returns real eigenvalues in ascending order and an orthonormal eigenbasis in the columns of V.
Key equations
Read the units, assumptions and limits before substituting.
Adjoint and Hermiticity
⟨φ|Âψ⟩ = ⟨†φ|ψ⟩, Hermitian when † = Â
The one test that certifies an observable. Diagonal entries must come out real, and ⟨Â⟩ is real in every state.
in an orthonormal basis (†)ᵢⱼ = (Âⱼᵢ)*: transpose the matrix, then conjugateThe eigenvalue equation as measurement
Â|aₙ⟩ = aₙ|aₙ⟩
A measurement of  can only return an eigenvalue, and returns aₙ with certainty exactly when the state lies in the aₙ eigenspace — |aₙ⟩ itself, up to a phase, if aₙ is nondegenerate.
aₙ real, carrying the observable's unit; |aₙ⟩ normalised to ⟨aₙ|aₙ⟩ = 1Reality and orthogonality
aₙ = aₙ* and ⟨aₘ|aₙ⟩ = 0 when aₘ ≠ aₙ
Real numbers on the meter and outcome states with zero overlap. Degenerate directions you must orthogonalise yourself.
both proved in two lines from † = Â; equal eigenvalues constrain nothingSpectral decomposition
 = Σₙ aₙ |aₙ⟩⟨aₙ|, with Σₙ |aₙ⟩⟨aₙ| = 1
Expand any state on the eigenbasis: P(aₙ) = |⟨aₙ|ψ⟩|² sums to one and ⟨Â⟩ = Σ aₙ P(aₙ) follows at once.
a discrete spectrum resolves the identity as this sum; a continuous part, like p̂'s, contributes ∫ |p⟩⟨p| dpCommuting observables
[Â, B̂] = 0 ⇔ a shared orthonormal eigenbasis exists
Compatible quantities take sharp values together, and their joint eigenvalues label states — the origin of quantum-number lists like (n, ℓ, m).
both Hermitian; inside a degenerate block of Â, diagonalise B̂ to fix the basisNumerical diagonalisation
w, V = numpy.linalg.eigh(A)
Beyond 3×3 the characteristic polynomial is hopeless; eigh is how every discretised Hamiltonian in this course gets its spectrum.
w real and ascending; columns of V the orthonormal eigenvectors; eigh assumes A = A†Interactive lab
Predict first. Explore the model. Compare the result.
Explore the model
Try this. Sweep c to 0: the arrows snap onto the basis axes and the levels drop onto a and b. Then set a = b with c small — the eigenvectors lock at ±45°, the sign following c, however weak the coupling, and the gap 2|c| refuses to close: level repulsion, the reason an avoided crossing signals a hidden off-diagonal term.
Live results
- EIGENVALUE λ₊
- 1.21 eV
- EIGENVALUE λ₋
- -0.71 eV
- GAP λ₊ − λ₋
- 1.92 eV
- MIXING ANGLE θ
- 19 °
Results follow this lesson’s model and assumptions. Displayed values are rounded.
Predict → change one variable → check
Plan a change before running it. Every other input stays at the saved baseline.
Saved baseline. Diagonal entry a: 1.0 eV; Diagonal entry b: −0.5 eV; Coupling c (off-diagonal): 0.6 eV
This experiment is kept only while this page is open. It does not change saved course progress.
Catch the common trap
Students run the logic backwards: "Hermitian matrices have real eigenvalues; mine has real eigenvalues; so it is Hermitian and will serve as an observable." The implication only runs one way. [[1, 1],[0, 2]] has the perfectly real eigenvalues 1 and 2, yet its eigenvectors (1, 0) and (1, 1) overlap — outcome states that no single measurement can tell apart with certainty — and [[1, 1],[0, 1]] is worse: eigenvalue 1 twice with a single eigenvector direction, so no eigenbasis exists at all. Without orthogonality and completeness the numbers |⟨aₙ|ψ⟩|² neither behave as probabilities nor sum to one. Hermiticity buys the whole spectral-theorem package — reality AND orthogonality AND completeness — and the last two are the parts a real spectrum cannot fake.
Practice & worked examples
3 authored examples. Make an attempt, then reveal the reasoning one step at a time.
EasyExample 1
The matrix  = [[2, 1−i],[1+i, 3]] acts on a two-state system. Verify that  is Hermitian, find its eigenvalues, and confirm they are real, as the theorem demands.
Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.
0 of 4 steps revealed.
- Adjoint = transpose, then conjugate. Transposing swaps the off-diagonal entries to give [[2, 1+i],[1−i, 3]]; conjugating returns [[2, 1−i],[1+i, 3]] = Â. The diagonal is real and the off-diagonals are conjugates of each other — Hermitian.
- Characteristic polynomial: det(Â − λI) = (2 − λ)(3 − λ) − (1−i)(1+i). The off-diagonal product is |1−i|² = 1² + 1² = 2 — automatically real and positive, because Hermiticity forces those two entries to be conjugates.
- So λ² − 5λ + 6 − 2 = λ² − 5λ + 4 = (λ − 1)(λ − 4) = 0: eigenvalues λ = 1 and λ = 4.
- The guarantee behind the arithmetic: for any [[a, c],[c*, b]] with † = Â, the discriminant of the characteristic polynomial is (a − b)² + 4|c|² — here 1 + 8 = 9 — which can never be negative. Real roots are structural, not luck.
Answer. † = Â; eigenvalues λ = 1 and λ = 4, both real. For a 2×2 Hermitian matrix the discriminant (a − b)² + 4|c|² ≥ 0, so real eigenvalues are guaranteed before you solve anything.
MediumExample 2
An observable of a two-state system has matrix Ĥ = [[2, 1],[1, 2]] eV in the basis (|1⟩, |2⟩), and the system is prepared in |ψ⟩ = (2|1⟩ + |2⟩)/√5. Find the possible measurement outcomes, the probability of each, and ⟨Ĥ⟩ — then check the expectation value directly, without diagonalising.
Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.
0 of 5 steps revealed.
- Diagonalise: det(Ĥ − λI) = (2 − λ)² − 1 = 0 gives 2 − λ = ∓1, so λ₊ = 3 eV and λ₋ = 1 eV, with normalised eigenvectors |+⟩ = (1, 1)/√2 and |−⟩ = (1, −1)/√2 — orthogonal, as Hermiticity demands.
- Project the state onto each outcome state: ⟨+|ψ⟩ = (2 + 1)/√10 = 3/√10 and ⟨−|ψ⟩ = (2 − 1)/√10 = 1/√10.
- Born rule: P(3 eV) = 9/10 and P(1 eV) = 1/10. They sum to one because the eigenbasis is complete — Parseval, not luck.
- Expectation value as the weighted average of eigenvalues: ⟨Ĥ⟩ = 3(0.9) + 1(0.1) = 2.8 eV.
- Direct check: Ĥ|ψ⟩ = (2⋅2 + 1, 2 + 2)/√5 = (5, 4)/√5, so ⟨ψ|Ĥψ⟩ = (2⋅5 + 1⋅4)/5 = 14/5 = 2.8 eV. The two routes agree — but only 3 eV or 1 eV ever appears on the meter, never 2.8.
Answer. Outcomes 3 eV with P = 0.9 and 1 eV with P = 0.1; ⟨Ĥ⟩ = 2.8 eV, confirmed by ⟨ψ|Ĥ|ψ⟩ = 14/5 eV. The expectation value is an ensemble average, not a possible single-shot reading.
HardExample 3
Two observables have matrices  = diag(1, 1, 2) and B̂ = [[0, 1, 0],[1, 0, 0],[0, 0, 5]] in the basis (|1⟩, |2⟩, |3⟩). Show they commute, explain why |1⟩ and |2⟩ are eigenvectors of  but not of B̂, and construct the simultaneous orthonormal eigenbasis with its pairs of eigenvalues.
Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.
0 of 5 steps revealed.
- Multiply both ways: ÂB̂ scales the rows of B̂ by (1, 1, 2) and B̂Â scales its columns by the same factors, giving [[0, 1, 0],[1, 0, 0],[0, 0, 10]] in both orders. [Â, B̂] = 0, so a shared eigenbasis must exist.
- Â's eigenvalue 1 is doubly degenerate: every vector in span(|1⟩, |2⟩) satisfies Â|v⟩ = |v⟩, so |1⟩ and |2⟩ are eigenvectors of  only as one arbitrary choice of basis. They are not eigenvectors of B̂, which swaps them: B̂|1⟩ = |2⟩.
- Diagonalise B̂ inside the degenerate block: the sub-matrix [[0, 1],[1, 0]] has eigenvalues ±1 with eigenvectors (1, ±1)/√2. Define |±⟩ = (|1⟩ ± |2⟩)/√2.
- Both |±⟩ remain eigenvectors of  with eigenvalue 1 — any combination inside a degenerate subspace is — and now B̂|±⟩ = ±|±⟩ as well. The third direction is shared already: Â|3⟩ = 2|3⟩ and B̂|3⟩ = 5|3⟩.
- Basis (|+⟩, |−⟩, |3⟩) with eigenvalue pairs (a, b) = (1, +1), (1, −1), (2, 5). The pair labels each state uniquely where a alone could not: (Â, B̂) is a complete set of commuting observables for this space.
Answer. [Â, B̂] = 0; the simultaneous eigenbasis is |±⟩ = (|1⟩ ± |2⟩)/√2 and |3⟩, with (a, b) = (1, +1), (1, −1) and (2, 5). B̂'s eigenvalue breaks the degeneracy of  and completes the label.
Quick check
Select an answer and explain it before checking.
Review & continue
A Hermitian operator equals its own adjoint, † = Â, so ⟨φ|Âψ⟩ = ⟨Âφ|ψ⟩ for all states in its domain; its real eigenvalues are the possible results of measuring the observable it represents, and its eigenvectors are the outcome states.
- Explain the relationship without looking at the equation.
- Check a sign, a unit and a model assumption in your working.
- Return to the lab or worked example if a step is still unclear.