Lemma
math, backwards
the hook · two forces, one fixed point

Why doesn’t a falling raindrop keep speeding up?

Gravity pulls down with the same force the entire fall — about g=9.8m/s2g = 9.8 m/s² per kilogram, second after second. Free-fall in vacuum keeps accelerating; that’s the no-drag picture from projectile motion. But in air, raindrops settle at maybe 9 m/s, parachutists at maybe 5 m/s, and dust motes barely move at all. None of them are violating Newton; they’ve just hit a where two forces cancel exactly. The math is one line — and it’s the same shape you’d see for a heating cup of coffee or a charging capacitor.

Terminal velocity isn’t a maximum — it’s an equilibrium. The asymptote where gravity and drag cancel.

Widget — Terminal velocity
v_t (terminal)6.13 m/s
v(t) at cursor5.88 m/s
dv/dt at cursor0.40 m/s²
fraction of v_t96%
10203040036912time t (s)velocity v (m/s)v_t = 6.1no-drag (v = g·t)gkv
g = 9.8 m/s²
The blue curve is v(t) = v_t (1 − e^(−kt)) — velocity from rest under gravity and linear drag. The dashed green line is the terminal velocity v_t = g/k; the curve approaches it but never crosses. The dotted gray line is the no-drag reference v = g·t; without drag, velocity grows linearly forever. The two arrows show the force balance at the cursor: gravity (orange, fixed) and drag (green, growing with v). At v = v_t the arrows match in length — no net force, no acceleration, no further change in speed. Try the presets: a feather (large k) reaches a tiny v_t in a fraction of a second; a free-falling skydiver before the chute opens (small k) takes several seconds to settle near 25 m/s.
the arc
1

Velocity is a derivative; acceleration is another

A falling object has a position y(t)y(t). From the derivatives module, is the rate at which position changes: v=dy/dtv = dy/dt. Apply the same machine again and you get a=dv/dta = dv/dt — the rate at which velocity changes. Newton’s second law packages this: net force per unit mass equals dv/dtdv/dt. Once you can write down the forces and divide by mass, you have a recipe for predicting motion. The whole drama of this page sits in two terms on the right-hand side.

2

Two forces — gravity is constant, drag isn't

A falling raindrop has two forces acting on it. Gravity pulls down with constant magnitude Fg=mgF_g = m·g; per unit mass that’s just g9.8m/s2g ≈ 9.8 m/s², regardless of how fast it’s moving. pushes up against the motion, and unlike gravity it grows with speed. For small objects in air, a clean approximation is linear drag: Fdrag=kvF_drag = k·v per unit mass. Slow raindrop → small drag. Fast raindrop → big drag. The two forces are pointing opposite — exactly the simple-1D add-and-subtract case from the vectors module.

The net force per unit mass — what goes into dv/dtdv/dt — is the difference:

dv/dt=gkvdv/dt = g − k v

Two terms. The first is constant. The second isn’t. That’s the whole equation.

3

What dv/dt = g − kv actually says

Read it left-to-right: at any instant, the rate at which velocity is changing equals gravity minus drag. The interesting thing is that drag depends on v itself: it’s part of the right-hand side of the equation that determines how v evolves. That’s what makes this a differential equation — the unknown function and its derivative both appear.

Three regimes, all readable from the formula alone:

  • vv small (just dropped from rest): kvkv is small, so dv/dtgdv/dt ≈ g — full acceleration, just like vacuum free-fall.
  • vv moderate: kvkv is significant. dv/dt=gkvdv/dt = g − kv is positive but smaller. Velocity still grows, but more slowly.
  • v=g/kv = g/k exactly: kv=gkv = g. dv/dt=0dv/dt = 0. Velocity stops changing. This is .
  • v > g/k (e.g., thrown downward fast): kv > g. dv/dt < 0. Velocity decreases — drag wins, the object slows down. Until it hits vtv_t from above.

The widget’s blue curve is approaching the dashed green line from below; in either direction, vtv_t is the destination.

import math

# Per-unit-mass equation of motion: dv/dt = g - k*v.
# Two competing forces, both per unit mass:
#   gravity  →  +g  (constant, pulls v upward in magnitude)
#   drag     →  -k*v  (proportional to current speed, opposes motion)
g = 9.8

def dvdt(v, k):
    return g - k * v

# At v = 0, drag is zero; gravity is unopposed; full acceleration.
# As v grows, drag grows proportionally; net force shrinks; acceleration
# shrinks. The shrink is the whole point — the system has a built-in
# governor.
[(v, round(dvdt(v, k=0.5), 2)) for v in (0, 5, 10, 15, 19.6, 25)]
# → [(0,    9.8),    free fall — nothing opposing
#    (5,    7.3),    drag has eaten 2.5 of g
#    (10,   4.8),
#    (15,   2.3),
#    (19.6, 0.0),    EQUILIBRIUM — v_t exactly
#    (25,  -2.7)]    above v_t: drag wins, deceleration
4

Terminal velocity = solving dv/dt = 0

The “destination” is just whatever value of vv makes dv/dt=0dv/dt = 0. Set it and solve:

gkvt=0vt=g/kg − k v_t = 0 → v_t = g / k

One line of algebra. Larger drag (bigger kk) gives smaller terminal velocity — a feather settles fast and slow; a bowling ball would take forever to reach vtv_t in air (and in practice would hit the ground first). This is a : the speed at which two competing influences exactly cancel. Gravity wants to add to vv; drag wants to subtract from it; at vtv_t they tie. Forces don’t disappear — they balance. That distinction is the page’s most common misunderstanding.

The formula vt=g/kv_t = g/k isn’t a deep theorem; it’s a fixed-point reading. The same shape appears every time a quantity has competing influences that depend on the quantity itself: heating coffee in a cool room reaches the room temperature; a capacitor charging through a resistor reaches the supply voltage; a population with births and deaths proportional to size reaches a carrying capacity. Different physics, same fixed-point hunt.

# Solve dv/dt = 0 for terminal velocity. One line of algebra.
#   g - k*v_t = 0  →  v_t = g/k.
def terminal_velocity(k, g=9.8):
    return g / k

# Linear-drag terminal velocities for a few familiar k values.
[(name, k, round(terminal_velocity(k), 1))
 for name, k in (("feather", 6.0), ("raindrop", 1.6),
                 ("skydiver", 0.4), ("bowling ball", 0.05))]
# → [('feather',      6.0,  1.6),     reaches ~1.6 m/s in well under a second
#    ('raindrop',     1.6,  6.1),
#    ('skydiver',     0.4, 24.5),     classic ~50 mph free-fall figure
#    ('bowling ball', 0.05, 196.0)]   approaches very slowly, in practice
#                                      it'd hit the ground long before
# Real raindrops sit closer to 9 m/s because actual drag is closer to
# v² than v; the linear case is a teaching simplification.
5

The approach is asymptotic — and exponential

The closed-form solution from rest is

v(t)=vt(1e(kt))v(t) = v_t · (1 − e^(−k t))

The error from terminal — the gap vtv(t)v_t − v(t) — is vte(kt)v_t · e^(−k t): it shrinks exponentially. After t=ln2/k0.693/kt = \ln 2 / k ≈ 0.693/k seconds, the error has halved. After 5/k5/k seconds, the error is below 1% of vtv_t. The widget makes this readable: drag slider up (large kk) pulls the curve hard to the asymptote in a fraction of a second; drag slider down (small kk) lets it crawl up over many seconds.

Why exponential? Take the derivative of the error ε(t)=vtv(t)ε(t) = v_t − v(t): dε/dt=dv/dt=(gkv)=kεdε/dt = −dv/dt = −(g − kv) = −k ε. The error’s rate of change is proportional to the error itself, with a negative sign. That’s the defining shape of exponential decay. Anything whose rate of change is proportional to itself ends up being an exponential — the logarithm module names this from the other direction. Linear-drag falling, capacitor charging, radioactive decay, Newton’s cooling: same equation, same answer.

# Closed-form solution from rest, by separation of variables.
#   v(t) = v_t * (1 - exp(-k*t))
# At t = 0, v = 0 (rest). As t → ∞, v → v_t. Half of v_t is reached at
# t = ln(2)/k ≈ 0.693/k. After 5 'time-constants' (5/k seconds), v is
# within 1% of v_t.
def v_of_t(t, k, g=9.8):
    return (g / k) * (1 - math.exp(-k * t))

[(t, round(v_of_t(t, k=0.4), 2)) for t in (0, 1, 3, 5, 10, 20)]
# → [(0,   0.0),
#    (1,   8.1),     a third of v_t
#    (3,  17.1),     two-thirds
#    (5,  21.2),     ~87% of v_t = 24.5
#    (10, 24.0),     ~98%
#    (20, 24.5)]     within 0.001
# Same shape as a charging capacitor, a heating cup of coffee, a leaky
# bucket — every first-order linear ODE with a stable fixed point traces
# this curve. The terminal value is the fixed point; k is the rate at
# which deviation from the fixed point decays.

Terminal velocity tells you how fast the object eventually falls. The next obvious question is how far has it fallen by time t? — and that’s an integration question. Once v(t)v(t) is known, distance is accumulated velocity: y(t)=0tv(s)dsy(t) = ∫_0^t v(s) ds. The area under the velocity curve, from 0 to tt, is the distance fallen by then. Plug in v(s)=vt(1e(ks))v(s) = v_t · (1 − e^(−k s)) and the integral is closed-form: y(t)=vtt(vt/k)(1e(kt))y(t) = v_t · t − (v_t/k)(1 − e^(−kt)). Two regimes are readable from this: for small tt, the curve sits below the line vttv_t · t (you haven’t been falling at terminal speed for the whole interval); for large tt, the gap stops growing and y(t)y(t) is essentially vttvt/kv_t · t − v_t/k — terminal speed times time, minus a constant offset that records “the time you spent accelerating up to terminal.”

now break it

Real raindrops obey quadratic drag, not linear. Fdrag=12ρCdAv2F_drag = \tfrac{1}{2} ρ C_d A v²: the force grows with the square of speed, not its first power. The terminal-velocity logic still works — set dv/dt=0dv/dt = 0, solve g=kvt2g = k v_t², vt=g/kv_t = \sqrt{g/k} — but the approach is no longer a clean exponential and the numbers are different. Linear drag’s vt=g/kv_t = g/k is a teaching simplification for low Reynolds number (small or slow). The shape of the answer (asymptote at force balance) doesn’t depend on which drag law; the closed form does.

Terminal velocity isn’t a maximum — it’s an equilibrium. Gravity is a constant force; drag is a force that grows with speed. Where they balance, dv/dt=0dv/dt = 0, and velocity stops changing. The equation dv/dt=gkvdv/dt = g − kv turns “why does falling level off” into “where’s the fixed point of gkv=0g − kv = 0?” — and the answer is one line of algebra.

exercises · 손으로 풀기
1read the widget · terminal velocity by inspection

In the widget, set the raindrop preset (k=1.6k = 1.6). Read off the terminal velocity from the dashed asymptote without computing. Now confirm it from the formula vt=g/kv_t = g/k with g=9.8g = 9.8.

2solve dv/dt = 0 by handno calculator

Take g=10m/s2g = 10 m/s² and k=0.5/sk = 0.5 / s. What is the terminal velocity? Now double kk to 1.01.0. What happens to vtv_t? Now halve it to 0.250.25?

3sign of dv/dt above and below v_t

For g=9.8g = 9.8, k=0.4k = 0.4: terminal velocity is vt=24.5m/sv_t = 24.5 m/s. Compute dv/dtdv/dt at three speeds: v=10m/sv = 10 m/s, v=24.5m/sv = 24.5 m/s, v=40m/sv = 40 m/s. What does the sign tell you in each case?

4the evil one · 'gravity disappeared'

A student watches a raindrop fall at terminal velocity and concludes: “since the drop isn’t accelerating, gravity has stopped acting on it.” Refute in one sentence. What’s the correct picture?

5distance is area under v(t)

Two intervals of equal length, both 1s1 s: one early in the fall (t=0t = 0 to 11) and one late (t=10t = 10 to 1111, by which point v(t)v(t) is essentially vtv_t). Use k=0.4k = 0.4, vt=24.5m/sv_t = 24.5 m/s. Compute the distance fallen during each interval. Why does the late interval cover more ground despite being the same time?

why this isn't taught this way

Introductory physics teaches free-fall (no drag) for tractability, then waves at “real falls involve air resistance, but it’s complicated.” The complication is one extra term in one equation: dv/dt=gkvdv/dt = g − kv. From that single line, terminal velocity is one line of algebra (g=kvtg = kv_t), the approach is one line of integration (v(t)=vt(1e(kt))v(t) = v_t(1−e^(−kt))), and the connection to charging capacitors and cooling coffee is one paragraph. Lemma keeps the equation in front of the reader because that’s where the physics actually lives — not in the table of “common terminal velocities” that fills textbook sidebars. Terminal velocity is not a fact about raindrops; it’s a fact about any first-order system with a stable fixed point.

glossary · used on this page · 7
fixed point·고정점
A value that stays put when fed through a function or rule. For an iteration `x ← f(x)`, a fixed point `x*` satisfies `f(x*) = x*` — apply the rule and nothing changes. For a differential equation `dx/dt = g(x)`, a fixed point is where `g(x*) = 0` and the system stops evolving. _Equilibrium_ in physics, _minimum_ in optimization, and _steady state_ in numerical methods all name the same object: the place where the next step lands you back on yourself. Two flavours matter — _stable_ (small disturbances die out, system returns) and _unstable_ (small disturbances grow, system escapes); the difference is the sign of the local derivative `g'(x*)`.
velocity·속도
The rate of change of position. A vector — both a magnitude (speed) and a direction. In one dimension, `v = dx/dt`; in two, the velocity vector has components `(dx/dt, dy/dt)`. Velocity that does not change in time is called _uniform_; the position then increases linearly. Velocity that changes corresponds to nonzero acceleration. The distinction between speed (a number) and velocity (a vector) is the difference between "fast" and "fast in which direction."
acceleration·가속도
The rate of change of velocity. Also a vector. In one dimension, `a = dv/dt = d²x/dt²`; constant acceleration produces velocity that is linear in time and position that is quadratic. Newton's second law `F = ma` says force and acceleration are proportional, with mass as the conversion factor. On Earth's surface, near the ground, the acceleration of any object in free fall is approximately constant — a single number that does not depend on the object's mass.
drag·공기 저항
The force a fluid (air, water) exerts on an object moving through it, _opposing motion_. Two regimes matter for everyday physics: at low speed (or for small objects) drag is roughly proportional to velocity — `F_drag = k v`, called _linear_ or _Stokes_ drag. At high speed (or for large objects) it's roughly proportional to velocity squared — `F_drag = ½ ρ C_d A v²`, called _quadratic_ or _form_ drag. The proportionality constant absorbs cross-section, fluid density, and shape. Lemma's terminal-velocity page uses the linear case for clean closed-form math; raindrops and parachutists in real life sit in the quadratic regime, but the _shape_ of the answer (an asymptotic approach to a force-balance speed) is the same.
vector·벡터
A quantity that has both magnitude and direction. Concretely a tuple of numbers — `(3, 4)` in 2D, `(1, 0, −2)` in 3D — but the _meaning_ of those numbers depends on what you're doing. In graphics they describe a control-point offset; in physics, a velocity or force; in ML, a parameter update or a feature representation. The tuple is the same; the _role_ changes. The arithmetic — addition component-wise, scaling by a number — is the same in every role, which is why one set of math serves all of them.
terminal velocity·종단속도
The constant speed a falling object approaches when air drag has grown to exactly balance gravity. Not the _maximum_ speed in any imposed sense — the speed at which the net force is zero, so acceleration is zero, so velocity stops changing. For linear drag `F_drag = k v` with mass `m`, terminal velocity is `v_t = mg / k` (or `g/k` in the per-unit-mass form `dv/dt = g − kv`). It's an _asymptote_, not a _cap_: from below, the object asymptotically approaches `v_t`; from above (e.g. a thrown-down rock), it asymptotically _decelerates_ toward the same value. Raindrops, parachutists, and dust motes all live their entire fall in this asymptotic regime.
equilibrium·평형
A state where opposing influences cancel exactly, so the system stops changing. _Mechanical_ equilibrium: net force is zero, so acceleration is zero (Newton's first law). _Chemical_ equilibrium: forward and reverse reaction rates match, so concentrations are stable. _Economic_ equilibrium: supply and demand price match, so the market price stops drifting. The shared shape across all of them: a quantity has two competing influences that depend on the quantity itself, and the _fixed point_ where they balance is the equilibrium. Terminal velocity is the equilibrium of `dv/dt = g − kv` — the velocity at which "gravity adds to v" and "drag removes from v" cancel.