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

  1. 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.

  2. 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.)

  3. 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.

  4. 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?

  5. 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.