27. Monotone, bounded, and the monotone convergence theorem

📖 Reading · 10 min
💡 Every code box below is live — edit it and hit Run.

§7.0's limit laws and L'Hopital's rule need a formula for a_n to work with — but many important sequences are defined recursively, each term built from the last, with no closed-form formula in sight. This lesson gives a way to prove such a sequence converges — and even find its limit — without ever writing down a_n explicitly.

Monotone sequences

A sequence is monotone increasing if a_{n+1}\ge a_n for every n (each term at least as large as the one before), and monotone decreasing if a_{n+1}\le a_n. Either kind is called simply monotone.

Bounded sequences

A sequence is bounded above if some number M satisfies a_n\le M for every n, and bounded below similarly. Bounded means both at once — the whole sequence sits inside some finite range.

The Monotone Convergence Theorem

If a sequence is monotone and bounded, it converges.

Why this is true (informally): take an increasing sequence bounded above by M. The terms keep climbing but can never exceed M — so they must be crowding toward some ceiling, a least upper bound, and the sequence's limit is exactly that ceiling. This relies on the real numbers having no "gaps" (the completeness property) — it's the same structural fact behind the Extreme Value Theorem in §1.8, guaranteeing a supremum exists at all.

What makes this theorem valuable is that it proves convergence without computing the limit — monotonicity and boundedness are often far easier to check than finding L directly, which matters enormously for recursively defined sequences that have no closed form at all.

Proving monotonicity and boundedness

For a_{n+1}=g(a_n) (each term built from the last by some fixed rule), two common techniques:

  • Induction for boundedness: show a_1 satisfies the bound, then show that if a_n satisfies it, a_{n+1}=g(a_n) does too.
  • Direct comparison for monotonicity: show a_{n+1}-a_n has a constant sign, or that a_{n+1}\ge a_n\iff g(a_n)\ge a_n and check that condition.

Finding the limit once convergence is known

If a_n\to L, then also a_{n+1}\to L (a sequence and its "shift by one" have the same limit — dropping or adding one term never changes what a tail settles toward). So for a_{n+1}=g(a_n), taking the limit of both sides:

L=g(L)

This step is only valid after convergence is established — solving L=g(L) for a sequence that actually diverges produces a meaningless number. The Monotone Convergence Theorem is what earns the right to take this limit in the first place.

Doing it in Python

The recursive sequence a_1=\sqrt2, a_{n+1}=\sqrt{2+a_n} — computed numerically to watch it climb toward a ceiling:

import math

a = math.sqrt(2)
print(f"{'n':>3} {'a_n':>10}")
print(f"{1:>3} {a:>10.6f}")
for n in range(2, 10):
    a = math.sqrt(2 + a)
    print(f"{n:>3} {a:>10.6f}")

Solving L=\sqrt{2+L} symbolically for the limit, and confirming it matches where the numerical iteration is heading:

import sympy as sp

L = sp.Symbol('L', positive=True)
solutions = sp.solve(sp.Eq(L, sp.sqrt(2 + L)), L)
print(f"L = sqrt(2+L)  =>  L = {solutions}")

Confirming boundedness by induction, checking the bound holds for many terms in a row (not a proof, but a strong numerical check of the inductive claim "if a_n<2 then a_{n+1}<2"):

import math

a = math.sqrt(2)
all_below_2 = True
for _ in range(30):
    if a >= 2:
        all_below_2 = False
    a = math.sqrt(2 + a)

print(f"every term stayed below 2 across 30 iterations: {all_below_2}")
print(f"final value after 30 steps: {a:.10f}")

Worked example

Show that a_1=\sqrt2, a_{n+1}=\sqrt{2+a_n} converges, and find its limit.

Bounded above by 2 (induction). Base case: a_1=\sqrt2\approx1.414<2. Inductive step: assume a_n<2. Then a_{n+1}=\sqrt{2+a_n}<\sqrt{2+2}=\sqrt4=2. So a_n<2 for every n.

Monotone increasing. Since 0<a_n<2, compare a_{n+1} to a_n by checking whether a_n<\sqrt{2+a_n}, i.e. (squaring both sides, valid since both are positive) whether a_n^2<2+a_n, i.e. a_n^2-a_n-2<0, i.e. (a_n-2)(a_n+1)<0. Since a_n<2 (just shown) and a_n>0>-1, this product is indeed negative — so a_{n+1}>a_n for every n.

Convergence. Monotone increasing and bounded above by 2 — the Monotone Convergence Theorem guarantees a limit L exists.

Finding L. Take the limit of both sides of a_{n+1}=\sqrt{2+a_n}:

L=\sqrt{2+L}\ \Longrightarrow\ L^2=2+L\ \Longrightarrow\ L^2-L-2=0\ \Longrightarrow\ (L-2)(L+1)=0

L=-1 is impossible (every term is positive, so the limit can't be negative), leaving \boxed{L=2}.

Sanity check. The numerical iteration above climbs 1.414,1.848,1.962,1.990,1.998,\ldots — visibly approaching 2 from below, exactly matching both the "bounded above by 2" proof and the solved limit. ✓

Your turn

1. Show that a_n=\dfrac{n}{n+1} is monotone increasing and bounded above by 1 (so it converges by the theorem — you already know its limit is 1 from §7.0-style reasoning; here, prove convergence without that formula-based argument).

2. The sequence a_1=1, a_{n+1}=\dfrac12\left(a_n+\dfrac2{a_n}\right) is (this is Newton's method from §3.2, applied to x^2-2=0!) known to be bounded below by \sqrt2 and monotone decreasing for n\ge2. Assuming convergence, find its limit by solving L=g(L).

3. True or false: every bounded sequence converges, whether or not it's monotone.

Solutions

1. Increasing: $a_{n+1}-a_n=\dfrac{n+1}{n+2}-\dfrac n{n+1} =\dfrac{(n+1)^2-n(n+2)}{(n+1)(n+2)}=\dfrac{n^2+2n+1-n^2-2n}{(n+1)(n+2)} =\dfrac1{(n+1)(n+2)}>0$ — always positive, so a_{n+1}>a_n. Bounded above: \dfrac n{n+1}<1 for every n, since the numerator is always less than the denominator. By the Monotone Convergence Theorem, the sequence converges.

2. $L=\dfrac12\left(L+\dfrac2L\right)\Rightarrow2L=L+\dfrac2L\Rightarrow L=\dfrac2L\Rightarrow L^2=2\Rightarrow L=\sqrt2$ (positive, since every term starting from a_1=1 stays positive). \boxed{L=\sqrt2} — Newton's method converging to exactly the root it was hunting for, seen here through the Monotone Convergence Theorem instead of §3.2's tangent-line picture.

3. False. a_n=(-1)^n is bounded (between -1 and 1) but not monotone, and it diverges by oscillation (§7.0). Boundedness alone is not enough — monotonicity is doing essential work in the theorem, not just convenient extra structure.

Check yourself in code

Starting from a_1=\sqrt2 with a_{n+1}=\sqrt{2+a_n}, compute and print a_1 through a_9, rounded to 6 decimals.

Print exactly this:

  1   1.414214
  2   1.847759
  3   1.961571
  4   1.990369
  5   1.997591
  6   1.999398
  7   1.999849
  8   1.999962
  9   1.999991
import math

a = math.sqrt(2)
print(f"{1:>3} {a:>10.6f}")
for n in range(2, 10):
    a = math.sqrt(2 + a)
    # print n and a, right-aligned, a to 6 decimals
import math

a = math.sqrt(2)
print(f"{1:>3} {a:>10.6f}")
for n in range(2, 10):
    a = math.sqrt(2 + a)
    print(f"{n:>3} {a:>10.6f}")

The Monotone Convergence Theorem trades a hard problem (finding a limit) for two easier ones (proving the sequence only ever moves one direction, and proving it can't pass a fixed ceiling or floor) — invaluable for recursively defined sequences with no closed form. Once convergence is secured, the limit itself falls out of a single algebraic step: take the limit of both sides of the recursion, L=g(L), and solve — a step that's only legitimate because the theorem already guaranteed L exists.

Next: turning sequences into sums — where "does the sequence of partial sums converge" becomes the central question for the rest of this module.