TARDÍGRADOS

Ciencia en español

Mejorando el método de Newton-Raphson para el cálculo aproximado de raices (ceros) de una función

Posted by Albert Zotkin en enero 4, 2016

El otro día, mientras probaba el método de Newton-Raphson, se me ocurrió que quizás podría mejorarlo un poco. Este método se usa para el cálculo aproximado de las raíces de una función f(x), y es el siguiente:

\displaystyle x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} (1)
Donde f ‘(x) es la primera derivada de f(x). Es decir, partimos de un punto fijo xn, que suponemos está cerca de una de las raices, y desde él iteramos tantas veces como deseemos hasta aproximarnos más a dicha raíz. Este método tiene el riesgo de que las iteraciones no converjan hacia ninguna raíz, y por lo tanto resulte ineficaz para algunas funciones. Supongamos que queremos hallar alguna raíz de la función f(x) = 3x4 + x2 – 2 y aplicamos seis veces la iteracíon del método de Newton-Raphson partiendo del punto x0 = 1, y si calculamos con una precisión de 40 dígitos, tendremos:

\displaystyle \begin{matrix}   x_1 & = & x_0 - \frac{f(x_0)}{f'(x_0)} & = & 1 - \frac{2}{14} & = & \underline{0.8}571428571428571428571428571428571428571 \\   x_2 & = & x_1 - \frac{f(x_1)}{f'(x_1)} & & \vdots & = & \underline{0.81}89577717879604672057502246181491464510\\   x_3 & & \vdots & & \vdots & = & \underline{0.816}5061857602031922330590601328993201490\\   x_4 & & \vdots & & \vdots & = & \underline{0.81649658}10746056647328219979558653427309 \\   x_5 & & \vdots & & \vdots & = & \underline{0.8164965809277260327}667768695067608172972 \\   x_6 & & \vdots & & \vdots & = & \underline{0.81649658092772603273242802490196379732}39 \end{matrix}

los dígitos correctos están subrayados.

A continuación presento la mejora que hice para este método de Newton-Raphson:

\displaystyle x_{n+1} = x_n - \frac{f'(x_n)}{f''(x_n)} +\sqrt{\frac{f'(x_n)^2}{f''(x_n)^2}-2\frac{f(x_n)}{f''(x_n)}} (2)

Donde f ”(x) es la segunda derivada de f(x). Obviamente esta mejora debería de funcionar para f ”(xn) ≠ 0. Hagamos el cálculo para la función anterior usando esta mejora:

\displaystyle \begin{matrix}   x_1 & = & \underline{0.8}061381468608105183744701440352992991541 \\   x_2 & = & \underline{0.81649}79024576970617429931359189802359533\\   x_3 & = & \underline{0.8164965809277260}299628549775875861636275\\   x_4 & = & \underline{0.8164965809277260327324280249019637973220} \\   x_5 & = & \underline{0.8164965809277260327324280249019637973220} \\   x_6 & = & \underline{0.8164965809277260327324280249019637973220} \end{matrix}
Vemos cómo con esta mejora la iteración converge más rápidamente hacia la raíz. En concreto, para este ejemplo, vemos cómo a partir de x3 la aproximación sobrepasa con creces la precisión de 40 digitos.

Pero, ¿Cómo he obtenido la ecuación de mejora (2)?. La serie de Taylor de la función f(x) centrada en xn es

\displaystyle f(x)=f(x_n)+f'(x_n) (x-x_n)+ (x-x_n)^2 \frac{f''(x_n)}{2!} + ... \,

Si evaluamos para xn+1 obtenemos

\displaystyle f(x_{n+1})=f(x_n)+f'(x_n) (x_{n+1}-x_n)+ (x_{n+1}-x_n)^2 \frac{f''(x_n)}{2!} + ... \,

Como para el cálculo de las raices f(xn+1) debe ser igual a 0, si consideramos hasta el término cuadrático, tendremos

\displaystyle f(x_{n+1})=f(x_n)+f'(x_n) (x_{n+1}-x_n)+ (x_{n+1}-x_n)^2 \frac{f''(x_n)}{2!}= 0,

Y resolviendo esa ecuación cuadrática para xn+1, tendremos:

\displaystyle x_{n+1} = x_n - \frac{f'(x_n)}{f''(x_n)} \pm \sqrt{\frac{f'(x_n)^2}{f''(x_n)^2}-2\frac{f(x_n)}{f''(x_n)}} (3)
Observemos el signo ± delante de la raíz cuadrada del discriminante. Ese signo ± quiere decir que tenemos dos posibles caminos de iteración en la mejora de este método, y los dos deben conducir a una buena aproximación de una de las raices de la función. Obviamente, si en la serie de Taylor consideramos sólo hasta el termino cuadrático excluido, obtenemos el método original de Newton-Raphson. Podríamos considerar mejoras hasta el término cúbico o grados superiores, y veríamos cómo la rapidez de convergencia (o divergencia) aumentaría notablemente.

Este método de Newton-Raphson también puede extenderse a funciones de variable compleja. Así, si partimos de un punto fijo del plano complejo, veríamos cómo sus siguientes puntos de dicho plano, al ir aplicando la iteración, se aproximarían a un punto atractor, el cual sería una de las raíces (ceros) de esa función compleja.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: