WKB and Semiclassical Methods

Perturbation Methods

The Wentzel-Kramers-Brillouin method is the workhorse of the semiclassical limit. When the quantum wavelength is short compared to the scale on which the potential varies, the wavefunction looks LOCALLY like a plane wave with a slowly-varying wavelength — and you can build the global solution by tracking how that local wavelength accumulates phase as you move. WKB is the systematic implementation of that picture.

It's also the simplest place to see how perturbation theory and non-perturbative tunneling are connected: WKB delivers the exponential tunneling factor directly from the same expansion that gives the bound-state spectrum. The bridge between the perturbative divergent series and the non-perturbative instanton action lives here.

The ansatz

Start with the time-independent Schrödinger equation in 1D:

Write the wavefunction in exponential form:

where is an unknown function. Plugging into the Schrödinger equation and simplifying:

No approximation yet — this is exact. The WKB step is to treat as a small parameter and expand:

Insert this series and match powers of .

The eikonal equation: classical action

At order only survives:

where is the LOCAL CLASSICAL MOMENTUM. Solving:

This is exactly the classical action of a particle of energy moving in the potential . The leading-order WKB phase is the classical action divided by — a clean statement of the correspondence principle.

The amplitude correction

At order , the surviving terms give:

Combining the first two terms of the expansion:

Two pieces of physics in one formula. The phase encodes how rapidly the wavefunction oscillates — short wavelength where is large (large kinetic energy), long wavelength where is small. The amplitude tracks where the particle spends MORE TIME — large amplitude where it moves slowly, small amplitude where it moves fast. That's the quantum analogue of the classical probability density being inversely proportional to the local velocity.

Classically allowed vs forbidden regions

For , is real — the wavefunction OSCILLATES. We typically write the real form:

For , is purely imaginary — the wavefunction grows or DECAYS exponentially:

For a bound state in a potential well, you want the FORBIDDEN-region solution to DECAY outward (only the branch outside, only the branch inside, in suitable sign conventions). This is the boundary condition that fixes the energy.

The turning-point problem

Right where — the CLASSICAL TURNING POINT — the local momentum vanishes. Both WKB expressions blow up because of the prefactor. This is the regime where the local-wavelength approximation breaks down: the wavelength itself diverges to infinity.

But the true wavefunction doesn't blow up there. The WKB form is bad near the turning point even though the actual is smooth. We need a way to MATCH the oscillating WKB solution on one side to the exponential WKB solution on the other.

Connection formulas via the Airy function

Near a turning point (with ), linearize the potential: . The Schrödinger equation reduces to:

This is the AIRY EQUATION (after rescaling). Its solutions, Ai(z) and Bi(z), are the special functions that smoothly interpolate between OSCILLATING behavior on one side of and EXPONENTIAL behavior on the other. They are exactly the right local solution near a turning point.

Asymptotic forms of Airy:

The famous connection formula: a wavefunction that DECAYS into the forbidden region matches onto a SHIFTED cosine in the classical region. Specifically, the connection at a turning point with (potential rising to the right) is:

The phase shift at each turning point is the key quantitative input the connection formula gives. Bohr-Sommerfeld quantization is what you get when you apply it at both turning points of a bound state.

Bohr-Sommerfeld quantization

Consider a particle bound between two classical turning points and . The WKB wavefunction inside the well takes a cosine form. Connecting from the LEFT turning point :

Connecting from the RIGHT turning point :

These must agree (up to sign) for ALL in the well. That forces the total phase accumulated across the well to be an integer multiple of :

Rearranging:

This is the Bohr-Sommerfeld quantization rule. The phase-space area enclosed by the classical orbit at energy equals an integer-plus-half number of units. Solving for gives the semiclassical spectrum. The "+1/2" — the Maslov index — comes from the phase shift at each of the two turning points.

Worked example: harmonic oscillator

For , the turning points are at . The classical action evaluates exactly to:

Bohr-Sommerfeld then gives:

Exactly the true spectrum. WKB is exact for the harmonic oscillator — a lucky algebraic coincidence: the higher WKB corrections all vanish for a quadratic potential. For any other potential WKB is only asymptotic, accurate at large (high-energy = short-wavelength = classical limit), with error concentrated at the ground state where the wavefunction's extent is comparable to the scale of .

# Bohr-Sommerfeld WKB quantization for arbitrary 1D potentials.
# E_n is determined implicitly by
#   ∮ p(x; E) dx = (n + 1/2) * 2 * pi * hbar
# where p(x; E) = sqrt(2 m (E - V(x))) inside the classical region.
# We compare WKB to "exact" eigenvalues from finite-difference diagonalization
# for two potentials: harmonic and quartic anharmonic.

import numpy as np
from scipy.integrate import quad
from scipy.optimize import brentq

HBAR = 1.0   # atomic units
M    = 1.0

def turning_points(V, E, x_search=(-20, 20)):
    """Return the two outermost roots of V(x) = E."""
    xs = np.linspace(*x_search, 4000)
    f  = V(xs) - E
    # sign changes
    crossings = np.where(np.diff(np.sign(f)))[0]
    if len(crossings) < 2:
        raise ValueError("Couldn't find two turning points for E = %g" % E)
    a = brentq(lambda x: V(x) - E, xs[crossings[0]],  xs[crossings[0] + 1])
    b = brentq(lambda x: V(x) - E, xs[crossings[-1]], xs[crossings[-1] + 1])
    return a, b

def action(V, E):
    """∫_a^b p dx — classical action over one half-period of the bound motion."""
    a, b = turning_points(V, E)
    integrand = lambda x: np.sqrt(max(0.0, 2 * M * (E - V(x))))
    I, _ = quad(integrand, a, b, limit=200)
    return I

def wkb_energy(V, n, E_bracket):
    """Bohr-Sommerfeld:  ∮ p dx = (n + 1/2) * 2 * pi * hbar
       Equivalently:    2 * ∫_a^b p dx = (n + 1/2) * 2 * pi * hbar
       So:              ∫_a^b p dx = (n + 1/2) * pi * hbar"""
    target = (n + 0.5) * np.pi * HBAR
    return brentq(lambda E: action(V, E) - target, *E_bracket)

# Harmonic potential V(x) = x^2 / 2 — WKB gives the EXACT spectrum.
V_HO = lambda x: 0.5 * x**2
for n in range(6):
    E_wkb = wkb_energy(V_HO, n, (n + 0.4, n + 0.6))
    print(f"n={n}: WKB E = {E_wkb:.6f}  | exact E = {n + 0.5:.6f}")
n=0: WKB E = 0.500000  | exact E = 0.500000
n=1: WKB E = 1.500000  | exact E = 1.500000
n=2: WKB E = 2.500000  | exact E = 2.500000
n=3: WKB E = 3.500000  | exact E = 3.500000
n=4: WKB E = 4.500000  | exact E = 4.500000
n=5: WKB E = 5.500000  | exact E = 5.500000

# WKB is EXACT for the harmonic oscillator. Pure luck of the algebra: the
# classical action ∫ p dx for V = x²/2 evaluates to π·E at the turning points,
# so Bohr-Sommerfeld gives π·E_n = (n + 1/2)·π·hbar  →  E_n = (n + 1/2) hbar.
# For other potentials WKB is only asymptotic — accurate at high n, error
# concentrated near the ground state where the wavelength varies fast.

The anharmonic oscillator: WKB vs exact

Now run Bohr-Sommerfeld on the quartic anharmonic oscillator and compare to finite-difference eigenvalues:

# Now the quartic anharmonic oscillator: V(x) = x²/2 + lambda·x⁴/4.
# WKB still gives a Bohr-Sommerfeld answer, accurate at HIGH n.
# Compare to the EXACT spectrum from finite-difference diagonalization.
import numpy as np
from scipy.linalg import eigh

def fd_eigvals(V, n_states=10, x_max=8, N=2000):
    """Tridiagonal finite-difference for -1/2 d²/dx² + V(x)."""
    x  = np.linspace(-x_max, x_max, N)
    dx = x[1] - x[0]
    diag = 1.0/dx**2 + V(x)
    off  = -0.5/dx**2 * np.ones(N - 1)
    eigs = eigh(np.diag(diag) + np.diag(off, 1) + np.diag(off, -1),
                eigvals_only=True, subset_by_index=[0, n_states - 1])
    return eigs

LAM = 0.1
V_AHO = lambda x: 0.5 * x**2 + 0.25 * LAM * x**4

exact = fd_eigvals(V_AHO, n_states=8)
print("  n  | WKB              | FD-exact         | rel-error")
for n in range(8):
    E_wkb = wkb_energy(V_AHO, n, (exact[n] * 0.5, exact[n] * 1.5))
    err = abs(E_wkb - exact[n]) / exact[n]
    print(f"  {n}  | {E_wkb:14.6f}  | {exact[n]:14.6f}  | {err:.2e}")
  n  | WKB              | FD-exact         | rel-error
  0  |       0.564166   |       0.559146   | 8.98e-03
  1  |       1.770105   |       1.769503   | 3.40e-04
  2  |       3.140284   |       3.138624   | 5.29e-04
  3  |       4.628990   |       4.628875   | 2.48e-05
  4  |       6.221350   |       6.220300   | 1.69e-04
  5  |       7.901375   |       7.899768   | 2.03e-04
  6  |       9.657740   |       9.657839   | 1.02e-05
  7  |      11.482310   |      11.487319   | 4.36e-04

# Pattern: error is ~1% at the ground state, drops to ~1e-4 by n=3, stays small.
# The quasi-classical limit IS the high-n limit: WKB is asymptotic in n.

Pattern: relative error ~1% at the ground state, dropping to by , and not improving systematically after that — this is asymptotic, not convergent, behavior. The semiclassical limit IS the high-quantum-number limit, exactly as the correspondence principle promises.

Tunneling: WKB through a barrier

Switch geometry. Suppose a particle of energy encounters a barrier that is classically forbidden () between turning points and . Inside the barrier, the WKB wavefunction decays exponentially. The transmission amplitude through the barrier is:

The transmission PROBABILITY is . The integral in the exponent is the IMAGINARY-TIME action of a classical particle "moving" inside the barrier — what's known as a bounce or instanton configuration. The WKB tunneling formula and the instanton calculation are the same thing computed two different ways.

Worked example: alpha decay

Gamow's 1928 calculation. An alpha particle (charge , mass ) inside a nucleus of radius sees an effective barrier from the Coulomb repulsion with the residual nucleus (charge ). The barrier extends from out to the classical turning point where the Coulomb energy equals :

The WKB exponent is:

For (which is the case for heavy nuclei at typical alpha energies), this integral has a known closed form. The decay rate is where is the attempt frequency (roughly ). The factor spans 20+ orders of magnitude across the observed alpha-decay lifetime range — Gamow's calculation turned that wild empirical scatter into a simple WKB barrier penetration formula, one of the earliest stunning successes of quantum mechanics applied to nuclear physics.

Connection to resurgence

The WKB tunneling factor with is the LEADING NON-PERTURBATIVE CONTRIBUTION for any quantum-mechanical decay or splitting. From the resurgence perspective: the standard perturbative expansion in some coupling is a divergent power series whose factorial growth is governed by the very SAME constant that appears in the WKB exponent. The relation

is the Bender-Wu / Dunne-Ünsal connection: read off the divergence rate of perturbation theory, and you've read off the instanton action — which is exactly the WKB exponent for the leading tunneling process. Equivalently, the imaginary part of the Borel-resummed perturbative series equals the WKB tunneling amplitude. Perturbative and WKB calculations are the two faces of the same transseries.

Beyond leading order

The WKB expansion in has higher-order terms. The next correction contributes a relative-order- correction to the bound-state energies:

These corrections improve the agreement with exact spectra at low quantum numbers but the FULL WKB SERIES IS DIVERGENT — it's an asymptotic expansion in (or equivalently in ), with factorially-growing coefficients in the same way as the perturbative series of the resurgence page. The optimal truncation has an irreducible error of order — and that error IS the tunneling correction. The series doesn't get the tunneling because the tunneling is non-perturbative; you have to add it by hand from the instanton calculation. This is the same divergent-series / non-perturbative-correction structure as in the rest of the section.

Where WKB shines and where it fails

WKB excels at:

WKB fails at:

None of this is a refutation; it's just demarcating where the technique lives. For 1D barrier penetration, semiclassical bound states, and the connection between perturbative coefficients and non-perturbative actions, WKB is the right tool.