Analysis

Settling in order settles everywhere at once

A sequence of functions can settle at every point and never settle uniformly — the largest gap stays put while each point escapes it. Dini found the circumstances in which that cannot happen: continuous functions, a continuous limit, every member above the next, and a closed interval. Under those four conditions convergence at each point is convergence everywhere at once, and Weierstrass's iteration for the square root becomes a sequence of polynomials converging uniformly to |x|.

Worth reading first: A limit that forgets to be continuous · Uniform, except on a small set.

A limit that forgets to be continuous separated two kinds of settling. A sequence of functions converges pointwise when, at each point separately, the values settle on a limit. It converges uniformly when the largest gap anywhere, a single number about the whole graph, falls to nought. The powers x,x2,x3,…x, x^2, x^3, \dots on [0,1][0, 1] were the standing example of the first without the second: every point settles, and the gap next to x=1x = 1 never closes. Uniform, except on a small set showed that the failure can always be confined to a strip of small length.

This essay asks the opposite question. When is pointwise convergence already uniform, with no strip removed and no extra estimate? The answer, found by Ulisse Dini in 1878, is short and has four parts, and the most useful example of it is a sequence of polynomials that Weierstrass needed to prove that every continuous function is a limit of polynomials.

Polynomials climbing to the square root, each above the last. The iterates of p ↦ p + (x − p²)/2 at steps 1, 2, 3, 4, 6, 9 on [0, 1] beneath the curve √x, with largest gaps 1.000, 0.500, 0.259, 0.176, 0.108, 0.068.
Fig. 1 The iterates of the rule p↦p+(x−p2)/2p \mapsto p + (x - p^2)/2, started from p1=0p_1 = 0 on [0,1][0, 1]. Each is a polynomial, each lies above the one before and below x\sqrt x, and they climb towards it. The legend gives the largest gap after each number of steps.

Four conditions, and what they buy

Dini’s theorem says: let f1,f2,…f_1, f_2, \dots be continuous functions on a closed bounded interval, converging at every point to a function ff that is also continuous. Suppose the convergence is monotone — at every point, f1(x)≥f2(x)≥f3(x)≥⋯f_1(x) \ge f_2(x) \ge f_3(x) \ge \cdots, or the same with every inequality reversed. Then the convergence is uniform.

Each condition has a job, and the essay draws a sequence that breaks each in turn. Before that, it is worth seeing why anyone would need such a theorem when the definition of uniform convergence is right there to be checked. The reason is that checking it means computing the largest gap of each member, a supremum over infinitely many points, and for most sequences that come from a construction nobody can compute it in closed form. Dini’s conditions, by contrast, are local and qualitative: continuity is checked once, and monotonicity is a comparison of two neighbouring members at one point at a time. The theorem turns a hard global estimate into an easy local one, and that is what makes it a tool rather than a curiosity.

A polynomial that climbs to the square root

The opening figure is Weierstrass’s own example. Define polynomials by p1=0p_1 = 0 and

pn+1(x)=pn(x)+12(x−pn(x)2).p_{n+1}(x) = p_n(x) + \tfrac12\big(x - p_n(x)^2\big).

This is a fixed-point iteration whose fixed point is x\sqrt x: if p=xp = \sqrt x the bracket vanishes and nothing moves. At each fixed xx it is an orbit of a map of the line, and the staircase that shows the whole orbit draws exactly this kind of climb towards a crossing. Each step adds a polynomial, so every pnp_n is a polynomial, of degree 1,2,4,8,…1, 2, 4, 8, \dots — doubling at each step, because squaring pnp_n doubles its degree.

Monotonicity is a two-line argument. Write dn=x−pnd_n = \sqrt x - p_n for the gap. Substituting into the rule gives

dn+1=dn(1−12(x+pn)).d_{n+1} = d_n\Big(1 - \tfrac12\big(\sqrt x + p_n\big)\Big).

If 0≤pn≤x≤10 \le p_n \le \sqrt x \le 1, the factor in brackets lies between 00 and 11, so the gap stays non-negative and does not grow: pn+1p_{n+1} is above pnp_n and still below x\sqrt x. Starting from p1=0p_1 = 0 that holds at every step. At each point the iterates climb, bounded above by x\sqrt x, and the gap shrinks by a factor at least 1−12x1 - \tfrac12\sqrt x each time, so for x>0x > 0 the iterates converge to x\sqrt x, and at x=0x = 0 every iterate is 00, which is 0\sqrt 0.

So all four conditions hold: continuous members, a continuous limit, a monotone climb, and the closed interval [0,1][0, 1]. Dini’s theorem says the convergence is uniform, and the figure measures it. The largest gaps after 1, 2, 3, 4, 6 and 9 steps are 11, 0.50.5, 0.2590.259, 0.1760.176, 0.1080.108 and 0.0680.068, and a sharper form of the same argument bounds the gap after nn steps by 2/n2/n at every point. The worst point is worth watching: after three steps it is at x=0.29x = 0.29, after nine at x=0.023x = 0.023. The slowest place to settle moves in towards nought, where x\sqrt x has its infinite slope and every polynomial has to bend hardest to follow it. Pointwise, every point settles; the theorem’s content is that the moving worst point does not escape.

The slow iteration, chosen on purpose

There is a faster way to find square roots, and it is two thousand years older. Heron’s rule replaces a guess pp by 12(p+x/p)\tfrac12(p + x/p), which is Newton’s method for p2=xp^2 = x, and near the answer it doubles the number of correct digits at every step — where Newton’s method goes instead and how fast the staircase arrives explain why: the map’s slope at the fixed point is nought. Weierstrass’s rule, by contrast, has slope 1−x1 - \sqrt x at the fixed point, so the gap shrinks by a fixed factor per step, and near x=0x = 0 that factor is close to 1 and the climb is very slow.

The reason for choosing the slow rule is the only thing it has that Heron’s lacks. Heron’s rule divides by pp, so its iterates are fractions, not polynomials, and the point of the construction is to produce polynomials. Weierstrass’s rule only adds, subtracts, multiplies and halves; started from a polynomial it produces a polynomial. The iteration is chosen for what its outputs are, not for how quickly they arrive, and that is why Dini’s theorem is needed: a rule this slow near 00, with its worst point sliding inwards step by step, is exactly the kind whose uniformity is not obvious from any estimate one would write first.

The comparison also shows what uniform convergence is for. At each separate x>0x > 0 the slow rule converges geometrically, by a factor 1−12x1 - \tfrac12\sqrt x per step or better; but that factor tends to 1 as xx tends to 00, so no single geometric rate holds across the interval. Pointwise, every rate is geometric; uniformly, the rate is only 2/n2/n. The loss of speed is the price of the infimum of the factors being 1 — and it is paid at the one point, x=0x = 0, where the square root is least like a polynomial.

Why monotone and closed together force it

The proof is a picture. Fix a tolerance, say ε=0.1\varepsilon = 0.1, and for each nn shade the set of points where the nn-th iterate is already within ε\varepsilon of x\sqrt x.

Where each iterate is already within 0.1, until one covers everything. Rows for n = 1 to 7, each shading the points of [0, 1] where the n-th square-root iterate is within 0.1 of √x; the last row is shaded throughout.
Fig. 2 For each nn, the shaded part of [0,1][0, 1] is where the nn-th iterate of the square-root rule is already within 0.10.1 of x\sqrt x. Each set contains the one above it, because the gaps only shrink; together they cover the interval; and at n=7n = 7 one of them covers it alone.

Three properties of these sets do all the work. Each is open, because the gap x−pn(x)\sqrt x - p_n(x) is a continuous function — here is where the continuity of the members and of the limit is used, since the gap is their difference. They are nested: because the gaps only shrink, a point within 0.10.1 at step nn stays within 0.10.1 at every later step. And they cover the interval, because every single point eventually settles. Now the closed bounded interval enters: such an interval is compact — the property that the subsequence that has to exist also turned on — which means that whenever it is covered by open sets, finitely many of them already cover it. Finitely many nested sets cover exactly as much as the largest of them. So one set covers everything — in the figure, the one for n=7n = 7 — and from that member on every point of the interval is within 0.10.1 at once.

That is uniform convergence, for this ε\varepsilon, and the argument works for every ε\varepsilon. Each hypothesis appears exactly once: continuity makes the sets open, monotonicity makes them nested, pointwise convergence makes them cover, and compactness turns a cover into a single set. Remove any one and a gap opens in the argument; the next figure shows that the gap is real.

Three sequences that settle and do not settle

Here are three sequences of continuous functions, each converging at every point, none converging uniformly. Each keeps three of Dini’s four conditions.

Three ways to settle at every point and never uniformly. Three panels: a moving spike on [0, 1]; x to the n on [0, 1]; 1/(1 + nx) on (0, 1]; each drawn for n = 2, 4, 8, 16 with its pointwise limit.
Fig. 3 Three sequences drawn for n=2,4,8n = 2, 4, 8 and 1616. A spike that rises and falls: not monotone. xnx^n: monotone on a closed interval, falling to a limit with a jump. 1/(1+nx)1/(1 + nx): monotone, with the continuous limit 00, on an interval missing its end at 00. In every panel the largest gap stays near 1.

Drop monotonicity. The spike fn(x)=max⁡(0,1−∣nx−2∣)f_n(x) = \max(0, 1 - |nx - 2|) is a tent of height 1 standing over [1/n,3/n][1/n, 3/n]. As nn grows the tent slides towards 00 and narrows; any fixed x>0x > 0 is eventually to the right of it and sees 00 forever, and x=0x = 0 never sees it at all. The limit is the continuous function 00, the interval is closed, but at a point near the tent’s path the values go up and then down, and the largest gap is 1 for every member. In the proof’s terms, the shaded sets cover the interval but are not nested — a point that was close at one step is far at the next.

Drop continuity of the limit. The powers xnx^n fall monotonely on [0,1][0, 1] to a limit that is 00 everywhere except at x=1x = 1, where it is 11. The members are continuous and the interval is closed. The gap xn−f(x)x^n - f(x) is not continuous, so the sets where it is small are not open, and the compactness argument has nothing to grip. This is the case a limit that forgets to be continuous was built around, and it shows that Dini’s theorem cannot be used to prove a limit continuous: continuity of the limit is an input, never an output.

Drop compactness. The functions 1/(1+nx)1/(1 + nx) fall monotonely to the continuous limit 00 on (0,1](0, 1], and every hypothesis but one is in place. The missing one is the endpoint: the interval is not closed, and near 00 every member is close to 1. The sets where the gap is under 0.10.1 are the intervals (9/n,1](9/n, 1], nested, open, covering, and no one of them reaches — because the point they would all need to contain is not in the interval.

The three panels are the three ways a large gap can survive: by moving, by sitting on a jump, or by hiding at a missing endpoint.

Polynomials that approach a corner

Why did Weierstrass want polynomials converging to x\sqrt x? Because substituting x2x^2 for xx gives polynomials converging to x2=∣x∣\sqrt{x^2} = |x| on [−1,1][-1, 1], with the same largest gap, and ∣x∣|x| is the first function a polynomial seems unable to imitate: a corner, made out of curves that have none. Once ∣x∣|x| can be approached uniformly, so can max⁡(f,g)=12(f+g+∣f−g∣)\max(f, g) = \tfrac12(f + g + |f - g|) for any two approachable functions, and from maxima and minima of straight lines one can build any piecewise-linear function, and so — since piecewise-linear functions approach every continuous one uniformly on a closed interval — every continuous function. That chain is the core of Marshall Stone’s generalisation of Weierstrass’s theorem — a different road from Bernstein’s averaging proof, which averaging down the triangle draws — and its first link is this iteration and Dini’s guarantee that it converges uniformly.

Two ways to approach |x| by polynomials, error against degree. Largest error against degree, on logarithmic scales: the iteration 4: 0.2590, 8: 0.1761, 16: 0.1336, 32: 0.1076, 64: 0.0902, 128: 0.0776, 256: 0.0681; Chebyshev interpolation 2: 0.2165, 4: 0.1232, 8: 0.0670, 16: 0.0352, 32: 0.0181, 64: 0.0092, 128: 0.0046, 256: 0.0023.
Fig. 4 The largest error in approximating ∣x∣|x| on [−1,1][-1, 1] by pn(x2)p_n(x^2) from the square-root iteration, against its degree (warm), and by the polynomial of the same degree that matches ∣x∣|x| at the Chebyshev points (cool), which is close to the best possible. Both fall to nought; one falls much faster.

The figure also shows what the guarantee does not say. The iteration’s degree doubles at every step and its error falls only like 2/n2/n, so against the degree dd its error falls like 1/log⁡d1/\log d. A polynomial chosen for the job — here the one agreeing with ∣x∣|x| at the points cos⁡((2j+1)π/(2d+2))\cos\big((2j + 1)\pi/(2d + 2)\big), which bunch towards the ends of the interval — has error falling like 1/d1/d; at degree 256 the iteration’s error is 0.0680.068 and the chosen polynomial’s is 0.00230.0023. Sergei Bernstein showed in 1914 that the best possible error at degree dd is asymptotically β/d\beta/d with β≈0.2802\beta \approx 0.2802, so the cool line in the figure is within a small factor of the best there is.

Dini’s theorem guarantees convergence and says nothing about cost. That is typical of compactness arguments: the step “finitely many sets cover” produces a number NN and gives no formula for it. Here the separate estimate 2/n2/n happens to exist; in general the theorem delivers uniformity and leaves the rate to be found another way.

The same idea with the order moved inside

There is a cousin of Dini’s theorem that probability uses constantly, and it is worth setting beside the original because the monotonicity has moved. In Dini’s theorem each point sees its values decrease along the sequence. In George Pólya’s theorem of 1920 each function is increasing as xx increases, as every distribution function is: the chance of a value at most xx can only grow with xx.

Coin-toss distributions closing on the bell curve, everywhere at once. Step-function distribution functions of the standardised binomial for n = 4, 16, 64, 256 against the normal distribution function; largest gaps 0.1875, 0.0982, 0.0497, 0.0249.
Fig. 5 The chance of at most kk heads in nn tosses of a fair coin, drawn as a step function of the standardised count for n=4n = 4, 1616, 6464 and 256256, against the distribution function of the bell curve. The largest vertical gap is 0.1880.188, 0.0980.098, 0.0500.050 and 0.0250.025 — halving each time nn is multiplied by four.

Pólya’s theorem says: if increasing functions converge at every point to a continuous increasing function that runs from 0 to 1, the convergence is uniform on the whole line. The proof is the same move in different clothes. Cut the limit’s range into a finite number of horizontal bands of width ε\varepsilon; the limit crosses each band over some interval; at the finitely many cut points the members are eventually close; and between two cut points every function is trapped by its own monotonicity between its values at the ends. Finitely many points, each settled, control everything — the role compactness played for Dini is played here by the finiteness of the bands.

The figure applies it to the central limit theorem. The coin-toss distribution functions converge at every point to the bell curve’s, as how fast the bell arrives measured; Pólya upgrades that for free to convergence of the largest gap. The measured gaps are almost exactly 1/2πn1/\sqrt{2\pi n}, the height of the jump at the centre divided by two — the step function cannot be closer than half a step to a continuous curve passing through its middle.

Where the theorem is used without its name

Dini’s theorem rarely appears in a final result; it appears in the middle of proofs, wherever a monotone construction has to be upgraded to a uniform one. Three places are worth knowing. In the theory of integration, a decreasing sequence of continuous functions with a continuous limit can be integrated term by term, and that is the first step of the road that which functions can be added up follows to Lebesgue’s monotone convergence theorem — there the uniformity is dropped and the conclusion about integrals kept. In potential theory, upper envelopes of continuous functions are approached by decreasing sequences, and Dini is what makes the approximations uniform on compact sets. And in probability, as the coin-toss figure showed, its cousin makes every pointwise limit of distribution functions uniform once the limit is continuous.

In each case the shape of the use is the same. A construction produces something monotone and continuous for free — a running maximum, an envelope, a cumulative probability — and the question is whether its convergence can be trusted everywhere at once. Dini’s four conditions say yes without a single estimate, which is why the theorem survives in textbooks a century and a half after the problem it was written for, and why it is usually the first thing to check when a uniform bound is wanted and none is in sight. Its limitation is the mirror of its strength: it says nothing about functions that jump at every fraction or about any limit that is not already known to be continuous.

What the drawings can and cannot settle

The figures measure largest gaps on grids of a few thousand to twenty thousand points, and a maximum over a grid can only fall short of the true maximum. Where a bound is drawn, such as 2/n2/n for the square-root iteration, every measured value is checked against it, and a measured value above the bound would mean the bound was wrong; that check passes. But a grid cannot prove that a sequence converges uniformly. The theorem does that, and the drawings show the mechanism and the numbers.

The degree comparison is a comparison with a proxy. The cool curve is interpolation at Chebyshev points, which is computable in a line and is known to be within a slowly growing factor of the best polynomial of each degree; the true best polynomials, which the Remez exchange algorithm computes, would sit slightly lower still. The conclusion that the iteration is far from economical does not depend on the difference.

And the counterexamples show only that each hypothesis cannot simply be deleted. They do not show that the hypotheses cannot be weakened. Many weaker forms of Dini’s theorem exist — monotonicity only eventually, or only for a subsequence, or the interval replaced by any compact space — and the essential content survives in all of them: a nested family of open sets covering a compact set has a member that covers it alone.

Still open: how fast the moving worst point settles

For the square-root iteration the position of the worst point can be watched in the first figure: it moves in towards 00 roughly like c/n2c/n^2, while the worst gap falls roughly like 0.6/n0.6/n. These are measurements over eleven steps, not theorems, and the general question behind them has no complete answer. Given a monotone sequence satisfying Dini’s conditions, nothing in the theorem predicts where the slowest point will be or how fast the largest gap will fall; for a particular sequence one estimates it by hand, as the bound 2/n2/n was estimated here, and for many sequences arising in analysis and probability the sharp rate is unknown.

For polynomial approximation of ∣x∣|x| the corresponding question is answered, and the answer is old and deep: Bernstein’s constant β=0.28016…\beta = 0.28016\ldots was computed, conjectured to be 1/(2π)=0.28209…1/(2\sqrt\pi) = 0.28209\ldots, and shown in 1985 by Richard Varga and Amos Carpenter, by high-precision computation, not to equal it. No closed form for β\beta is known. It is the precise price of a corner, in the currency of polynomial degree, and nobody knows what number it is.

The order that makes infinity finite

Pointwise convergence is infinitely many separate facts, one at each point, and uniform convergence is one fact about all of them. In general nothing connects the two: a gap can escape by moving, by sitting on a jump, or by hiding at a missing endpoint. Dini’s theorem names the circumstances in which none of those escapes is available, and the proof shows why — each point’s settling is an open condition, the order makes the conditions accumulate, and a closed interval cannot be covered by an accumulating family without one member doing all the work.

The same mechanism, run with the order inside each function rather than along the sequence, is why a probability approximation that holds at every point holds everywhere with one error. And in its first use it gave Weierstrass a sequence of polynomials sliding uniformly onto a corner, which is the seed from which every continuous function on an interval is reached by polynomials — though, as the degrees show, by a road far longer than the shortest one.

What links here

Computed from the collection, not written here: the essays that point at this one.

Reads more easily once this is understood

Essays that name this one as worth reading first.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A dashed tag is an object no other essay names yet.

CompactnessContinuityConvergence rateCounterexamplePointwise convergenceSupremumUniform convergence