Página web del curso

El método de punto fijo

Decimos que $\alpha$ es un punto fijo de $g$ si

$$g(\alpha)=\alpha$$

Como cualquier ecuación $f(x)=0$ puede ser reescrita como $g(x)=x$, por ejemplo, $g(x)=f(x)+x$, resolver la primera ecuación es equivalente a encontrar un punto fijo de la segunda función.

Por ejemplo, sea $f(x)=\cos(x)-x$ y buscamos las raíces de $f$ tal que $$\cos(x)-x=0.$$ Podemos reorganizar la ecuación como $$\cos(x)=x.$$

La solución de esta segunda ecuación, también llamada punto fijo de la función

$$ g(x) =\cos(x)$$

será también una raíz de $f$.

Una vez tenemos la función $g$ el procedimiento para calcular el punto fijo es:

  • Tomamos un $x_0$
  • Iteración 1: $x_1=g(x_0)$
  • Iteración 2: $x_2=g(x_1)$
  • Iteración 3: $x_3=g(x_2)$
  • $\dots$

Algoritmo

  • Sea $x_0$ un punto inicial.
  • Para $k=1,2,\ldots,\mathrm{MaxNumIter}$:
    • Calcular $x_k=g(x_{k-1})$
    • Si $x_k$ satisface el criterio de parada, parar.
    • En el caso contrario, hacer otra iteración.

Por ejemplo, si para $g(x)=\cos(x)$ tomamos $x_0=1$ (¡Ojo! Las unidades de ángulos en matemáticas y en física son los radianes):

  • Iteración 1: $x_1=\cos(1)=0.54$
  • Iteración 2: $x_2=\cos(0.54)=0.86$
  • Iteración 3: $x_3=\cos(0.86)=0.65$
  • $\dots$

Gráficamente la sucesión se construye:

  • Dibujamos la curva $g$ (en rojo en la figura).
  • Dibujamos la recta $y=x$ (en negro en la figura). Estamos buscando el punto fijo $g(x)=x,$ es decir, la intersección de la curva con la recta.
  • Obtenemos el punto $(x_0,f(x_0))$ sobre la curva.
  • Trazamos la línea horizontal hasta la recta $y = x.$ Como está a la misma altura que el punto de la curva, la altura del punto sobre la recta, es decir, la coordenada $y$ es igual a $x_1=f(x_0).$ Como para los puntos de la recta $y=x,$ la coordenada $x$ es la misma, es decir, $x_1.$
  • Trazamos la línea vertical hasta la curva y obtenemos el punto $(x_1,f(x_1))$ sobre la curva.
  • Trazamos la línea horizontal hasta la recta $y = x.$ Como está a la misma altura que el punto de la curva, la altura del punto sobre la recta, es decir, la coordenada $y$ es igual a $x_2=f(x_1).$ Como para los puntos de la recta $y=x,$ la coordenada $x$ es la misma, es decir, $x_2.$
  • Y seguimos así, curva, recta, curva, recta, $\ldots$

Convergencia

El Teorema de la aplicación contractiva dice: sea $g$ derivable definida en el intervalo $[a,b] \subset \mathbb{R} $ y $x_0 \in [a,b]$ un punto del intervalo. Supongamos que

  • $x \in [a,b] \quad \Rightarrow \quad g(x)\in [a,b]$
  • $\left|g'(x)\right|\le k\lt 1$ para todo $x\in [a,b]$

Entonces $g$ tiene un único punto fijo $\alpha \in [a,b]$, y la sucesión $x_n$ definida como $x_{i+1}=g(x_i)$ que tiene como punto inicial $x_0$ converge a $\alpha$ con orden al menos lineal.

Veamos si se verifican estas condiciones para la función $g(x)=\cos x$ en el intervalo $[0,1]$

Gráficamente

  • Si nos fijamos en el eje OY, vemos que la gráfica de $g$ siempre está contenida entre 0 y 1. Por lo tanto se cumple la primera condición.
  • La pendiente de la curva es siempre menor que 1 en valor absoluto en en intervalo $[0,1].$ La referencia son las diagonales: si la curva es menos pendiente (es más planas o está más tumbada) que la diagonal correspondiente (en este caso la negra, que tiene pendiente $-1$), cumple la segunda condición.

Analíticamente

  • Como

    • $\cos(x)$ es decreciente en $\left[0,\dfrac{\pi}{2}\right]$
    • $[0,1]\subset\left[0,\dfrac{\pi}{2}\right]=\left[0,1.57\right]$
    • entonces el $\cos(x)$ es decreciente en $[0,1]$
    • y tendrá su máximo en $0$ y su mínimo en $1$, es decir

      $$\cos(1)\le \cos(x) \le \cos(0)$$

que es

$$0.54\le \cos(x) \le 1$$

y por lo tanto

$$\mathrm{Si}\quad x\in[0,1]\quad \Longrightarrow\quad \cos(x)\in [0.54,1]\subset[0,1]$$
  • $g'(x)=-\mathrm{sen}(x)$

    • y $\left|g'(x)\right|=\mathrm{sen}(x)$ en $[0,1].$
    • Como el $\mathrm{sen}(x)$ es creciente en $[0,1]$
    • tendrá su máximo en $1$ y su mínimo en $0$, es decir

      $$\mathrm{sen}(0)\le \mathrm{sen}(x) \le \mathrm{sen}(1)$$

que es $$0\le \mathrm{sen}(x) \le 0.84$$ y por lo tanto

$$\left|g'(x)\right|\le 0.84\lt 1 \;\mathrm{para}\; \mathrm{todo}\; x\in [0,1]$$

Como se cumplen las condiciones del teorema de la aplicación contractiva podemos escoger cualquier punto del intervalo $[0,1]$ como valor $x_0$ y está garantizado que la sucesión generada con la función de iteración $g$ converja.

Existen cuatro posibles casos:

Ventajas

  • El método de punto fijo es muy sencillo de implementar.
  • Permite un estudio teórico sistematizado de la convergencia.
  • Es un conjunto de métodos: por ejemplo, Newton-Raphson es un método de punto fijo donde $g(x)=x-f(x)/f'(x).$
  • Se pueden construir métodos de punto fijo del orden de convergencia deseado.

Inconvenientes

  • Métodos con órdenes de convergencia altos requieren la existencia y buen comportamiento de las derivadas de $g$.
  • Si no usamos las derivadas el orden de convergencia lineal y converge lentamente.

Ejercicio

Para calcular las raíces de $f(x)=x+\ln(x)$ por el método de punto fijo se definen las siguientes funciones de iteración.

$$(i)~g_{1}(x)=-\ln(x),\quad(ii)~g_{2}(x)=\text{e}^{-x},\quad(iii)~g_{3}(x)=\frac{x+\text{e}^{-x}}{2}$$
  • Demostrar que la ecuación $f(x)=0$ tiene la misma raíz que $g_{i}(x)=x$ con $i=1,2,3.$
  • Estudiar gráficamente si se cumplen las condiciones del teorema de la aplicación contractiva en el intervalo $\left[0,1\right]$
  • Realizar nueve iteraciones con cada uno de las funciones de iteración utilizando como punto inicial $x_{0}=0.5$
  • ¿Qué funciones pueden usarse? ¿Qué función de iteración debería usarse?

Demostrar que la ecuación $f(x)=0$ tiene la misma raíz que $g_{i}(x)=x$ con $i=1,2,3$

Comprobemos que la raíz de la ecuación es punto fijo de las funciones que se definen a partir de las ecuaciones equivalentes. Es decir

$$f(x)=0\quad \Longleftrightarrow \quad g(x)=x$$

Empecemos por la función de iteración

  • $g_1(x)=-\ln x\\ x=-\ln x \Longleftrightarrow x+\ln x=0 \Longleftrightarrow f(x)=0 \;\mathrm{con}\; f(x)=x+\ln x$
  • $g_2(x)=e^{-x} \\ x=e^{-x} \Longleftrightarrow \ln x=\ln e^{-x} \Longleftrightarrow \ln x=-x \Longleftrightarrow \ln x+x=0 \Longleftrightarrow f(x)=0 \;\mathrm{con}\; f(x)=x+\ln x$
  • $g_3(x)=\dfrac{x+e^{-x}}{2} \\ x=\dfrac{x+e^{-x}}{2} \Longleftrightarrow 2x=x+e^{-x} \Longleftrightarrow x=e^{-x} \Longleftrightarrow f(x)=0 \;\mathrm{con}\; f(x)=x+\ln x$

Estudiar gráficamente si se cumplen las condiciones del teorema de la aplicación contractiva en el intervalo $\left[0,1\right]$

El Teorema de la aplicación contractiva dice: sea $g$ derivable definida en el intervalo $\left[a,b\right] \subset \mathbb{R}$ y $x_0 \in \left[a,b\right]$ un punto del intervalo. Supongamos que

  1. $x \in [a,b] \quad \Rightarrow \quad g(x)\in [a,b]$
  2. $\left|g'(x)\right|\le k\lt 1$ para todo $x\in [a,b]$

Entonces $g$ tiene un único punto fijo $\alpha \in [a,b]$, y la sucesión $x_n$ definida como $x_{i+1}=g(x_i)$ que tiene como punto inicial $x_0$ converge a $\alpha$ con orden al menos lineal.

Viendo las gráficas:

  • $g_1$ no cumple la condición 2 (del teorema de la aplicación contractiva) en ningún punto.
  • $g_2$ cumple la condición 2 excepto quizá en $0$ por lo que habría que tomar otro intervalo más reducido.
  • $g_3$ cumple las dos condiciones para el intervalo $[0,1]$ y además vemos que es la función con la menor derivada (la más horizontal).

Realizar nueve iteraciones con cada una de las funciones de iteración utilizando como punto inicial $x_{0}=0.5$

Por ejemplo, si para $g_1(x)=-\ln(x)$ tomamos $x_0=0.5$:

  • Iteración 1: $x_1=-\ln(0.5)=0.693147$
  • Iteración 2: $x_2=-\ln(0.693147)=0.366513$
  • Iteración 3: $x_3=-\ln(0.366513)=1.003722$
  • $\dots$

Para las demás funciones

\begin{array}{|c|ccc|} \hline k & g_1 & g_2 & g_3\\ \hline 0 & 0.500000 & 0.500000 & 0.500000\\ 1 & 0.693147 & 0.606531 & 0.553265\\ 2 & 0.366513 & 0.545239 & 0.564167\\ 3 & 1.003722 & 0.579703 & 0.566500\\ 4 & -0.003715 & 0.560065 & 0.567004\\ 5 & \mathtt{NaN} & 0.571172 & 0.567113\\ 6 & \mathtt{NaN}& 0.564863 & 0.567137\\ 7 & \mathtt{NaN}& 0.568438 & 0.567142\\ 8 & \mathtt{NaN}& 0.566409 & 0.567143\\ 9 & \mathtt{NaN}& 0.567560 & 0.567143\\ \hline \end{array}

Vemos que, con la función $g_1,$ como no está definida para valores negativos, a partir de cierto punto, la sucesión no está definida.

Podemos asumir que, si una serie de decimales se repiten en iteraciones sucesivas, son los correctos. Así, las sucesiones generadas con $g_2$ y $g_3$ convergen, pero converge más rápido la sucesión con $g_3$, porque podemos asumir que como para $0.567143$ se repiten los 6 decimales en las dos últimas iteraciones, esta es la solución correcta para 6 decimales. Sin embargo, para la sucesión generada con $g_2,$ en la iteración 9, se repiten solamente dos decimales con la iteración anterior.

¿Qué funciones pueden usarse? ¿Qué función de iteración debería usarse?

Teniendo en cuenta los resultados anteriores, podemos usar $g_2$ y $g_3.$ La función $g_1$ no cumple las condiciones de convergencia y la sucesión generada por ella no converge.

La mejor función de iteración es la de derivada más baja en el intervalo porque converge más rapidamente, es decir, $g_3.$