# Uniform convergence

A sequence of functions $\{f_n\},\ f_n: X \to \mathbb{R}$ is said to uniformly converge to a function $f: X \to \mathbb{R}$ if for every positive real number $\varepsilon > 0$, then there exists $N$ such that for all positive integers $n \ge N$, we have $|f_n(x) - f(x)| < \varepsilon$. (More generally, we can replace $\mathbb{R}$ with any metric space $Y$.)

This is different from pointwise convergence, where a sequence of functions converge pointwise if at every point in the domain, the functions converge. Uniform convergence is a stronger condition, because (speaking informally) the function has to converge at a similar rate everywhere on its domain. $[asy] size(150); import graph; real epsilon = 0.1; pen d = linewidth(0.7); defaultpen(d); // implement [an apparently non-functional] version of Lagrange. real symproduct(real a, real x[]){ real product = 1; for(int i = 0; i < x.length; ++i) if(a != x[i]) product = product * (a - x[i]); return product; } real baryweight(int i, real x[]){ real product = 1; for(int j = 0; j < x.length; ++j) if(j != i) product = product * (x[j] - x[i]); return 1/product; } real lagrange(real a, real x[], real y[]){ real sum = 0; for(int i = 0; i < x.length; ++i) if(a != x[i]) sum = sum + baryweight(i,x)*y[i]/(a - x[i]); return symproduct(a, x) * sum; } real func(real x){ // note there is a sign error. use odd # of points real LISTx[] = {-1.5, -0.5 , 0 ,0.4, 0.8, 1, 4}; real LISTy[] = {-4, -0.5 , 0.2 , 0.5, 0.35, 0.6, 1.2}; return lagrange(x,LISTx,LISTy); } real func_plus(real x) { return (func(x) + epsilon); } real func_minus(real x) { return (func(x) - epsilon); } draw(graph(func,-0.00001,1.00001),linewidth(1.2)); draw(graph(func_plus,-0.00001,1.00001),dashed+linewidth(0.7)); draw(graph(func_minus,-0.00001,1.00001),dashed+linewidth(0.7)); // convergents real func_conv1(real x) { return (func(x) + 1.5*epsilon*sin(12*x+pi/3)); } real func_conv2(real x) { return (func(x) + 0.9*epsilon*sin(12*x+pi/4)); } real func_conv3(real x) { return (func(x) + 0.5*epsilon*sin(12*x+pi/5)); } draw(graph(func_conv1,-0.00001,1.00001),red+d); draw(graph(func_conv2,-0.00001,1.00001),green+d); draw(graph(func_conv3,-0.00001,1.00001),blue+d); // draw axes Label f; f.p=fontsize(8); xaxis(0, 1, Ticks(f, 1, 1)); yaxis(0, 1, Ticks(f, 1, 1)); pair a = (-0.1,func(0.00001)); draw(a--a+(0,epsilon), Arrows(6)); draw(a--a-(0,epsilon), Arrows(6)); label("\varepsilon",a+(0,epsilon/2),W,f.p); label("\varepsilon",a-(0,epsilon/2),W,f.p); [/asy]$
If the functions $\color{red}{f_1}, \color{green}{f_2}, \color{blue}{f_3}, \color{black} \ldots$ continue to approach $f$ as shown, they converge uniformly.

Every uniformly convergent sequence converges pointwise, but the converse is not necessarily true. For example, the sequence of functions defined by $f_n(x) = x^n$ for $x \in [0, 1]$ converges pointwise to the function $f(x) =\begin{cases} 1, & x = 1 \\0, & \text{otherwise}\end{cases}$, but this convergence is not uniform.

## Properties

An equivalent definition is that if $\lim_{n \to \infty} f_n(x) = f(x)$ for all $x \in X$ and $$\lim_{n \to \infty} \sup_{x \in X} |f(x) - f_n(x)| = 0,$$

then $\{f_n\}$ converges uniformly.

Uniformly convergent sequences have a number of nice properties that pointwise convergent sequences do not necessarily have. A uniformly convergent sequence of continuous functions converges to a continuous function. A uniformly convergent sequence of differentiable functions defined on a closed interval converges to a differentiable function, and a sequence of Stieltjes-integrable functions converges to a Stieltjes-integrable function. It is possible to show by example that these properties do not have to hold for pointwise convergent functions.