Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Statistical Mechanics and Blackbody Radiation

Chemistry deals with moles of molecules, not single particles, so we need the physics of many particles sharing energy. That physics, statistical mechanics, does two jobs for this course. It exposes exactly where classical physics fails, in the blackbody spectrum, and it tells us how molecules populate energy levels, which is what every spectroscopic intensity ultimately measures.

Temperature and the equipartition theorem

In a gas at temperature TT, energy is constantly traded among the particles. The equipartition theorem says that in the classical world each independent quadratic term in the energy (each 12mvx2\tfrac{1}{2}mv_x^2, each 12kx2\tfrac{1}{2}kx^2) carries, on average,

A single atom moving in three dimensions has three such terms, giving E=32kBT\langle E\rangle = \tfrac{3}{2}k_BT, the familiar kinetic energy of an ideal gas. A classical oscillator has one kinetic and one potential term, so E=kBT\langle E\rangle = k_BT. That innocent-looking result, average energy kBTk_BT per oscillator regardless of its frequency, is exactly what detonates the blackbody spectrum below.

The Boltzmann distribution

When a system can occupy states of different energy while in contact with a thermal bath at temperature TT, the probability of a given state is not uniform. High-energy states are exponentially less likely:

The ratio of populations of two levels depends only on their energy gap and the temperature:

P2P1=e(E2E1)/kBT.\frac{P_2}{P_1} = e^{-(E_2 - E_1)/k_BT}.

At low temperature almost everything sits in the ground state; as TT rises, higher levels fill in. The plot shows the populations of an evenly spaced ladder of levels at three temperatures.

Source
import numpy as np
import matplotlib.pyplot as plt

n = np.arange(0, 8)          # energy levels, E_n = n * eps
fig, ax = plt.subplots(figsize=(7, 4))

width = 0.25
for j, (kT, c) in enumerate(zip([0.5, 1.0, 3.0], ['#66a182', '#edae49', '#d1495b'])):
    weights = np.exp(-n / kT)
    P = weights / weights.sum()          # normalized populations
    ax.bar(n + (j - 1) * width, P, width=width, color=c,
           label=fr'$k_BT/\epsilon$ = {kT}')

ax.set_xlabel(r'energy level $n$  ($E_n = n\,\epsilon$)')
ax.set_ylabel('population fraction')
ax.set_title('Fig.1 Boltzmann populations: higher T spreads molecules up the ladder')
ax.legend(fontsize=9)
plt.tight_layout()
plt.show()
<Figure size 700x400 with 1 Axes>

This is the classical statistical backdrop. Quantum mechanics keeps the Boltzmann factor intact but insists the energies EiE_i are the discrete eigenvalues of H^\hat H, which is why populations are the bridge from quantized levels to measurable intensities.

Blackbody radiation: where classical physics fails

A blackbody is an ideal object that absorbs and re-emits all radiation. The light inside a heated cavity is a gas of electromagnetic standing waves, and classical physics tries to predict how its energy is distributed over wavelength.

Counting the standing-wave modes and giving each the equipartition energy kBTk_BT gives the Rayleigh-Jeans law. It works at long wavelengths but is a disaster at short ones: the number of modes grows without bound, so the predicted energy density diverges as λ0\lambda\to 0. This is the ultraviolet catastrophe, and it says a warm object should glow infinitely bright in the ultraviolet, which is absurd.

Planck’s fix was radical: an oscillator of frequency ν\nu cannot take just any energy, only integer multiples En=nhνE_n = nh\nu. With quantized energies, the average energy of a mode is no longer kBTk_BT but

E=hνehν/kBT1,\langle E \rangle = \frac{h\nu}{e^{h\nu/k_BT} - 1},

which equals kBTk_BT when hνkBTh\nu \ll k_BT (recovering the classical result) but falls to zero when hνkBTh\nu \gg k_BT. High-frequency modes are frozen out because one quantum hνh\nu costs more than the thermal energy available. This gives the Planck radiation law:

Source
import numpy as np
import matplotlib.pyplot as plt

h, c, kB = 6.626e-34, 3.0e8, 1.381e-23
lam = np.linspace(100e-9, 3000e-9, 400)   # 100 nm to 3000 nm

def planck(lam, T):
    return (8 * np.pi * h * c / lam**5) / (np.exp(h * c / (lam * kB * T)) - 1)

def rayleigh_jeans(lam, T):
    return 8 * np.pi * kB * T / lam**4

fig, axes = plt.subplots(1, 2, figsize=(11, 4.2))

# Panel a: Planck curves shift and grow with temperature
for T, col in zip([3000, 4000, 5000], ['#66a182', '#edae49', '#d1495b']):
    axes[0].plot(lam * 1e9, planck(lam, T), color=col, lw=2, label=f'{T} K')
axes[0].set_xlabel('wavelength (nm)')
axes[0].set_ylabel('energy density')
axes[0].legend(fontsize=9)
axes[0].set_title('Fig.2a Planck spectrum shifts to shorter wavelength as T rises')

# Panel b: the ultraviolet catastrophe at one temperature
T = 4000
axes[1].plot(lam * 1e9, planck(lam, T), color='#2e4057', lw=2, label='Planck (quantized)')
axes[1].plot(lam * 1e9, rayleigh_jeans(lam, T), '--', color='#d1495b', lw=2,
             label='Rayleigh-Jeans (classical)')
axes[1].set_ylim(0, 1.2 * planck(lam, T).max())
axes[1].set_xlabel('wavelength (nm)')
axes[1].set_ylabel('energy density')
axes[1].legend(fontsize=9)
axes[1].set_title('Fig.2b Classical theory diverges at short wavelength (UV catastrophe)')

plt.tight_layout()
plt.show()
<Figure size 1100x420 with 2 Axes>

The dashed classical curve shoots up toward short wavelengths while the real spectrum (and Planck’s formula) turns over and falls. Matching the data required quantized energy, and the constant Planck introduced to make it work, hh, is the same one at the center of the whole course. Blackbody radiation is where quantization was first forced on physics, and it is the opening story of Chapter 1.

Populations and spectroscopy

The Boltzmann distribution is not just background; it sets what you actually see in a spectrum. A molecule can only absorb light from a level it currently occupies, so the intensity of a spectral line is proportional to the population of its starting level. Two consequences run through Chapters 4 through 6:

So the same eE/kBTe^{-E/k_BT} factor that governs blackbody modes governs the brightness of every line in a molecular spectrum. Quantized energies come from solving the Schrodinger equation; how strongly each level shows up comes from statistics.

Problems

Problem 1: Equipartition energy of a gas

Using equipartition, find the average translational kinetic energy of one argon atom at T=300 KT = 300\ \text{K}.

Problem 2: Population ratio

Two levels are separated by ΔE=kBT\Delta E = k_BT. What fraction of the molecules in the upper level relative to the lower?

Problem 3: When does classical equipartition hold?

Explain, using E=hν/(ehν/kBT1)\langle E\rangle = h\nu/(e^{h\nu/k_BT}-1), why low-frequency modes obey equipartition but high-frequency modes do not.

Problem 4: The ultraviolet catastrophe

In one or two sentences, state what the Rayleigh-Jeans law predicts as λ0\lambda \to 0 and why it is unphysical.

Problem 5: Vibrational population

A vibration has hν=5kBTh\nu = 5 k_BT at room temperature. Estimate the fraction of molecules in the first excited vibrational state, and comment on why IR absorption starts from the ground state.

Problem 6: Partition function of a two-level system

Write the partition function ZZ for a system with levels at 0 and ϵ\epsilon, and find the average energy E=ϵeϵ/kBT/Z\langle E\rangle = \epsilon\, e^{-\epsilon/k_BT}/Z in the limits T0T\to 0 and TT\to\infty.

Problem 7: Wien’s shift

From the Planck curves in Fig.2a, the peak wavelength moves as temperature rises. State the direction of the shift and name the chemistry consequence for how hot objects change color from red to blue-white.