Introducción
Estás en el instituto una tarde cualquiera. La clase de matemáticas hoy no avanza demasiado, así que echas mano de tu calculadora y empiezas a jugar con ella para matar el aburrimiento.
Es muy probable que esta historia te suene, y si es así, existe la posibilidad de que entre las miles de cosas que probaras, una fuera la siguiente:
-
Escribes o llegas a un número cualquiera, digamos que es 0.234.
-
Empiezas a pulsar repetidamente el botón
cos
:
\(\hspace{2em}\) \(\cos 0.234 = 0.9727...\)
\(\hspace{2em}\) \(\cos \cos 0.234 = 0.5630...\)
\(\hspace{2em}\) \(\cos \cos \cos 0.234 = 0.8456...\)
\(\hspace{2em}\) \(\cos\cos\cos\cos 0.234 = 0.6632...\)
\(\hspace{2.5em}\vdots\)
\(\hspace{2em}\) \(\cos \dots \cos 0.234 = 0.739085...\)
Resulta que si eliges cualquier otro valor y repites este proceso, acabas en el mismo resultado: \(0.739085...\)
Este número se conoce como Número de Dottie, y se define precisamente como la solución a la ecuación \(x = \cos(x).\)
Que esta ecuación tiene solución es muy sencillo de deducir, pero hay que comprobarlo para hablar de su solución, ya que a veces suponer la existencia de una solución que resulta no existir lleva a contradicciones.
Proposición: \(x = \cos(x)\) tiene solución.
Demostración: Definiendo \(f(x) := x - \cos(x)\) tenemos \(f(0) = -1\) y \(f(\frac{\pi}{2}) = \frac{\pi}{2}\). Como \(f(x)\) es continua, aplicamos el Teorema de Bolzano, y existe un cero de \(f(x).\) \(\hspace{1em} \blacksquare\)
Lo interesante es que solo hay una única solución, y que iterar la función coseno repetidamente tiende, en el infinito, a esta única solución.
Para entender este aparente misterio, y ver que no se trata de ninguna casualidad, necesitamos dos ingredientes:
El Teorema del punto fijo y el Teorema del valor medio.
El Teorema del valor medio
Este teorema dice que si tenemos una función \(f(x)\) continua en el intervalo cerrado \([a, b]\) y derivable en el intervalo abierto \((a, b),\) entonces existe un punto \(\xi \in (a, b)\) tal que \(f(b) = f(a) + f'(\xi)(b-a).\)
El Teorema del punto fijo (de Banach)
Para entender este teorema, necesitamos primero necesitamos la siguiente definición:
Definición: Una función \(f : X \to X\) (solo trataremos el caso en que \(X\) es un intervalo de los reales) es contractiva si “acerca” los valores que se le dan. Formalmente, si existe una constante \(0 < K < 1\) tal que \(\|f(x)-f(y)\| \le K \|x-y\|\) para todos los valores \(x, y \in X.\)
Teorema del punto fijo (de Banach): Toda función contractiva tiene un único punto fijo.
Además, si llamamos \(x^*\) a este punto fijo (es decir, \(f(x^*) = x^*\)), la sucesión \(x_n := f(x_{n-1})\) para cualquier valor inicial \(x_0\) tiende, en el infinito, a \(x^*\).
Demostración: Como \(f\) es contractiva, sabemos que \(\|f(x)-f(y)\| \le K \|x-y\|\). Aplicamos esto repetidamente a \(\bigl(x, y\bigr),\) \(\bigl(f(x), f(y)\bigr),\) \(\bigl(f(f(x)), f(f(y))\bigr)\dots\)
Sin duda, cuando \(n\) tiende a infinito, \(\|\underbrace{(f\circ \dots \circ f)}_{n}(x)-\underbrace{(f\circ \dots \circ f)}_{n}(y)\| \to 0.\) Como esto pasa para cualquier par de puntos iniciales, solo puede haber un único punto fijo y cualquier sucesión que aplique \(f\) repetidamente tiende a este. \(\hspace{1em} \blacksquare\)
Para ver una demostración más precisa y extendida a cualquier espacio métrico completo, consultar esta demostración en Wikipedia.
Un caso particular de funciones contractivas
Proposición: Si tenemos una función tal que \(\|f'(x)\| \le K < 1\) para toda \(x\), entonces será contractiva.
Demostración: Como \(\|f'(x)\| \le K\) y \(f(x) = f(a) + f'(\xi)(x-a)\) por el Teorema del valor medio, entonces \(\|f(x) - f(a)\|\) \(= \|f'(\xi)\|\|x-a\|\) \(\le K\|x-a\|\). Entonces cumple la definición y es contractiva. \(\hspace{1em} \blacksquare\)
Funciones casi contractivas
Si nos preguntamos qué pasa cuando \(K = 1\) en el caso anterior, tenemos que bajo ciertas circunstancias, pese a no cumplir la definición de contractivas, se comportan de la misma manera.
Definición: Diremos que una función \(f : X \to X\) es casi contractiva si \(\|f(y) - f(x)\| <\) \(\|y-x\|\) para todo \(x, y \in X,\) \(x \neq y.\)
Proposición: Si tenemos una función continua \(f: X \to X\) casi contractiva y \(X\) es compacto (cerrado y acotado para \(\mathbb{R}^n\)), entonces tendrá un único punto fijo.
Demostración: Es una propiedad conocida que en un conjunto compacto, toda función continua tiene máximo y mínimo (demostración). Definimos \(g(x) :=\) \(\|x - f(x)\|.\) Claramente \(g(x) \ge 0\) y es continua, por lo que tendrá un mínimo. Además, como \(f\) es casi contractiva, \(g(x) > 0 \implies\) \(g(f(x)) < g(x)\), por lo que este mínimo solo puede ser un punto \(x^*\) que cumpla \(g(x^*) = 0.\) Esto nos dice que existe un punto fijo de \(f\). Además, el punto fijo es único, ya que si no fallaría la definición de casi contractiva cogiendo los dos puntos fijos. \(\hspace{1em} \blacksquare\)
Proposición: Si tenemos una función continua \(f : X \to X\) y tal que \(\|f'(x)\| < 1\) para toda \(x,\) y \(X\) es compacto, entonces será casi contractiva y, por tanto, tendrá un único punto fijo.
Demostración: Si \(\|f'(x)\| < 1\), como \(f(y) = f(x) + f'(\xi)(y-x)\) por el Teorema del valor medio, tenemos que para cualquer \(y \neq x\text{:} \hspace{0.3em}\) \(\|f(y) - f(x)\| =\) \(\|f'(\xi)\|\|y-x\|\) \(< \|y-x\|.\) Con esto hemos visto que es casi contractiva, y al ser \(X\) compacto tenemos el resultado por la proposición anterior. \(\hspace{1em} \blacksquare\)
El misterio del número de Dottie
En el caso de \(f(x) = \cos(x),\) tenemos que \(f'(x) = -\sin(x)\), por lo que \(\|f'(x)\| < 1\) y entonces \(f\) es casi contractiva en todos los reales. Esto explica la misteriosa convergencia del coseno hacia el número de Dottie desde cualquier valor inicial!
Para quien tenga curiosidad sobre las particularidades de este número, podéis consultar https://www.gaussianos.com/el-numero-de-dottie/.
Resolviendo y aproximando con el método del punto fijo
En la práctica podemos usar métodos bastante más efectivos como el Método de Newton, pero el Teorema del punto fijo es de gran importancia dentro de las matemáticas, y esta es una forma curiosa de ponerlo en práctica.
Si queremos encontrar soluciones a ecuaciones, de manera que las podamos calcular, podemos intentar hacer que la solución sea el punto fijo de una función (casi) contractiva.
Probaremos cómo calcular \(\sqrt{a}\).
Como presuponemos que no podemos calcularla directamente, la expresamos de manera que sea un punto fijo de \(f(x) = \frac{1}{2} \bigl(\frac{a}{x} + x\bigr)\). Está claro que \(\sqrt{a}\) es un punto fijo. Además, \(f'(x) = \frac{1}{2} \bigl(1 - \frac{a}{x^2})\), que en \((0, a)\) es menor a \(1/2\) por lo que \(f\) es contractiva. Por tanto, iterar \(f\) empezando por ejemplo con \(x=\frac{a}{2}\) nos dará el valor de \(\sqrt{a}\). Veamos un ejemplo calculando \(\sqrt{10} \approx 3.1623:\)
Este método se comoce como Algoritmo babilónico.
Otro ejemplo sería resolver \(\sin(x) + \cos(x) = x\). Cogiendo \(f(x) = \sin(x) + \cos(x)\), tenemos \(f'(x) = \cos(x) - \sin(x)\) que será casi contractiva en \((0, \frac{\pi}{2}).\) Calculamos la solución en este intervalo:
\[\begin{align*} f(1) &\approx 1.3817 \\ f(1.3817) &\approx 1.1701 \\ f(1.1701) &\approx 1.3108 \\ f(1.3108) &\approx 1.2234 \\ \vdots \\ f(1.2587) &\approx 1.2587 \end{align*}\]Las funciones anteriores se pueden expresar como series y es más fácil obtener sus valores de forma sistemática, pero ejemplos no tan sencillos son los polinomios de grado mayor a 4, para los que no hay expresión cerrada, no se pueden calcular así. El método del punto fijo no puede resolverlos todos en general, pero podemos resolver casos particulares:
Por ejemplo, \(x^3 - x^2 + x - 1000 = 0 \iff\) \(f(x) := (1000 - x^2 - x)^{1/3} = x.\) Entonces,
\[f'(x) = \frac{1}{3} \frac{-2x-1}{(1000 + x^2 - x)^{2/3}}\]y será contractiva para \(x\) no demasiado grande. Iterando \(f\) empezando desde \(1\) llegamos a \(x \approx 10.3102.\)