Chapter 29
28 min read
Section 245 of 353

The Time-Dependent Schrödinger Equation

The Schrödinger Equation

Learning Objectives

By the end of this section, you will be able to:

  1. Interpret the time-dependent Schrödinger equation as governing quantum state evolution
  2. Understand why the equation is first-order in time and what role the imaginary unit plays
  3. Analyze wave packet dynamics: motion, spreading, and the uncertainty principle
  4. Distinguish between stationary states and superposition states and their time evolution
  5. Derive and interpret the probability current and continuity equation
  6. Connect quantum time evolution to diffusion models in machine learning
  7. Implement wave packet simulation in Python

The Big Picture: Quantum Dynamics

"The Schrödinger equation plays the same role in quantum mechanics that Newton's equations play in classical mechanics." — Richard Feynman

In classical mechanics, Newton's second law tells us how a particle's position and momentum evolve over time. In quantum mechanics, the time-dependent Schrödinger equation tells us how the wave function—the complete description of a quantum system—evolves.

The Central Equation of Quantum Mechanics

The time-dependent Schrödinger equation is the master equation of quantum mechanics:

iΨt=H^Ψi\hbar \frac{\partial \Psi}{\partial t} = \hat{H} \Psi

Given Ψ(x,0)\Psi(x, 0), this equation uniquely determines Ψ(x,t)\Psi(x, t) for all future times. The wave function contains all information about the quantum system.

Unlike classical equations that predict definite trajectories, the Schrödinger equation predicts the evolution of probability amplitudes. The particle doesn't have a definite position until measured—instead, Ψ(x,t)2|\Psi(x,t)|^2 tells us the probability of finding it at position xx at time tt.


Historical Context

The development of the time-dependent Schrödinger equation represents one of the greatest intellectual achievements in physics, unifying wave mechanics with the dynamical evolution of quantum states.

1925-1926: Schrödinger's Wave Mechanics

Erwin Schrödinger, inspired by de Broglie's wave-particle hypothesis, developed his famous equation during a Christmas vacation in the Swiss Alps. He initially found the time-independent equation for stationary states, then generalized to the full time-dependent form.

The Wave Function Interpretation

Max Born proposed that Ψ2|\Psi|^2 represents probability density—earning him the 1954 Nobel Prize. This probabilistic interpretation was controversial; Einstein famously objected, "God does not play dice."

Unification with Matrix Mechanics

Schrödinger proved that his wave mechanics was mathematically equivalent to Heisenberg's matrix mechanics—two different representations of the same quantum physics. This established the foundation of modern quantum theory.


The Time-Dependent Schrödinger Equation

The complete form of the Schrödinger equation for a particle of mass mm in a potential V(x,t)V(x,t) is:

iΨt=22m2Ψx2+V(x,t)Ψi\hbar \frac{\partial \Psi}{\partial t} = -\frac{\hbar^2}{2m}\frac{\partial^2 \Psi}{\partial x^2} + V(x,t)\Psi

The fundamental equation of quantum dynamics

Understanding Each Term

TermExpressionPhysical Meaning
Time evolutioniℏ ∂Ψ/∂tRate of change of the wave function
Kinetic energy-ℏ²/(2m) ∂²Ψ/∂x²Effect of momentum on evolution
Potential energyEffect of external forces on evolution
HamiltonianĤ = -ℏ²/(2m)∇² + VTotal energy operator

Why First-Order in Time?

Unlike the classical wave equation (second-order in time), the Schrödinger equation is first-order in time. This has profound implications:

Classical Wave Equation

∂²u/∂t² = c²∂²u/∂x²

Requires two initial conditions: u(x,0) and ∂u/∂t(x,0). Position and velocity are independent.

Schrödinger Equation

iℏ∂Ψ/∂t = ĤΨ

Requires only one initial condition: Ψ(x,0). The wave function contains all information about the state.

The Role of the Imaginary Unit

The factor of i=1i = \sqrt{-1} is not just a mathematical convenience—it's essential for quantum physics:

  • Oscillatory solutions: Without ii, the equation would give exponentially growing/decaying solutions instead of oscillating waves
  • Probability conservation: The ii factor ensures that Ψ2dx=1\int|\Psi|^2 dx = 1 is constant in time
  • Time-reversal symmetry: Complex conjugation reverses time evolution: Ψ(t)Ψ(t)\Psi^* (t) \to \Psi(-t)

Physical Interpretation

What does the Schrödinger equation actually tell us about the physical world? Let's unpack the deep physical content of this equation.

Energy Drives Time Evolution

The Schrödinger equation says: energy drives time evolution. The Hamiltonian operator H^\hat{H} measures the total energy, and the rate at which Ψ\Psi changes is proportional to this energy.

Ψt=iH^Ψ\frac{\partial \Psi}{\partial t} = -\frac{i}{\hbar} \hat{H} \Psi

Higher energy states evolve faster. The constant \hbar sets the scale: frequency ω=E/\omega = E/\hbar relates energy to oscillation rate.

The Formal Solution

For a time-independent Hamiltonian, the formal solution is:

Ψ(x,t)=eiH^t/Ψ(x,0)\Psi(x,t) = e^{-i\hat{H}t/\hbar} \Psi(x,0)

The operator eiH^t/e^{-i\hat{H}t/\hbar} is called the time evolution operator or propagator. It's unitary: it preserves the norm of Ψ\Psi.

Energy Eigenstates Have Simple Time Evolution

If ψn\psi_n is an energy eigenstate with energy EnE_n: H^ψn=Enψn\hat{H}\psi_n = E_n\psi_n

Then its time evolution is simply:

Ψn(x,t)=ψn(x)eiEnt/\Psi_n(x,t) = \psi_n(x) e^{-iE_n t/\hbar}

The spatial shape doesn't change—only the complex phase rotates. That's why these are called stationary states.


Wave Packet Dynamics

To understand quantum dynamics concretely, let's study Gaussian wave packets—the closest quantum analog to a classical particle. A wave packet represents a particle with approximate (not exact) position and momentum.

The Free-Particle Gaussian Wave Packet

For a free particle (V = 0), a Gaussian wave packet has the form:

Ψ(x,t)=A(t)exp[(xvgt)24σ(t)2]exp[i(k0xω0t)]\Psi(x,t) = A(t) \exp\left[-\frac{(x - v_g t)^2}{4\sigma(t)^2}\right] \exp\left[i(k_0 x - \omega_0 t)\right]

Where:

  • vg=k0/mv_g = \hbar k_0/m is the group velocity (center moves at classical speed)
  • σ(t)\sigma(t) is the time-dependent width
  • k0k_0 is the central wave number (momentum p=k0p = \hbar k_0)
  • ω0=k02/(2m)\omega_0 = \hbar k_0^2/(2m) is the central angular frequency
Gaussian Wave Packet Time Evolution

Watch a Gaussian wave packet evolve according to the free-particle Schrödinger equation. The packet moves at the group velocity v = ℏk₀/m while spreading over time.

Initial Width (σ₀)0.10
Wave Number (k₀)20
Mass (m)1.0

Group Velocity

The packet center moves at v = ℏk₀/m = 20.00. This is the classical velocity associated with momentum p = ℏk₀.

Wave Packet Spreading

The packet width grows as σ(t) = √(σ₀² + (ℏt/2mσ₀)²). Smaller initial widths spread faster due to the uncertainty principle.

Key Features of Wave Packet Motion

  1. The center moves classically: The expectation value x=vgt+x0\langle x \rangle = v_g t + x_0 follows Newton's first law. Ehrenfest's theorem guarantees this.
  2. The width grows in time: This is unavoidable for free particles. The packet "spreads out" as different momentum components move at different speeds.
  3. Phase oscillates rapidly: The eik0xe^{ik_0 x} factor creates the wave-like oscillations inside the envelope.

Wave Packet Spreading

One of the most striking features of quantum mechanics is that free particles inevitably spread out over time. This is a direct consequence of the Heisenberg uncertainty principle.

The Spreading Formula

The width of a Gaussian wave packet evolves as:

σ(t)2=σ02+(t2mσ0)2\sigma(t)^2 = \sigma_0^2 + \left(\frac{\hbar t}{2m\sigma_0}\right)^2

Wave packet width grows quadratically in time for large t

Wave Packet Spreading

Explore how the width of a Gaussian wave packet grows with time: σ(t)² = σ₀² + (ℏt/2mσ₀)²

Time (t)0.00
Initial Width (σ₀)0.050
Mass (m)1.0

Uncertainty Principle at Work

A smaller σ₀ means more precise position, but greater momentum uncertainty. This causes faster spreading: the packet "spreads out" more quickly when initially localized.

Mass Dependence

Heavier particles spread more slowly. The spreading rate is proportional to ℏ/m. This is why classical objects don't noticeably spread—their masses are enormous.

Physical Understanding

Why does the packet spread? The answer lies in the momentum uncertainty:

  1. The initial position uncertainty is Δxσ0\Delta x \sim \sigma_0
  2. By the uncertainty principle, Δp/(2σ0)\Delta p \geq \hbar/(2\sigma_0)
  3. Different momentum components have different velocities: Δv=Δp/m\Delta v = \Delta p/m
  4. Over time, faster components move ahead, slower ones lag behind
  5. The result: the packet spreads at rate /(mσ0)\sim \hbar/(m\sigma_0)

The Classical Limit

For macroscopic objects, the spreading is utterly negligible. For a baseball (m ~ 0.15 kg) with σ₀ ~ 1 cm:

Spreading time ~ mσ₀²/ℏ ~ 10³⁰ seconds—far longer than the age of the universe! This is why we don't observe quantum spreading in everyday life.


Stationary States and Phase Evolution

When a particle is in an energy eigenstate, something remarkable happens: the probability density doesn't change with time. Only the complex phase rotates.

Why "Stationary"?

For an energy eigenstate ψn\psi_n:

Ψn(x,t)=ψn(x)eiEnt/\Psi_n(x,t) = \psi_n(x) e^{-iE_n t/\hbar}

The probability density is:

Ψn(x,t)2=ψn(x)2eiEnt/2=ψn(x)2|\Psi_n(x,t)|^2 = |\psi_n(x)|^2 \cdot |e^{-iE_n t/\hbar}|^2 = |\psi_n(x)|^2

The time-dependent phase factor has magnitude 1, so it doesn't affect the probability! The particle's probability distribution is stationary—it doesn't change.

Complex Wave Function Visualization

See how the complex phase of an energy eigenstate rotates with time. For stationary states, the phase rotates uniformly: e^(-iEt/ℏ).

Energy Level (n)1

Stationary States

Energy eigenstates are "stationary" because |Ψ|² doesn't change with time—only the complex phase rotates. The rotation frequency ω = E/ℏ is proportional to the energy.

Physical Interpretation of the Phase

The rotating phase eiEt/e^{-iEt/\hbar} has physical meaning:

  • Frequency ω = E/ℏ: Higher energy states rotate faster
  • de Broglie relation: E = ℏω connects energy to frequency
  • Interference: When states combine, relative phases matter

Superposition and Time Evolution

The most interesting quantum dynamics occur when a particle is in a superposition of energy eigenstates. Unlike stationary states, superpositions show time-dependent probability distributions.

Quantum Beats

Consider a superposition of two energy eigenstates:

Ψ(x,t)=c1ψ1(x)eiE1t/+c2ψ2(x)eiE2t/\Psi(x,t) = c_1 \psi_1(x) e^{-iE_1 t/\hbar} + c_2 \psi_2(x) e^{-iE_2 t/\hbar}

The probability density contains an interference term:

Ψ2=c12ψ12+c22ψ22+2Re[c1c2ψ1ψ2ei(E2E1)t/]|\Psi|^2 = |c_1|^2|\psi_1|^2 + |c_2|^2|\psi_2|^2 + 2\text{Re}\left[c_1^* c_2 \psi_1^* \psi_2 e^{-i(E_2-E_1)t/\hbar}\right]

The interference term oscillates at the beat frequency:

ωbeat=E2E1\omega_{\text{beat}} = \frac{E_2 - E_1}{\hbar}
Superposition State Time Evolution

A superposition of energy eigenstates shows quantum "beating"—the probability density oscillates at the beat frequency ω = (E₂−E₁)/ℏ.

Ground State Amplitude (c₁)0.70
First Excited State (c₂)0.70

Quantum Beats

Unlike stationary states where |Ψ|² is constant, superposition states show time-dependent probability. The interference between states with different energies creates "quantum beats"—probability oscillates between different regions of space.

Superposition Creates Dynamics

Single energy eigenstates are static (|Ψ|² constant). All interesting time-dependent behavior comes from superpositions of states with different energies!

This is why atomic transitions occur: electrons in superpositions of energy levels oscillate, and oscillating charges radiate light at frequency ω = ΔE/ℏ.


Probability Current and Continuity

The Schrödinger equation implies a local conservation law for probability. Probability can flow from one region to another, but it cannot be created or destroyed.

The Continuity Equation

Define the probability density and probability current:

ρ(x,t)=Ψ(x,t)2=ΨΨ\rho(x,t) = |\Psi(x,t)|^2 = \Psi^* \Psi
J(x,t)=2mi(ΨΨxΨΨx)J(x,t) = \frac{\hbar}{2mi}\left(\Psi^* \frac{\partial \Psi}{\partial x} - \Psi \frac{\partial \Psi^*}{\partial x}\right)

These satisfy the continuity equation:

ρt+Jx=0\frac{\partial \rho}{\partial t} + \frac{\partial J}{\partial x} = 0

Probability is locally conserved: what flows out of a region must flow into adjacent regions

Probability Density Evolution

Visualize how the probability density |Ψ|² spreads over time. This demonstrates the diffusive nature of quantum probability.

Diffusion Rate (α)0.010

The Continuity Equation

The probability density satisfies ∂ρ/∂t + ∇·J = 0, where J is the probability current. This ensures total probability is conserved: ∫|Ψ|²dx = 1 at all times.

Physical Meaning

  • ρ(x,t): Probability per unit length of finding the particle at x
  • J(x,t): Probability flux—the rate at which probability flows past point x
  • Continuity: If ρ decreases somewhere, J carries that probability elsewhere

For Plane Waves

For a plane wave Ψ=Aei(kxωt)\Psi = Ae^{i(kx - \omega t)}:

J=A2km=A2vJ = |A|^2 \frac{\hbar k}{m} = |A|^2 v

The current equals probability density times velocity—exactly what we'd expect for classical fluid flow!


Machine Learning Connections

The mathematics of the time-dependent Schrödinger equation has surprising connections to modern machine learning, particularly in generative AI and neural network dynamics.

1. Diffusion Models and Score Matching

The Schrödinger bridge problem—finding the most likely path between two probability distributions—is central to modern diffusion models like DALL-E and Stable Diffusion.

The forward diffusion process (adding noise to images) is governed by a stochastic differential equation related to the heat equation. The reverse process (denoising) is like running time backwards—made possible by learning the "score" ∇ log p(x).

2. Neural Network as Quantum Systems

Several research directions explore quantum-inspired approaches:

  • Neural Quantum States: Using neural networks to represent wave functions for solving the Schrödinger equation
  • Quantum-inspired algorithms: Tensor networks and other techniques from quantum physics improve classical ML
  • Physics-informed neural networks: Encoding the Schrödinger equation as a constraint during training

3. Wave Function Collapse and Attention

Some researchers draw analogies between:

  • Superposition states and attention weights (uncertain before softmax)
  • Measurement collapse and sampling from a probability distribution
  • Unitary evolution and residual connections (information preservation)

Simulation of Quantum Systems

One of the most important applications is using neural networks to solve the Schrödinger equation for complex many-body systems. This is an active area where ML meets fundamental physics.


Python Implementation

Gaussian Wave Packet Simulation
🐍wave_packet_evolution.py
5GaussianWavePacket Class

This class encapsulates the physics of a Gaussian wave packet. It stores the initial parameters and provides methods to compute the wave function at any position and time.

17Wave Packet Parameters

x0 is the initial center, σ₀ is the initial width (related to position uncertainty Δx ~ σ₀), k0 is the wave number (momentum p = ℏk0), and m is mass. These fully determine the initial state.

27Group Velocity

v_group = ℏk₀/m is the velocity at which the wave packet center moves. This matches the classical velocity v = p/m with momentum p = ℏk₀. The de Broglie relation at work!

30Width Evolution

The width grows as σ(t)² = σ₀² + (ℏt/2mσ₀)². Smaller initial widths lead to faster spreading—this is the uncertainty principle in action: small Δx means large Δp.

36Complex Wave Function

The wave function is complex-valued. The real and imaginary parts oscillate, but |Ψ|² (probability density) remains a Gaussian that moves and spreads.

50Phase Factor

exp(ikx - iωt) gives the oscillatory behavior. This phase rotates at angular frequency ω = E/ℏ = ℏk²/2m. The spreading also adds a position-dependent phase.

59Probability Density

|Ψ|² = Ψ*Ψ gives the probability of finding the particle. Total probability ∫|Ψ|²dx = 1 is conserved by the normalization factor.

150 lines without explanation
1import numpy as np
2import matplotlib.pyplot as plt
3from matplotlib.animation import FuncAnimation
4
5class GaussianWavePacket:
6    """
7    Simulate a Gaussian wave packet evolving under
8    the free-particle Schrödinger equation.
9
10    Ψ(x,t) evolves according to:
11    iℏ ∂Ψ/∂t = -ℏ²/(2m) ∂²Ψ/∂x²
12    """
13
14    def __init__(self, x0=0, sigma0=0.1, k0=20, m=1.0, hbar=1.0):
15        """
16        Initialize wave packet parameters.
17
18        x0: initial center position
19        sigma0: initial width (position uncertainty)
20        k0: initial wave number (momentum = ℏk0)
21        m: particle mass
22        hbar: reduced Planck constant
23        """
24        self.x0 = x0
25        self.sigma0 = sigma0
26        self.k0 = k0
27        self.m = m
28        self.hbar = hbar
29
30        # Derived quantities
31        self.v_group = hbar * k0 / m  # Group velocity
32        self.omega0 = hbar * k0**2 / (2 * m)  # Angular frequency
33
34    def sigma(self, t):
35        """Time-dependent width: σ(t)² = σ₀² + (ℏt/2mσ₀)²"""
36        term = (self.hbar * t) / (2 * self.m * self.sigma0)
37        return np.sqrt(self.sigma0**2 + term**2)
38
39    def wave_function(self, x, t):
40        """
41        Compute Ψ(x,t) for the Gaussian wave packet.
42
43        Returns complex wave function values.
44        """
45        # Center moves with group velocity
46        x_center = self.x0 + self.v_group * t
47
48        # Time-dependent width
49        sigma_t = self.sigma(t)
50
51        # Normalization (keeps ∫|Ψ|²dx = 1)
52        norm = (1 / (2 * np.pi * sigma_t**2))**0.25
53
54        # Gaussian envelope
55        gaussian = np.exp(-(x - x_center)**2 / (4 * sigma_t**2))
56
57        # Phase factor: e^(ikx - iωt)
58        phase = self.k0 * x - self.omega0 * t
59
60        # Additional phase from spreading
61        if t > 0:
62            spread_phase = ((x - x_center)**2 * self.hbar * t /
63                           (4 * self.m * sigma_t**2 * self.sigma0**2))
64            phase += spread_phase
65
66        return norm * gaussian * np.exp(1j * phase)
67
68    def probability_density(self, x, t):
69        """Compute |Ψ(x,t)|² - the probability density."""
70        psi = self.wave_function(x, t)
71        return np.abs(psi)**2
72
73
74def animate_wave_packet(packet, x_range=(-1, 3), t_max=0.3, frames=100):
75    """
76    Create an animation of wave packet evolution.
77    """
78    fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
79
80    x = np.linspace(x_range[0], x_range[1], 500)
81    times = np.linspace(0, t_max, frames)
82
83    # Initialize lines
84    line_real, = ax1.plot([], [], 'b-', lw=2, label='Re(Ψ)')
85    line_imag, = ax1.plot([], [], 'r-', lw=2, label='Im(Ψ)')
86    line_prob, = ax2.plot([], [], 'g-', lw=2, label='|Ψ|²')
87    fill_prob = ax2.fill_between([], [], alpha=0.3, color='green')
88    time_text = ax1.text(0.02, 0.95, '', transform=ax1.transAxes)
89
90    ax1.set_xlim(x_range)
91    ax1.set_ylim(-2, 2)
92    ax1.set_xlabel('Position x')
93    ax1.set_ylabel('Wave function')
94    ax1.legend(loc='upper right')
95    ax1.set_title('Time-Dependent Schrödinger Equation')
96
97    ax2.set_xlim(x_range)
98    ax2.set_ylim(0, 4)
99    ax2.set_xlabel('Position x')
100    ax2.set_ylabel('Probability density')
101    ax2.legend(loc='upper right')
102
103    def init():
104        return line_real, line_imag, line_prob, time_text
105
106    def update(frame):
107        t = times[frame]
108        psi = packet.wave_function(x, t)
109        prob = np.abs(psi)**2
110
111        line_real.set_data(x, np.real(psi))
112        line_imag.set_data(x, np.imag(psi))
113        line_prob.set_data(x, prob)
114
115        # Update fill
116        ax2.collections.clear()
117        ax2.fill_between(x, 0, prob, alpha=0.3, color='green')
118
119        time_text.set_text(f't = {t:.4f}')
120        return line_real, line_imag, line_prob, time_text
121
122    anim = FuncAnimation(fig, update, frames=frames,
123                         init_func=init, blit=True, interval=50)
124    plt.tight_layout()
125    return anim
126
127
128# Example usage
129packet = GaussianWavePacket(x0=0, sigma0=0.1, k0=20, m=1.0)
130
131# Show spreading over time
132print("Wave packet spreading:")
133print(f"  Initial width σ₀ = {packet.sigma0:.3f}")
134for t in [0, 0.1, 0.2, 0.5, 1.0]:
135    print(f"  σ(t={t}) = {packet.sigma(t):.4f}")
136
137# Plot snapshots at different times
138x = np.linspace(-0.5, 2, 400)
139fig, axes = plt.subplots(2, 3, figsize=(12, 6))
140
141for idx, t in enumerate([0, 0.05, 0.1, 0.15, 0.2, 0.25]):
142    ax = axes.flat[idx]
143    psi = packet.wave_function(x, t)
144    prob = np.abs(psi)**2
145
146    ax.plot(x, np.real(psi), 'b-', label='Re(Ψ)', alpha=0.7)
147    ax.plot(x, np.imag(psi), 'r-', label='Im(Ψ)', alpha=0.7)
148    ax.fill_between(x, 0, prob, alpha=0.3, color='green', label='|Ψ|²')
149    ax.set_title(f't = {t:.2f}')
150    ax.set_xlim(-0.5, 2)
151    ax.set_ylim(-2, 3)
152    if idx == 0:
153        ax.legend(fontsize=8)
154
155plt.suptitle('Gaussian Wave Packet Evolution')
156plt.tight_layout()
157plt.show()

Test Your Understanding

Test Your Understanding
Question 1 of 6

What does the imaginary unit i in the time-dependent Schrödinger equation signify?


Summary

The time-dependent Schrödinger equation is the master equation of quantum mechanics, governing how quantum states evolve in time. Unlike classical mechanics, it doesn't predict definite trajectories—instead, it predicts how probability amplitudes change.

Key Concepts

ConceptDescription
Time evolutioniℏ∂Ψ/∂t = ĤΨ — Hamiltonian drives time evolution
Wave packetsLocalized wave functions that move and spread
Group velocityv = ℏk₀/m — packet center moves classically
Spreadingσ(t)² = σ₀² + (ℏt/2mσ₀)² — width grows over time
Stationary statesEnergy eigenstates: only phase rotates, |Ψ|² constant
Superposition dynamicsDifferent energies create oscillating interference
Probability currentJ = (ℏ/2mi)(Ψ*∇Ψ - Ψ∇Ψ*) — probability flow
Continuity∂ρ/∂t + ∇·J = 0 — probability is conserved

Key Takeaways

  1. The Schrödinger equation is first-order in time—the wave function at t=0 uniquely determines all future evolution
  2. The imaginary unit i ensures oscillatory (not exponential) solutions and probability conservation
  3. Wave packets spread over time—a direct consequence of the uncertainty principle and momentum dispersion
  4. Energy eigenstates are stationary—their probability density doesn't change, only the complex phase rotates
  5. Superposition creates dynamics—interference between states with different energies causes time-dependent probabilities
  6. The probability current and continuity equation ensure probability is locally conserved as it flows
  7. These concepts connect to diffusion models and other areas of modern machine learning
The Essence of Quantum Dynamics:
"The wave function evolves deterministically according to Schrödinger's equation. Probability is conserved and flows like a fluid. Energy eigenstates are stationary; superpositions create the dynamics that make quantum mechanics come alive."
Coming Next: In the next section, we'll explore the Particle in a Box—the simplest quantum system with bound states. We'll solve the Schrödinger equation exactly and discover energy quantization from first principles.
Loading comments...