Ciencia de datos

El método de las aproximaciones sucesivas e implementación en Python

Entre los métodos numéricos para obtener la raíz de una función más sencillos de implementar se encuentran el método de las aproximaciones sucesivas. El cual se basa en el uso de una función que aproxima la solución para obtener esta de una forma iterativa. Siendo una alternativa a otros métodos numéricos como pueden ser los métodos de la bisección, la secante o el de Newton.

El método de las aproximaciones sucesivas

El método de las aproximaciones sucesivas es un método iterativo para obtener la raíz de una ecuación en el que se reemplazar el problema buscar un valor de x que verifique la expresión f(x)=0 por otro tal que x=g(x). Lo que permite construir, a partir de un valor inicial x_0, una sucesión de aproximaciones que finalmente convergen a la solución buscada.

Así, solamente se tiene que repetir la evaluación de la expresión

x_{n+1} = g(x_n),

hasta que se alcance una aproximación suficientemente precisa de la solución buscada.

Obtención de la función g(x)

El principal problema de este método es encontrar la función que aproxima la solución. La forma más común para obtener g(x) es mediante una reorganización algebraica de f(x) para expresar x en términos de otras variables. Por ejemplo, si se tiene la función

f(x) = x^2 + 2x - 8 = 0.

Se puede despejar x de la siguiente manera

x = \frac{8 -x^2}{2}

Así la función g(x) resulta ser

g(x) = \frac{8 -x^2}{2}

Implementación en Python

Una implementación básica de este método en Python se puede conseguir con el siguiente código.

def successive_approximations(fun, x_n, epsilon=1e-6, max_iter=50):
    x_p = x_n
    x_n = fun(x_n)
    n_iter = 1

    while abs(x_p - x_n) > epsilon and n_iter <= max_iter:
        x_p = x_n
        x_n = fun(x_n)
        n_iter += 1

    if n_iter > max_iter:
        raise ValueError("No se ha alcanzado la convergencia después del número máximo de iteraciones permitidas.")

    return x_n

successive_approximations(g, 0)

En el que simplemente se evalúa la función g(x) hasta que se llega a la convergencia o se alcanza el límite de iteraciones.

Validación de la implementación

Para validar la implementación se puede usar la función basada en un polinomio con la que se evaluó el método de la secante y el de Newton.

f = lambda x: x**2 + 2*x - 8
g = lambda x: (8 - x**2)/2

successive_approximations(g, 0) # -4

Pudiendo comprobar que devuelve una de las soluciones de este polinomio.

En este caso no se ha obtenido la misma solución que cuando se empleó el método de Newton, de hecho, en este caso las soluciones cerca de 2 divergen. Por lo que es necesario conocer y disponer de implementaciones de diferentes métodos para tener opciones de obtener la solución a un problema.

Conclusiones

En esta entrada se ha visto uno de los métodos numéricos más sencillos de implementar para obtener las raíces de una ecuación: el método de las aproximaciones sucesivas. Un método cuya implementación no es complicada, pero si lo puede ser encontrar la función aproximada.

Imagen de Pfüderi en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

3 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

4 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.