Skip to main content
University Physics V

University Physics V · Atomic Spectroscopy · 13.1

Emission, Absorption & Term Analysis

A spectrograph hands you a list of wavelengths and nothing else. Term analysis is the inversion that turns that list back into the eigenvalue ladder of one Hermitian Hamiltonian — and this is where you learn which part of the ladder the data fix, and which part you are quietly choosing.

01

Build the model

Connect the measurement to the mechanism.

A spectrum is a list of differences. Model the isolated atom by a Hermitian H₀ on its Hilbert space, with eigenbasis H₀|n⟩ = Eₙ|n⟩; one photon absorbed or emitted carries hcσ = Eᵤ − Eₗ, so every measured line reports a gap between two points of the spectrum of H₀ and never a point itself. That is where the model comes from, and it is also what it costs.

Replace H₀ by H₀ + cI: the identity commutes with everything, so every eigenvector survives untouched, every eigenvalue moves by c, and every predicted line stays exactly where it was. The inverse problem — recover the levels from the lines — therefore carries a one-dimensional kernel for each connected piece of the level graph, and the zero of a term scheme is a convention imported from outside the line list (a Rydberg-series limit, a photoionisation threshold), never a measurement. What the data do fix is every difference, and they overdetermine them: with V levels joined by L observed lines in C components, the Ritz combination principle supplies L − V + C independent closure conditions.

Term analysis is then a weighted least-squares problem on the incidence matrix of that graph, gauge-fixed by hand, with residuals that test the assignment and a covariance matrix finite only in the difference directions.

Simple definition
Term analysis is the least-squares inversion that turns a list of measured line wavenumbers into a set of term values Tₙ = −Eₙ/hc, each line modelled as a difference σ = Tₗ − Tᵤ of two eigenvalues of one Hermitian atomic Hamiltonian.
Example
In vacuum, Lyman-α lies at 82259 cm⁻¹ and Balmer-α at 15233 cm⁻¹; their sum, 97492 cm⁻¹, is Lyman-β — three measured lines, but only two independent differences among the n = 1, 2 and 3 terms.
Bohr condition as an eigenvalue differencehf = Eᵤ − Eₗ, with H₀|n⟩ = Eₙ|n⟩

A line measures a gap in the spectrum of H₀, never a single eigenvalue of it.

E in joules, f in hertz; H₀ is Hermitian, so every Eₙ is real and every difference is a measurable frequency.

Term value and the wavenumber of a lineTₙ = −Eₙ/hc, σ = 1/λvac = Tₗ − Tᵤ

Puts measurement and model on one linear axis, so lines add and subtract without touching h.

T and σ in cm⁻¹; 1 eV = 8065.54 cm⁻¹. Use λvac, not the air wavelength printed on most line tables.

Ritz combination as a loop conditionσ(a→c) = σ(a→b) + σ(b→c)Σₗₒₒₚ ±σ = 0

The closure test that assigns lines to one level scheme before any fitting is attempted.

Additive in wavenumber only: 121.57 nm + 656.47 nm is not the 102.57 nm of the combination line.

The gauge a spectrum cannot fixH₀ → H₀ + cI ⟹ Eₙ → Eₙ + c, every σ unchanged

One free constant per connected component: pin it by convention or import it from a series limit.

c in cm⁻¹ after dividing by hc; every eigenvector |n⟩ is untouched, since I commutes with H₀.

Weighted least squares on the level graph(AᵀWA) T̂ = AᵀW σ, W = diag(1/uₖ²)

Gives every term with its covariance, and rank V − C tells you exactly how many gauges to fix.

A is the L × V incidence matrix, +1 in the lower-level column and −1 in the upper, so A⋅1 = 0.

Which levels are populated enough to shownᵤ/nₗ = (gᵤ/gₗ) exp(−hcσ/kBT)

Says which levels can emit at all, and why a cold absorbing column shows only ground-state lines.

hc/kB = 1.4388 cm K, so kBT = 0.695 T in cm⁻¹: 209 cm⁻¹ at 300 K, 3475 cm⁻¹ at 5000 K.

01

A line is a difference, not a level

Model the isolated atom by a Hermitian H₀ acting on its Hilbert space, with eigenbasis H₀|n⟩ = Eₙ|n⟩ and real eigenvalues. Absorb or emit one photon and energy conservation for atom-plus-field gives hcσ = Eᵤ − Eₗ, so a spectrograph reading of σ = 1/λvac reports one gap between two points of the spectrum of H₀ — never a point. Which pairs appear is decided by two things that are not energies: the dipole matrix element ⟨l|d|u⟩ must be non-zero, and the initial level must be populated. So the raw data form a graph, not a list of energies: levels are vertices, observed lines are edges, and each edge carries a measured difference with an uncertainty. Term analysis is the inverse problem on that graph — recover vertex values from edge differences — and every property of the answer follows from that structure.

02

Adding cI to H₀ is invisible to every line

Take H₀ → H₀ + cI. The identity commutes with everything, so every eigenvector |n⟩ survives untouched and every eigenvalue moves to Eₙ + c. Every difference, and therefore every predicted wavenumber, is unchanged. The map from level scheme to line list has a one-dimensional kernel, so the inverse is fixed only up to one additive constant per connected component. Spectroscopy handles this by convention. Writing Tₙ = −Eₙ/hc puts the zero at the ionisation limit, so bound terms are positive and the ground term is the ionisation energy: 41449.5 cm⁻¹ for sodium. The other common choice puts the zero at the ground level and quotes every term as an excitation. Nothing in the line list chooses between them. The zero is imported — from the limit of a Rydberg series, or from a measured photoionisation threshold — and that import is extra physics, not extra lines.

03

Ritz closure counts the redundancy in your line list

Because each line is a difference, the signed wavenumbers around any closed loop of levels must sum to zero — the Ritz combination principle, formally the same statement as Kirchhoff's loop rule for potentials. Hydrogen: 82258.2 + 15233.0 = 97491.2 cm⁻¹ closes Lyman-α, Balmer-α and Lyman-β. The number of independent closure conditions is fixed by the graph: with V levels, L observed lines and C connected components it is L − V + C. Three mutually connected levels give 3 − 3 + 1 = 1 test; a scheme of 20 levels joined by 60 lines gives 41. Run those tests before fitting anything. A closure that fails by many times the combined uncertainty means a blended line, a misassignment, a second species in the discharge, or air wavelengths used where vacuum ones were needed.

04

Fit the graph: incidence matrix, weights, and gauge

Assemble the model as σ = A T, with A the L × V incidence matrix carrying +1 in the lower-level column and −1 in the upper. Weight by W = diag(1/uₖ²) and minimise (σ − AT)ᵀW(σ − AT); the normal equations are (AᵀWA)T̂ = AᵀWσ. That matrix is singular, and the previous section says why: every row sums to zero, so A⋅1 = 0 and the all-ones vector spans the null space, leaving rank V − C. Fix the gauge by pinning one term per component, or call numpy.linalg.lstsq, which returns the minimum-norm solution and so silently imposes ΣT = 0. The covariance σ²(AᵀWA)⁺ is finite only in the difference directions, which is the algebra telling you to quote Tᵢ − Tⱼ and not Tᵢ. Judge the fit by χ² on L − (V − C) degrees of freedom, and inspect the residual on each line.

05

Emission and absorption sample different initial states

Which edges you actually observe depends on which vertices are occupied. In a discharge or arc the upper levels are populated, nᵤ/nₗ = (gᵤ/gₗ)exp(−hcσ/kBT), and with kBT = 0.695 T in cm⁻¹ a 5000 K source puts 3 × exp(−16967.6/3475) ≈ 2.3% of sodium's ground population into 3p — enough to light the D lines and, more importantly, to light lines between excited levels. Drop to a 300 K vapour cell and that ratio falls to about 10⁻³⁵: nothing is up there, and the only transitions available are absorptions out of the ground level. That has a structural consequence. A pure absorption spectrum is a star graph centred on the ground level, with L = V − 1, so L − V + C = 0: it carries no closure test at all. You can assign it, but you cannot check it. The redundancy that validates a term scheme comes from emission lines joining excited levels to each other.

06

What a term scheme leaves out

A term scheme is the eigenvalue list of H₀ and nothing more. It carries no eigenvectors, so degeneracies, level compositions and g factors must come from elsewhere — intensities, Zeeman patterns, selection rules. Unresolved structure collapses silently: read sodium's 3p as one term and you get its centre of gravity, 16967.6 cm⁻¹, with the 17.2 cm⁻¹ fine-structure splitting hidden inside, and every difference built on it inherits that error. Two systematic traps deserve naming. Wavelengths tabulated in air need converting: nₐᵢᵣ ≈ 1.000277 near 589 nm, so σvac = n σₐᵢᵣ shifts a 17000 cm⁻¹ line by 4.7 cm⁻¹, thousands of times a modern uncertainty and a guaranteed closure failure. And Doppler and pressure shifts move the line centre, so the difference you fit belongs to the free atom only after those are corrected.

02

Change one variable at a time

Make the relationship visible.

Interactive model
15.4 10³ cm⁻¹
12.0 10³ cm⁻¹
0.0 10³ cm⁻¹

Move the two level sliders until all three solid ticks land on their dashed measured marks — the misfit reaches zero at 17.0 and 13.3. Then drag c: the ladder rides up or down and not one tick moves. That is the additive constant no spectrum can fix.

Interactive physics modelLeft, a three-level term scheme, emission transitions drawn downward, on a scale whose zero is a convention: the ground level sits at 0.0 and the ladder slides rigidly with c. Right, its predicted lines σ12 = 15.4, σ23 = 12.0, σ13 = 27.4 in 10³ cm⁻¹, as solid ticks against dashed measured marks at 13.3, 17.0 and 30.3. Misfit 5.80.term scheme — every level slides with cticks predicted · dashes measuredσ / 10³ cm⁻¹T = 0

σ 1→215.4 10³ cm⁻¹

σ 1→3 = σ 1→2 + σ 2→327.4 10³ cm⁻¹

LINE MISFIT5.80 10³ cm⁻¹

GROUND LEVEL ON SCALE0.0 10³ cm⁻¹

Live interpretationσ 1→2: 15.4 10³ cm⁻¹. σ 1→3 = σ 1→2 + σ 2→3: 27.4 10³ cm⁻¹. LINE MISFIT: 5.80 10³ cm⁻¹. GROUND LEVEL ON SCALE: 0.0 10³ cm⁻¹

03

Catch the common trap

Explain before calculating.

A discharge gives six lines that a Ritz analysis assigns consistently to four levels of one species. Setting up the weighted least-squares fit σ = A T, with A the 6 × 4 incidence matrix, a student finds AᵀWA singular and cannot invert it. What is the right response?

Choose an answer to test the model.

04

Practice & worked examples

Reason from the model, then test the result.

EasyHydrogen shows vacuum lines at 121.567 nm (n = 1 ↔ 2) and 656.469 nm (n = 2 ↔ 3). Predict the wavelength of the n = 1 ↔ 3 line, and check the arithmetic against the temptation to add the two wavelengths.
  1. Wavelengths do not add; term values do. Convert to vacuum wavenumbers with σ = 10⁷/λ[nm], which returns cm⁻¹.
  2. σ(1↔2) = 10⁷/121.567 = 82259 cm⁻¹, which is T₁ − T₂, and σ(2↔3) = 10⁷/656.469 = 15233 cm⁻¹, which is T₂ − T₃.
  3. T₂ cancels in the sum: σ(1↔3) = (T₁ − T₂) + (T₂ − T₃) = 82259 + 15233 = 97492 cm⁻¹.
  4. Convert back: λ = 10⁷/97492 = 102.57 nm, the measured Lyman-β wavelength. Adding the wavelengths would have given 778.04 nm — but a combination line must be shorter than either parent, because its wavenumber is their sum.

Answerσ(1↔3) = 97492 cm⁻¹, λvac = 102.57 nm. Three measured lines, two independent differences: the third is a consistency test, not new information.

MediumThree levels of one species give three vacuum lines, each with standard uncertainty 0.3 cm⁻¹: σ(1↔2) = 82258.4, σ(2↔3) = 15233.2 and σ(1↔3) = 97491.0 cm⁻¹. Test the closure, then fit the term values relative to the ground level and quote their uncertainty.
  1. Gauge first: the line list fixes only differences, so set t₁ = 0 and keep t₂ and t₃ = (E − E₁)/hc as the unknowns. The model rows are σA = t₂, σB = t₃ − t₂ and σC = t₃, so A = [[1,0],[−1,1],[0,1]] and, with equal weights, AᵀA = [[2,−1],[−1,2]].
  2. Closure test before fitting: σA + σB − σC = 82258.4 + 15233.2 − 97491.0 = +0.6 cm⁻¹, against a combined uncertainty √3 × 0.3 = 0.52 cm⁻¹. That is 1.2 standard uncertainties — consistent, so fit rather than reject a line.
  3. Solve (AᵀA)t = Aᵀσ. With det = 3: t₂ = (2σA − σB + σC)/3 = 246774.6/3 = 82258.2 cm⁻¹ and t₃ = (σA + σB + 2σC)/3 = 292473.6/3 = 97491.2 cm⁻¹.
  4. Residuals are −0.2, −0.2 and +0.2 cm⁻¹: the fit has spread the 0.6 cm⁻¹ closure error evenly, one third onto each line. χ² = 3(0.2)²/(0.3)² = 1.33 on 3 − 2 = 1 degree of freedom.
  5. Covariance: (AᵀA)⁻¹ = ⅓[[2,1],[1,2]], so u(t₂) = u(t₃) = 0.3√(2/3) = 0.24 cm⁻¹ — better than the 0.3 cm⁻¹ of any single line. The redundant third line bought that.

Answert₂ = 82258.2 ± 0.24 cm⁻¹ and t₃ = 97491.2 ± 0.24 cm⁻¹ above the ground level; the position of the ground level itself is a convention, not a fitted quantity.

HardSodium absorbs from its ground level at σ(3s→4p) = 30270.7 cm⁻¹ and σ(3s→5p) = 35040.4 cm⁻¹. With RNa = 109734.7 cm⁻¹ and a constant quantum defect, T(np) = R/(n − δ)², extrapolate the np series to its limit to fix the additive zero, then compare with the accepted ionisation energy 41449.5 cm⁻¹.
  1. Both measurements are differences: σₙ = T(3s) − T(np). The unknowns are δ and T(3s), and T(3s) is exactly the constant the line list cannot supply — the ionisation energy in wavenumbers, since T(np) → 0 as n → ∞.
  2. Subtract to eliminate T(3s): R/(4 − δ)² − R/(5 − δ)² = σ₅ − σ₄ = 35040.4 − 30270.7 = 4769.7 cm⁻¹. One equation, one unknown, and nonlinear — root-find it (scipy.optimize.brentq on δ ∈ [0, 1]).
  3. Bracket it by hand: δ = 0.870 gives 11201.0 − 6433.4 = 4767.5 cm⁻¹ and δ = 0.871 gives 11208.1 − 6436.6 = 4771.6 cm⁻¹, so the root is δ = 0.8705 and n*(4p) = 4 − δ = 3.1295.
  4. Then T(4p) = R/n*² = 109734.7/9.7938 = 11204.8 cm⁻¹, so T(3s) = T(4p) + σ₄ = 11204.8 + 30270.7 = 41475.5 cm⁻¹ = 5.1423 eV. That series limit is the zero the line list alone could not give.
  5. The accepted value is 41449.5 cm⁻¹ = 5.1391 eV, so the extrapolation runs 26 cm⁻¹ (0.06%) high because δ is not constant: the measured np terms give δ = 0.883 at n = 3, 0.867 at n = 4 and 0.862 at n = 5, core penetration weakening as the orbit grows.
  6. Every term value inherits that 26 cm⁻¹ — the whole scheme moves rigidly — while every measured difference is untouched. A better zero comes from more series members with an n-dependent defect, or from a direct photoionisation threshold.

Answerδ = 0.8705 and T(3s) = 41475 cm⁻¹ = 5.142 eV, 26 cm⁻¹ (0.06%) above the accepted 41449.5 cm⁻¹ = 5.139 eV. The fitted line differences are unaffected by that error in the zero.