Goal:Measure the period of a simple pendulum, determine the gravitational acceleration g, and — more importantly — compute your own measurement uncertainty.
First, a piece of history
MIT's Professor Walter Lewin, in a legendary lecture, hung himself from a 5-meter pendulum to show the period is independent of mass. The formula you'll see — T = 2π√(L/g) — has no mass term, and his demonstration proves exactly that.
Walter Lewin — Hanging from the Pendulum (MIT 8.01)
From MIT's classic 8.01 course — Prof. Lewin times the empty pendulum first, then hangs himself on it: the period doesn't change.
For small angles (less than ~15°), the period of a simple pendulum of length L is:
T = 2π √(L/g)
By measuring T and L, we compute g:
g = 4π² L / T²
Errors:Every measurement carries two kinds of error:
Systematic:Comes from the instrument (e.g., a ruler with a shifted zero, or a stopwatch running slightly fast). Same across every measurement.
Random:Comes from reading precision and reaction time. Reduces when you repeat and average.
Error propagation:for g = 4π²L/T²:
δg/g = δL/L + 2·δT/T
1. Set up the experiment
Ready
Controls
Ruler reading:80.0 cm
00.000
Counted oscillations:0
Method:Click "Start" as the bob crosses the lowest point, count 10 full oscillations, then click "Stop".
2. Measurement data
#
L (cm)
N
t total (s)
T = t/N (s)
Action
No trials yet. Record at least 5.
3. Automatic calculation
Record at least 3 successful trials to compute.
Trials (n):0
Mean period (T̄):0
Std deviation (σ_T):0
Standard error of mean (δT = σ_T/√n):0
Measured length (L):0
Ruler precision (δL):±0.5 mm
g = 4π²L / T̄² = ? m/s²
δg/g = δL/L + 2·δT/T̄ → δg = ? m/s²
Your final result:
g = ? ± ? m/s²
4. Analysis with Python
The calculation above is a rough sketch. Serious physics analysis uses Python + numpy + matplotlib. Pyodide (CPython compiled to WebAssembly) runs here — the very same Python used in a real lab, directly in your browser.
Your measurement datais available in the trials_data variable — a list of dicts with keys L_cm, N, t, T. Edit the code and hit "Run". Full numpy/scipy/matplotlib available.
Pyodide not loaded — the first "Run" downloads it (~6 MB, once)
Python execution output appears here
5. Reveal the true value
Once your calculation (auto or Python) is complete, click this button to see the true g at this location and what errors were injected into the instruments.