Case Study 1 — Finding the Terminal Velocity of a Falling Object
Field: Physics and engineering (numerical root-finding) Calculus used: Continuity of combinations (Section 4.5), the Intermediate Value Theorem (Section 4.6), the bisection method (Section 4.7)
The Problem an Engineer Actually Has
A skydiver of mass $m = 80\ \text{kg}$ jumps from a plane. As she falls, two forces act on her: gravity pulling down with force $mg$, and air resistance pushing up. For a body moving fast through air, drag is well modeled as quadratic in speed:
$$F_\text{drag}(v) = \tfrac{1}{2}\,\rho\, C_d\, A\, v^2,$$
where $\rho \approx 1.225\ \text{kg/m}^3$ is air density, $C_d \approx 1.0$ is the drag coefficient of a spread-eagle human body, and $A \approx 0.7\ \text{m}^2$ is her frontal area. Collect the constants into one number $k = \tfrac{1}{2}\rho C_d A \approx 0.429\ \text{kg/m}$.
At first she accelerates, because gravity wins. But drag grows with speed, and at some special speed the two forces balance exactly. From that instant on she falls at a constant rate — her terminal velocity $v_T$. The engineer's question is concrete: what number is $v_T$? It is the speed at which net force is zero:
$$f(v) = mg - k\,v^2 = 0.$$
We want the root of $f$. This one we can actually solve in closed form ($v_T = \sqrt{mg/k}$), and that is exactly why it makes a good teaching example: we can find the root three different ways and check that they agree. In a real design problem — a non-quadratic drag law, an altitude-dependent $\rho$, a parachute whose area changes with speed — no closed form exists, and the only tool left standing is the one this chapter built: bisection, justified by the Intermediate Value Theorem. Let us watch the chapter's machinery do honest work.
Step 1 — Is $f$ Continuous? (Section 4.5)
Before we may invoke any theorem of this chapter, we must earn the right by checking the hypothesis every theorem here quietly assumes: continuity. We do not check three conditions point by point — we certify by structure, exactly as Section 4.5 promised.
The function
$$f(v) = mg - k v^2 = (80)(9.81) - 0.429\, v^2 = 784.8 - 0.429\, v^2$$
is a polynomial in $v$. Polynomials are on the classical list of continuous functions, continuous on all of $\mathbb{R}$. Done. We have spent one sentence and now hold a license to use IVT and the Extreme Value Theorem on any interval we like. This is the everyday payoff of the combination theorems: continuity is the rule, certified by inspection, and the interesting work is everywhere else.
Step 2 — Does a Terminal Velocity Even Exist? (Section 4.6)
A physicist would say "obviously it exists." A careful one wants a proof that the equation $f(v) = 0$ has a solution, because the whole modeling effort is wasted if there is no balance speed. The Intermediate Value Theorem supplies exactly this kind of existence guarantee — and it asks only for a sign change.
Evaluate $f$ at two speeds that bracket the answer. At rest the diver has not built up any drag, so net force points down (positive, in our sign convention):
$$f(0) = 784.8 - 0 = 784.8 > 0.$$
At a clearly-too-fast speed, say $v = 100\ \text{m/s}$ (about $224$ mph, faster than any real free fall), drag overwhelms gravity:
$$f(100) = 784.8 - 0.429(100)^2 = 784.8 - 4290 = -3505.2 < 0.$$
We now have everything IVT (Section 4.6) demands: $f$ is continuous on the closed interval $[0, 100]$, and $f(0) > 0 > f(100)$, so the value $N = 0$ lies strictly between the endpoint values. Therefore there exists $v_T \in (0, 100)$ with $f(v_T) = 0$. Terminal velocity is not an assumption — it is a theorem, conditional only on continuity and the observed sign change.
A subtlety worth pausing on. IVT guarantees at least one balance speed. Could there be several? Here the physics is monotone — $f(v) = 784.8 - 0.429 v^2$ is strictly decreasing for $v > 0$ — so the root is unique. But that uniqueness is an extra fact about this particular $f$; IVT alone never promises it. This is the warning from Section 4.6 made concrete: a sign change forces a root, never exactly one.
Step 3 — Pin It Down with Bisection (Section 4.7)
Existence in hand, we want the actual number. Bisection turns the IVT proof into an algorithm: repeatedly halve the bracket, always keeping the half across which the sign still flips. Let us run it by hand for a few steps on $[0, 100]$, where we know the sign change lives.
| step | interval $[a,b]$ | midpoint $m$ | $f(m) = 784.8 - 0.429m^2$ | sign | keep half |
|---|---|---|---|---|---|
| 1 | $[0,\ 100]$ | $50$ | $784.8 - 1072.5 = -287.7$ | $-$ | root in $[0,\,50]$ |
| 2 | $[0,\ 50]$ | $25$ | $784.8 - 268.1 = +516.7$ | $+$ | root in $[25,\,50]$ |
| 3 | $[25,\ 50]$ | $37.5$ | $784.8 - 603.3 = +181.5$ | $+$ | root in $[37.5,\,50]$ |
| 4 | $[37.5,\ 50]$ | $43.75$ | $784.8 - 821.1 = -36.3$ | $-$ | root in $[37.5,\,43.75]$ |
| 5 | $[37.5,\ 43.75]$ | $40.625$ | $784.8 - 708.0 = +76.8$ | $+$ | root in $[40.625,\,43.75]$ |
After five evaluations the root is trapped in $[40.625, 43.75]$, a window of width $3.125$. Each row asks only one question — does the midpoint share the sign of the left endpoint? — and discards the half where the sign no longer flips. We never differentiated anything, never solved a quadratic, never used a formula for the root. We used only evaluations of $f$ and the logic of IVT.
How long until eight correct digits? Each step cuts the window in half, so after $n$ steps the width is $100/2^n$. To reach a tolerance $\tau = 10^{-8}$ we need $100/2^n < 10^{-8}$, i.e. $n > \log_2(10^{10}) \approx 33.2$, so about 34 iterations. Slow but utterly reliable — the trade-off Section 4.7 named.
from typing import Callable
def bisection(f: Callable[[float], float], a: float, b: float,
tol: float = 1e-8, max_iter: int = 100) -> float:
"""Root of a continuous f on [a, b], requiring a sign change f(a)*f(b) < 0."""
fa, fb = f(a), f(b)
if fa * fb > 0:
raise ValueError("f(a) and f(b) must have opposite signs")
for _ in range(max_iter):
m = (a + b) / 2
fm = f(m)
if abs(fm) < tol or (b - a) / 2 < tol:
return m
if fa * fm < 0: # sign change is in [a, m]
b, fb = m, fm
else: # sign change is in [m, b]
a, fa = m, fm
return (a + b) / 2
m, g, k = 80.0, 9.81, 0.429
v_T = bisection(lambda v: m*g - k*v**2, 0, 100)
print(f"Terminal velocity (bisection): {v_T:.6f} m/s") # 42.771142 m/s
# Cross-check against the closed-form root, available only because drag is quadratic:
import math
print(f"Closed form sqrt(mg/k): {math.sqrt(m*g/k):.6f} m/s") # 42.771142 m/s
Both methods return $v_T \approx 42.77\ \text{m/s}$, about $96$ mph — squarely in the measured range for a belly-to-earth skydiver. The numerical root and the algebraic root agree to all printed digits, which is the point: bisection earned the same answer the formula gives, using only a tool that survives when the formula does not.
Step 4 — Where Continuity Would Break (and the Method With It)
The whole edifice rests on $f$ being continuous. Suppose the diver deploys a parachute that snaps open at a threshold speed, instantly multiplying the effective area $A$ by a factor of forty. Now the drag term, and hence $f$, has a jump discontinuity at that speed (Section 4.3): the net-force function leaps downward the instant the canopy fills. If a root were hiding exactly at that jump, IVT could no longer guarantee it — the function can leap over zero without ever equaling it, precisely the failure Section 4.6 illustrated with $1/x$. An honest simulation must therefore model the two regimes separately, find the (continuous) balance speed within each, and treat the deployment instant as a seam, not a point to bisect across. Continuity is not a technicality here; it is the line between a trustworthy simulation and a silently wrong one.
Connections to the Chapter
- Continuity of combinations (Section 4.5): certified $f$ continuous by structure, in one sentence.
- Intermediate Value Theorem (Section 4.6): proved terminal velocity exists from a sign change alone.
- Bisection method (Section 4.7): computed it to machine precision using only evaluations of $f$.
- Discontinuity types (Section 4.3): the parachute snap shows where the guarantees lapse.
- Forward to Newton's method (Chapter 11): a faster root-finder that needs a derivative; bisection is the reliable fallback when derivatives are unavailable or convergence is in doubt.
Discussion Questions
-
IVT proved that $v_T$ exists; the monotonicity of $f$ proved it is unique. Restate exactly which fact does which job, and give a different $f$ (say, a non-monotone drag law) where IVT still guarantees a root but uniqueness fails.
-
We needed a starting bracket $[0, 100]$ with a sign change. How would you find such a bracket automatically for a drag law you cannot solve by hand? (Hint: evaluate $f$ at $0$ and keep doubling the upper end until the sign flips.)
-
Newton's method (Chapter 11) typically reaches eight digits in four or five steps, versus bisection's ~34. Why might an engineer deliberately choose the slower method anyway? Name one situation where Newton's method diverges but bisection cannot.
-
Suppose air density $\rho$ falls with altitude, so $k = k(h)$ changes as the diver descends. Is the instantaneous balance condition still a continuous root problem at each height? What new continuity question does the altitude dependence raise?
-
The parachute deployment introduced a jump discontinuity. Real canopies inflate over a fraction of a second. Argue that the "true" $f$ is continuous but steep, and discuss how a steep-but-continuous transition behaves under bisection versus a genuine jump.
Your Turn — Mini-Project
Replace the quadratic drag with a more realistic mixed law $F_\text{drag}(v) = b\,v + k\,v^2$ (linear at low speed, quadratic at high speed), with $b = 6\ \text{kg/s}$ and $k = 0.429\ \text{kg/m}$. The balance equation $mg - bv - kv^2 = 0$ is still a polynomial, hence continuous (Section 4.5). Use your bisection function to find $v_T$, verify the sign change on $[0, 100]$ by hand first, and compare the answer to the pure-quadratic case. Then plot the bracket width against the iteration count on a log scale and confirm the linear convergence of Section 4.7.
Further Reading
- Burden, R. L., and Faires, J. D. (2011). Numerical Analysis (9th ed.). Brooks/Cole. Chapter 2 is the standard treatment of bisection and its error guarantees, with the $\log_2$ iteration bound derived in full.
- Halliday, D., Resnick, R., and Walker, J. (2013). Fundamentals of Physics (10th ed.). Wiley. The chapter on drag and terminal velocity gives the quadratic-drag model and realistic skydiver numbers used above.
- Press, W. H., et al. (2007). Numerical Recipes (3rd ed.). Cambridge University Press. The root-finding chapter contrasts bisection, Newton, and bracketing strategies, and explains why robust solvers always keep a bracket in reserve.
Terminal velocity looks like a physics fact, but underneath it is a continuity fact: a continuous net-force function changing sign forces a balance speed to exist, and bisection — IVT made executable — finds it without ever needing a formula. That is the pattern you will reuse every time a model is too complicated to solve by hand.