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.

This article is a stub. Help us out by expanding it.