Theory of Relativity
Prerequisites & Foundations
Math, classical mechanics & electromagnetism basicsCrisis of Classical Physics
Why relativity was neededSpecial Relativity
Physics at high speedsSpacetime & Geometry
Minkowski spacetime and diagramsGeneral Relativity
Gravity as curved spacetimeCosmology
Relativity at universe scaleExperimental Verification
Evidence and real-world testsMathematical Relativity
Tensors and differential geometryAdvanced Topics & Frontiers
Quantum gravity, wormholes & beyondApplications of Relativity
GPS, astrophysics & technologyThe Problem: When Classical Physics Broke Down
By the late 19th century, physicists were confident they had nearly completed the picture of the universe. Newton's mechanics explained motion from falling apples to orbiting planets. Maxwell's electromagnetism unified electricity, magnetism, and light. Thermodynamics governed heat and energy. The universe seemed like a clockwork machine, and physics was almost "done."
Then everything fell apart.
The Assumptions of Classical Physics
Classical physics rested on several assumptions that seemed obviously true:
- Absolute time — time flows at the same rate for everyone, everywhere
- Absolute space — there exists a fixed "stage" on which physics plays out
- Galilean velocity addition — velocities add simply: if you walk at 5 km/h on a train moving at 100 km/h, you move at 105 km/h relative to the ground
- Instantaneous action — forces (like gravity) act instantaneously across any distance
Every one of these assumptions would be overthrown by Einstein's relativity.
Maxwell's Puzzle: The Speed of Light Problem
Maxwell's equations give the speed of electromagnetic waves as:
But relative to what? In Newtonian physics, every speed is relative to something. Sound travels at 343 m/s relative to air. Water waves move relative to water. So light must travel at c relative to... something. Physicists called this hypothetical medium the luminiferous aether.
flowchart TD
A["Earth moves through
stationary aether"] --> B["Light speed should
vary with direction"]
B --> C["Moving with aether:
c - v (slower)"]
B --> D["Moving against aether:
c + v (faster)"]
B --> E["Perpendicular to aether:
√(c² - v²)"]
C --> F["Michelson-Morley
should detect this"]
D --> F
E --> F
F --> G["Result: NO
difference detected!"]
The Michelson-Morley Experiment (1887)
The Michelson-Morley experiment is often called "the most famous failed experiment in physics." It was designed to detect Earth's motion through the aether — and its shocking null result changed everything.
The Aether Hypothesis
The reasoning seemed bulletproof:
- Light is a wave (demonstrated by interference and diffraction)
- Waves need a medium to propagate through
- Therefore, space must be filled with a medium — the "luminiferous aether"
- Earth orbits the Sun at ~30 km/s, so it must move through the aether
- This motion should create an "aether wind" that affects light speed
The expected effect was small — about 1 part in 100 million — but Albert Michelson's interferometer was sensitive enough to detect it.
The Interferometer Design
Michelson's brilliant design split a beam of light into two perpendicular paths, bounced them off mirrors, and recombined them. If one path took longer (due to the aether wind), the recombined beams would show interference fringes — a shift in the pattern.
Adjust the hypothetical aether wind speed to see predicted vs actual fringe shifts. The experiment always measures zero shift — proving no aether exists.
Michelson-Morley Interferometer (1887)
Setup: A beam splitter divides light into two perpendicular paths of equal length L. Mirrors reflect the beams back, and they recombine at a detector.
Prediction: If Earth moves at velocity v through the aether, the round-trip times differ by:
\Delta t = \frac{L}{c}\left(\frac{v^2}{c^2}\right)
Expected fringe shift: ~0.4 fringes (easily detectable with Michelson's apparatus)
Actual result: No fringe shift detected. Zero. Nada. The speed of light was the same in all directions.
import numpy as np
# Michelson-Morley Experiment Calculations
c = 3e8 # speed of light (m/s)
v = 3e4 # Earth's orbital speed (m/s) = 30 km/s
L = 11 # arm length in meters (Michelson's setup)
wavelength = 550e-9 # yellow light wavelength (m)
# Time for light to travel parallel to motion (round trip)
t_parallel = (2 * L / c) * (1 / (1 - (v/c)**2))
# Time for light to travel perpendicular to motion (round trip)
t_perpendicular = (2 * L / c) * (1 / np.sqrt(1 - (v/c)**2))
# Time difference
delta_t = t_parallel - t_perpendicular
# Expected fringe shift
fringe_shift = delta_t * c / wavelength
print("Michelson-Morley Experiment Analysis")
print("=" * 45)
print(f"Speed of light: {c:.2e} m/s")
print(f"Earth orbital speed: {v:.2e} m/s")
print(f"v/c ratio: {v/c:.2e}")
print(f"Arm length: {L} m")
print(f"Light wavelength: {wavelength*1e9:.0f} nm")
print(f"\nTime (parallel path): {t_parallel:.15e} s")
print(f"Time (perpendicular): {t_perpendicular:.15e} s")
print(f"Time difference: {delta_t:.3e} s")
print(f"\nExpected fringe shift: {fringe_shift:.2f} fringes")
print(f"Actual observed shift: ~0.00 fringes")
print(f"\nConclusion: NO aether wind detected!")
The Null Result and Its Implications
The experiment was repeated many times — at different times of day, different seasons (when Earth's velocity direction changes), at different altitudes. The result was always the same: no detectable motion through the aether.
This left only a few possibilities:
- Earth happens to be at rest relative to the aether (rejected — Earth orbits the Sun)
- The aether is somehow dragged along with Earth (contradicted by stellar aberration)
- Objects contract in their direction of motion (Lorentz-FitzGerald hypothesis)
- There is no aether, and the speed of light is truly constant for all observers (Einstein's solution)
Failure of Galilean Relativity
The Velocity Addition Problem
Galilean velocity addition says that if you're on a train moving at speed u and throw a ball forward at speed v', the ball's speed relative to the ground is:
This works perfectly for everyday speeds. But now consider light:
The correct relativistic velocity addition (derived in Part 3) is:
Notice that when both u and v' are much smaller than c, the denominator is approximately 1, and we recover the Galilean formula. But when speeds approach c, the denominator prevents the sum from ever exceeding c.
Compare Galilean (classical) vs Einstein's velocity addition. Note how the relativistic result never exceeds c, regardless of input speeds.
import numpy as np
# Compare Galilean vs Relativistic velocity addition
c = 1 # natural units
def galilean_addition(u, v_prime):
"""Classical velocity addition"""
return u + v_prime
def relativistic_addition(u, v_prime):
"""Einstein's velocity addition formula"""
return (u + v_prime) / (1 + u * v_prime / c**2)
print("Velocity Addition: Galilean vs Relativistic")
print("=" * 55)
print(f"{'Ship speed':<12} {'Ball speed':<12} {'Galilean':<12} {'Relativistic':<12}")
print("-" * 55)
cases = [
(0.01, 0.01, "Everyday speeds"),
(0.5, 0.5, "Half light speed"),
(0.9, 0.9, "Near light speed"),
(0.99, 0.99, "Ultra-relativistic"),
(0.9, 1.0, "Ship + light beam"),
(0.99, 1.0, "Fast ship + light"),
]
for u, v_prime, label in cases:
gal = galilean_addition(u, v_prime)
rel = relativistic_addition(u, v_prime)
print(f"{u:<12.2f} {v_prime:<12.2f} {gal:<12.2f} {rel:<12.4f} ← {label}")
print(f"\nKey insight: Relativistic addition NEVER exceeds c = {c}")
print(f"Even 0.99c + 0.99c = {relativistic_addition(0.99, 0.99):.6f}c (not 1.98c!)")
The Lorentz-FitzGerald Contraction
Before Einstein, Hendrik Lorentz and George FitzGerald independently proposed that objects physically contract in their direction of motion through the aether. The contraction factor was:
This could explain the Michelson-Morley null result — if the interferometer arm parallel to Earth's motion shortened by just the right amount, the travel times would equalize. But this was an ad hoc hypothesis — a mathematical patch without physical understanding.
Einstein's genius was showing that this contraction isn't a mysterious physical effect — it's a consequence of the geometry of spacetime. Length contraction, time dilation, and the relativity of simultaneity all emerge naturally from two simple postulates (Part 3).
Other Cracks in Classical Physics
The speed-of-light problem wasn't the only crisis. Around 1900, classical physics failed spectacularly in several other domains, leading to the quantum revolution alongside the relativity revolution.
The Blackbody Radiation Catastrophe
Classical physics predicted that a heated object should radiate infinite energy at short wavelengths — the "ultraviolet catastrophe." This was clearly absurd. In 1900, Max Planck resolved this by proposing that energy comes in discrete packets (quanta):
where h = 6.626 \times 10^{-34} J·s is Planck's constant and \nu is frequency.
The Photoelectric Effect
When light hits a metal surface, electrons are ejected. Classical wave theory predicted that brighter light should always eject faster electrons. Instead, the kinetic energy of ejected electrons depends only on light frequency, not intensity. Einstein explained this in 1905 using Planck's quantum idea — the same year he published special relativity.
where \phi is the work function (minimum energy to free an electron).
Practice Exercises
Exercises: The Classical Crisis
1. Earth orbits the Sun at 30 km/s. Express this as a fraction of c. What fringe shift would the Michelson-Morley experiment predict with 11-meter arms and 550 nm light?
2. Using relativistic velocity addition, calculate the combined speed when two rockets each traveling at 0.8c fly toward each other. What does Galilean addition predict?
3. A rod is 1 meter long at rest. Using the Lorentz-FitzGerald contraction formula, how long would it appear if moving at 0.9c?
4. Why does the Michelson-Morley experiment disprove the aether, but not the claim "aether is dragged along by Earth"? What other observation rules out aether dragging?
5. Einstein said his thought experiment of "riding alongside a light beam" was key. If you could travel at c, what would a light wave look like according to classical physics? Why is this problematic?
Conclusion & Next Steps
By 1905, the foundations of classical physics had crumbled:
- The Michelson-Morley experiment showed no aether wind — the speed of light is invariant
- Galilean velocity addition fails at high speeds — you can't simply add velocities near c
- Maxwell's equations demanded a constant speed of light, incompatible with Newtonian mechanics
- The Lorentz-FitzGerald contraction was a mathematical band-aid, not a true explanation
The stage was set for a revolution. What was needed was not another patch, but a complete reimagining of space, time, and motion. That reimagining came from Albert Einstein's two deceptively simple postulates — and their extraordinary consequences.
Next in the Series
In Part 3: Special Relativity, we'll explore Einstein's two postulates, derive time dilation and length contraction from first principles, discover the Lorentz transformations, and arrive at the most famous equation in physics: E = mc^2.