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.

Wave-particle duality

Diffraction, interference and the double-slit experiment

compton

Figure 1:Waves passing through two slits create a diffraction pattern on the screen.

Bragg’s formula for diffraction

compton

Figure 2:X-rays scattering off atoms in a crystal: constructive interference (left) and destructive interference (right).

Maxima and minima in interference patterns arise from simple geometry, as captured by Bragg’s law:

Both X-rays and electrons show diffraction patterns

compton

Figure 3:Demonstration of electron diffraction.

Compton scattering

compton

Figure 4:Compton scattering: photons scatter off electrons just as massive particles do.

De Broglie wavelength and wave-particle duality

Effect of potential energy

According to classical physics, the total energy for a particle is given as a sum of the kinetic and potential energies:

E=12mv2+V=p22m+V=T+VE = \frac{1}{2}mv^2 + V = \frac{p^2}{2m} + V = T + V

If we substitute de Broglie’s expression for momentum we get:

λ=h2m(EV)\lambda = \frac{h}{\sqrt{2m(E - V)}}

Waves have to fit

The de Broglie relation has a consequence that goes far beyond diffraction. Take the electron wave and wrap it around a closed loop, as in an orbit around a nucleus. After one complete trip around the loop, called a pass, the wave meets itself and has no choice but to agree with where it started. If the circumference holds a whole number of wavelengths, every pass reinforces the one before it and a standing wave survives. If it does not, successive passes land out of step and the wave interferes itself away.

Source
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from matplotlib.patches import Circle
from IPython.display import HTML

TEAL, CARDINAL, GRAY, PURPLE, GREEN = "#107895", "#C8102E", "#6c757d", "#6a3d9a", "#1a7f37"
R, AMP, LAPS = 1.0, 0.17, 8              # ring radius, wave amplitude, passes summed
th1 = np.linspace(0, 2 * np.pi, 900)             # first pass around the loop
th2 = np.linspace(2 * np.pi, 4 * np.pi, 900)     # second pass around the loop

# amplitude left after LAPS passes: the passes add as phasors exp(2 pi i n k)
n_grid = np.linspace(1.5, 6.5, 2000)
survival = np.abs(np.exp(2j * np.pi * n_grid * np.arange(LAPS)[:, None]).sum(axis=0)) / LAPS

n_seq = [2.0] * 4                        # sweep n, pausing on each whole number
for target in (3.0, 4.0, 5.0, 6.0):
    n_seq += list(np.linspace(n_seq[-1], target, 11, endpoint=False)) + [target] * 4

fig, (ax, bx) = plt.subplots(1, 2, figsize=(8.8, 4.2), gridspec_kw={"width_ratios": [1, 1.15]})

ax.add_patch(Circle((0, 0), R, fill=False, color=GRAY, lw=1.2, ls="--"))
ax.plot(0, 0, "o", color=CARDINAL, ms=9)
(lap1,) = ax.plot([], [], color=PURPLE, lw=2.4, label="1st pass")
(lap2,) = ax.plot([], [], color="#e07b00", lw=2.0, ls="--", label="2nd pass")
(gap,) = ax.plot([], [], color=CARDINAL, lw=3.4, solid_capstyle="butt", zorder=6)
(startdot,) = ax.plot([], [], "o", color=PURPLE, ms=8, mec="white", mew=1.2, zorder=7)
(enddot,) = ax.plot([], [], "o", color="#e07b00", ms=8, mec="white", mew=1.2, zorder=7)
gaplabel = ax.text(0, -1.42, "", fontsize=10.5, ha="center", va="center")
verdict = ax.set_title("", fontsize=12, pad=10)
ax.legend(loc="lower center", bbox_to_anchor=(0.5, -0.12), ncol=2, frameon=False, fontsize=9)
ax.set_xlim(-1.5, 1.5); ax.set_ylim(-1.5, 1.55); ax.set_aspect("equal"); ax.axis("off")

bx.plot(n_grid, survival, color=TEAL, lw=2.2)
bx.fill_between(n_grid, survival, color=TEAL, alpha=0.10)
(marker,) = bx.plot([], [], "o", color=CARDINAL, ms=9, zorder=5)
vline = bx.axvline(2.0, color=CARDINAL, lw=1.2, ls=":")
bx.set_xlim(1.5, 6.5); bx.set_ylim(-0.03, 1.18); bx.set_xticks(range(2, 7))
bx.set_xlabel(r"wavelengths around the orbit,  $n = 2\pi r / \lambda$", fontsize=11)
bx.set_ylabel("amplitude left after 8 passes", fontsize=11)
bx.set_title(r"Only integer $n$ survives", fontsize=12, pad=10)
for s in ("top", "right"):
    bx.spines[s].set_visible(False)
fig.suptitle(r"A standing wave on a Bohr orbit:  $2\pi r = n\lambda = nh/p$", fontsize=13.5, y=0.99)
fig.tight_layout(rect=(0, 0, 1, 0.93))

def update(i):
    n = n_seq[i]
    lap1.set_data((R + AMP * np.sin(n * th1)) * np.cos(th1), (R + AMP * np.sin(n * th1)) * np.sin(th1))
    lap2.set_data((R + AMP * np.sin(n * th2)) * np.cos(th2), (R + AMP * np.sin(n * th2)) * np.sin(th2))
    r1 = R + AMP * np.sin(2 * np.pi * n)          # where the wave sits after one full pass
    gap.set_data([R, r1], [0, 0]); startdot.set_data([R], [0]); enddot.set_data([r1], [0])
    closes = abs(n - round(n)) < 1e-9
    off = abs(n - round(n))
    verdict.set_text(f"$n$ = {n:.2f}   " + ("the wave closes on itself" if closes else "the wave misses itself"))
    verdict.set_color(GREEN if closes else CARDINAL)
    gaplabel.set_text("the 2nd pass lands on the 1st" if closes else rf"the 2nd pass is {off:.2f}$\lambda$ out of step")
    gaplabel.set_color(GREEN if closes else CARDINAL)
    marker.set_data([n], [abs(np.exp(2j * np.pi * n * np.arange(LAPS)).sum()) / LAPS])
    vline.set_xdata([n, n])
    return lap1, lap2, gap, startdot, enddot, gaplabel, marker, vline, verdict

ani = FuncAnimation(fig, update, frames=len(n_seq), interval=80, blit=False)
plt.close(fig)
HTML(ani.to_jshtml())
Loading...

Fig. Left: an electron wave wrapped around an orbit, drawn for two passes. Right: the amplitude left after eight passes, which is sharply peaked at whole numbers of wavelengths.

The closure condition is nothing more than the circumference holding nn wavelengths:

2πr=nλ=nhp,n=1,2,3,2\pi r = n\lambda = \frac{nh}{p}, \qquad n = 1, 2, 3, \ldots

Rearranging gives the quantization of angular momentum,

L=pr=mvr=nh2π=nL = pr = mvr = n\frac{h}{2\pi} = n\hbar

Double-slit experiment

compton

Figure 5:Wave-particle duality in the double-slit experiment.

Electron displays wave-like interference

compton

Figure 6:Where electrons are expected to land according to classical versus quantum theory.

But which slit did the electron go through??

compton

Figure 7:A detector fires photons to determine which slit each electron exits from.

Uncertainty relation

compton

Figure 8:Demonstration of the uncertainty principle. As the electron’s position is localized by narrowing the slit, its momentum becomes more unpredictable, so the electrons hit the detector over a wider range.

Problems

Problem 1: Electrons in an electron microscope

Estimate the wavelength of electrons that have been accelerated from rest through a potential difference of V=40kVV = 40 kV.

Problem 2: Your own de Broglie wavelength

If you considered yourself a particle moving at 2m/s2 m/s, what would your de Broglie wavelength be? Would it make sense to use quantum mechanics in this case?

Problem 3: Position uncertainty in the Bohr atom

Quantify the uncertainty in the position of an electron in the ground state of the H atom using Bohr’s model.

Problem 4: Position uncertainty of a free electron

Quantify the uncertainty in the position of an electron traveling freely with a kinetic energy of 3eV3 eV.

Problem 5: Compton shift

X-rays from a molybdenum source (λ=71.1\lambda = 71.1 pm) scatter off electrons in a graphite target. Compute the wavelength of the photons scattered at 90 degrees and at 180 degrees. What fraction of the photon energy is handed to the electron in the 180 degree case? Explain why the Compton shift is unobservable with visible light.

Problem 6: Thermal neutrons see atoms

Neutrons in equilibrium with a moderator at 300 K have an average kinetic energy of 32kBT\tfrac{3}{2}k_BT. Compute their de Broglie wavelength (mn=1.675×1027m_n = 1.675 \times 10^{-27} kg) and compare it with a typical spacing of atoms in a crystal, about 0.2 nm. Explain why neutron diffraction is used to locate hydrogen atoms in crystals when X-ray diffraction struggles.

Problem 7: Are helium atoms waves?

A beam of helium atoms leaves a nozzle at 300 K with a speed of about 1750 m/s. Compute the de Broglie wavelength of the atoms. In 1930 Estermann and Stern diffracted such a beam from a LiF crystal surface. Of the objects met so far (electron, X-ray photon, neutron, helium atom, a walking person), which show diffraction in practice, and what single quantity decides it?

Problem 8: Confinement costs energy

An electron is confined to a region the size of an atom, Δx0.1\Delta x \approx 0.1 nm. (a) Use the uncertainty relation to find the minimum spread in momentum. (b) Taking pΔpp \sim \Delta p, estimate the electron’s kinetic energy in eV. (c) Repeat for a proton confined to a nucleus, Δx1015\Delta x \approx 10^{-15} m, and give the result in MeV. What does the comparison say about the energy scales of chemistry versus nuclear physics?