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.

1.2. Kinetic Theory

See also: Course-wide Conventions & Notation

Overview and Learning Objectives

Kinetic theory provides a microscopic route to macroscopic gas behavior by modeling a gas as a large number of rapidly moving particles that undergo elastic collisions. In this section, we derive the pressure of an ideal gas from particle–wall momentum transfer, connect temperature to average kinetic energy, and interpret molecular speed distributions.


Learning objectives:

Core Ideas and Derivations

Foundational Assumptions of Kinetic Theory

  1. Large Number of Particles:
    A gas contains a very large number of identical particles moving randomly in all directions.

  2. Point Particles:
    Each particle’s size is negligible compared to the average distance between particles.

  3. Elastic Collisions:
    Collisions between particles and between particles and the container walls conserve both momentum and kinetic energy.

  4. No Long-Range Interparticle Forces:
    Particles exert no forces on one another except during collisions (i.e., there are no long-range attractive or repulsive forces).

  5. Classical Mechanics Applies:
    Particle motion follows Newton’s second law:

    F⃗=dp⃗dt,\vec{F} = \frac{d\vec{p}}{dt},

    where F⃗\vec{F} is the net force on a particle, p⃗\vec{p} is its linear momentum, and tt is time.


Deriving Pressure from Particle-Wall Collisions

Source
import matplotlib.pyplot as plt
from myst_nb import glue

def plot_container_2d(offset=0.2):
    """Plot a 2D schematic of a gas particle in a container."""
    fig, ax = plt.subplots(figsize=(12, 4))

    # Dimensions
    Lx, Lz = 10, 2

    # Draw container
    ax.plot([0, Lx, Lx, 0, 0], [0, 0, Lz, Lz, 0], color='black')
    ax.fill_between([0, Lx], 0, Lz, color='lightgray')

    # Gas particle
    ax.plot(0.5 * Lx, 0.75 * Lz, 'o', color='blue', markersize=20, zorder=10)
    ax.text(0.5 * Lx, 0.75 * Lz, "$m$", color='white',
            ha='center', va='center', zorder=20, fontsize=12)

    # Velocity arrows
    ax.annotate("", xy=(0.5 * Lx, 0.75 * Lz), xytext=(Lx, 0.75 * Lz),
                arrowprops=dict(arrowstyle="<-", color='red'))
    ax.text(Lx * 2 / 3, 0.75 * Lz + offset, "$v_x$", color='red', fontsize=12, ha='center', va='center')

    ax.annotate("", xy=(Lx, 0.5 * Lz), xytext=(0, 0.5 * Lz),
                arrowprops=dict(arrowstyle="<-", color='red'))
    ax.text(Lx * 5 / 6, 0.5 * Lz + offset, "$-v_x$", color='red', fontsize=12, ha='center', va='center')

    ax.annotate("", xy=(0, 0.25 * Lz), xytext=(0.5 * Lx, 0.25 * Lz),
                arrowprops=dict(arrowstyle="<-", color='red'))
    ax.text(0.25 * Lx, 0.25 * Lz + offset, "$v_x$", color='red', fontsize=12, ha='center', va='center')

    # Length indicators
    ax.annotate("", xy=(0, -offset), xytext=(Lx, -offset),
                arrowprops=dict(arrowstyle="<->", color='black'))
    ax.text(Lx / 2, -2 * offset, "$L_x$", color='black', fontsize=12, ha='center', va='center')

    ax.annotate("", xy=(-offset, 0), xytext=(-offset, Lz),
                arrowprops=dict(arrowstyle="<->", color='black'))
    ax.text(-2 * offset, Lz / 2, "$L_z$", color='black', fontsize=12, ha='center', va='center')

    ax.set_xlim(-1, Lx+1)
    ax.set_ylim(-1, Lz+1)
    ax.axis('off')

    return fig

fig = plot_container_2d()
plt.show()
plt.close(fig)
<Figure size 1200x400 with 1 Axes>

Two-dimensional schematic of a single gas particle in a cuboid container (gray). Velocity components are shown in red. The length LyL_y is not depicted, as it extends perpendicular to the plane of view.

Microscopic Picture of Pressure

Pressure is the force exerted per unit area on the container walls. Microscopically, it arises from momentum transfer during particle–wall collisions.

Particle Momentum Change

Consider an elastic collision of a particle of mass mm with a wall perpendicular to the xx-axis. The xx-component of the velocity reverses (vx→−vxv_x \to -v_x). If we take vx>0v_x>0 to denote the magnitude of the xx-component, then the magnitude of the particle’s momentum change is

Δpx=2mvx.\Delta p_x = 2 m v_x.
Time Between Collisions

If the container has length LxL_x in the xx-direction, the time between successive collisions of the same particle with that wall is

Δt=2Lxvx.\Delta t = \frac{2 L_x}{v_x}.
Force on the Wall

A single particle’s average force on the wall (in the xx-direction) is then

Fp,x=ΔpxΔt=mvx2Lx.F_{\text{p}, x} = \frac{\Delta p_x}{\Delta t} = \frac{m v_x^2}{L_x}.

Total Pressure

For NN identical particles with isotropic motion in a volume VV, the total pressure PP is

P=1V∑i=1N13mvi2,P = \frac{1}{V} \sum_{i=1}^N \frac{1}{3} m v_i^2,

where viv_i is the speed of the ii-th particle. Using the mean-square speed ⟨v2⟩\langle v^2 \rangle, we obtain

P=Nm⟨v2⟩3V.P = \frac{N m \langle v^2 \rangle}{3 V}.

This equation shows how macroscopic pressure depends on the microscopic particle speeds.


Kinetic Energy and Temperature

The average translational kinetic energy per particle is

⟨Ekin⟩=12m⟨v2⟩.\langle E_{\mathrm{kin}} \rangle = \frac{1}{2} m \langle v^2 \rangle.

Equating Eq. (6) with the ideal-gas equation of state, PV=NkBTPV = N k_{\mathrm{B}} T (discussed in Section 3), gives

12m⟨v2⟩=32kBT,\frac{1}{2} m \langle v^2 \rangle = \frac{3}{2} k_{\mathrm{B}} T,

where kBk_{\mathrm{B}} is the Boltzmann constant and TT is the absolute temperature. This result—often presented as an application of equipartition—shows that temperature is directly proportional to the average translational kinetic energy of the particles.


Maxwell–Boltzmann Speed Distribution

The rms speed vrmsv_{\mathrm{rms}} is a useful single-number summary, but in thermal equilibrium a gas has a distribution of particle speeds.

For an ideal gas in three dimensions, the Maxwell–Boltzmann speed distribution gives the probability density f(v)f(v) for finding a molecule with speed between vv and v+dvv+dv:

f(v)=4π(m2πkBT)3/2v2 exp⁡ ⁣(−mv22kBT),v≥0.f(v) = 4\pi\left(\frac{m}{2\pi k_{\mathrm{B}}T}\right)^{3/2} v^2\,\exp\!\left(-\frac{m v^2}{2k_{\mathrm{B}}T}\right), \qquad v\ge 0.

It is normalized so that ∫0∞f(v) dv=1\int_0^\infty f(v)\,dv = 1.

Most probable speed and mean speed

From f(v)f(v) we can define several “typical” speeds:

vmp=2kBTm(speed at the peak of f(v))v_{\mathrm{mp}} = \sqrt{\frac{2k_{\mathrm{B}}T}{m}} \qquad \text{(speed at the peak of } f(v)\text{)}
⟨v⟩=∫0∞v f(v) dv=8kBTπm.\langle v\rangle = \int_0^\infty v\,f(v)\,dv = \sqrt{\frac{8k_{\mathrm{B}}T}{\pi m}}.

The rms speed is

vrms=⟨v2⟩=3kBTm.v_{\mathrm{rms}} = \sqrt{\langle v^2\rangle} = \sqrt{\frac{3k_{\mathrm{B}}T}{m}}.

For any Maxwell–Boltzmann distribution, these satisfy

vmp<⟨v⟩<vrms.v_{\mathrm{mp}} < \langle v\rangle < v_{\mathrm{rms}}.

Comparing gases and temperatures

The Maxwell–Boltzmann curves below illustrate two trends:

Source
import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import k as k_B, N_A


def f_MB(v, M_kg_per_mol, T):
    """Maxwell–Boltzmann speed distribution f(v) for an ideal gas.

    Parameters
    ----------
    v : array
        Speeds (m/s).
    M_kg_per_mol : float
        Molar mass (kg/mol).
    T : float
        Temperature (K).

    Returns
    -------
    f : array
        Probability density (s/m).
    """
    m = M_kg_per_mol / N_A  # mass per molecule (kg)
    prefactor = 4 * np.pi * (m / (2 * np.pi * k_B * T)) ** 1.5
    return prefactor * v**2 * np.exp(-m * v**2 / (2 * k_B * T))


# Molar masses (kg/mol)
M_He = 4.002602e-3
M_N2 = 28.0134e-3
M_CO2 = 44.0095e-3

cases = [
    (M_CO2, 300, r"CO$_2$ (300 K)"),
    (M_N2, 300, r"N$_2$ (300 K)"),
    (M_N2, 600, r"N$_2$ (600 K)"),
    (M_He, 300, r"He (300 K)"),
]

v = np.linspace(0, 4000, 4000)

fig, ax = plt.subplots(figsize=(6, 4))

for M, T, label in cases:
    ax.plot(v, f_MB(v, M, T), label=label)

ax.set_xlabel("Speed $v$ (m/s)")
ax.set_ylabel(r"Probability density $f(v)$")
ax.set_xlim(0, 4000)
ax.grid(True)
ax.legend(frameon=False)

plt.tight_layout()
plt.show()
plt.close(fig)
<Figure size 600x400 with 1 Axes>

Maxwell–Boltzmann speed distributions for different gases and temperatures.

Worked Example

Root-mean-square speed at room temperature

Estimate the rms speed of N2\mathrm{N_2} molecules at T=300 KT=300\ \mathrm{K}.

Assumptions. Ideal-gas kinetic theory and equipartition; vrms=3kBT/mv_{\mathrm{rms}}=\sqrt{3k_{\mathrm{B}}T/m}.
Take m(N2)=28.0 u=28.0(1.66054×10−27) kg=4.65×10−26 kgm(\mathrm{N_2}) = 28.0\,u = 28.0(1.66054\times10^{-27})\ \mathrm{kg} = 4.65\times10^{-26}\ \mathrm{kg}.

  1. Insert numbers

    vrms=3kBTm=3(1.38065×10−23 J/K)(300 K)4.65×10−26 kg.v_{\mathrm{rms}}=\sqrt{\frac{3k_{\mathrm{B}}T}{m}} =\sqrt{\frac{3(1.38065\times10^{-23}\ \mathrm{J/K})(300\ \mathrm{K})}{4.65\times10^{-26}\ \mathrm{kg}}}.
  2. Evaluate

    vrms=2.67×105 m2/s2≈5.17×102 m/s.v_{\mathrm{rms}}=\sqrt{2.67\times10^{5}\ \mathrm{m^2/s^2}} \approx 5.17\times10^{2}\ \mathrm{m/s}.

Result. vrms(N2,300 K)≈5.2×102 m/sv_{\mathrm{rms}}(\mathrm{N_2},300\ \mathrm{K})\approx 5.2\times10^{2}\ \mathrm{m/s}.

Concept Checks

  1. Which kinetic-theory assumption is most directly violated at high pressures or low temperatures?

  2. Why does pressure depend on ⟨vx2⟩\langle v_x^2\rangle (or ⟨v2⟩\langle v^2\rangle) rather than on ⟨vx⟩\langle v_x\rangle?

  3. How would doubling the absolute temperature change vrmsv_{\mathrm{rms}}?

  4. What physical information is encoded in the width of the Maxwell–Boltzmann speed distribution?

Key Takeaways