En análisis numérico , el método de Newton-Raphson , también conocido simplemente como método de Newton , llamado así por Isaac Newton y Joseph Raphson , es un algoritmo de búsqueda de raíces que produce aproximaciones sucesivamente mejores a las raíces (o ceros) de una función de valor real . La versión más básica comienza con una función de valor real f , su derivada f ′ y una estimación inicial x 0 para una raíz de f . Si f satisface ciertos supuestos y la estimación inicial es cercana, entonces
es una mejor aproximación de la raíz que x 0 . Geométricamente, ( x 1 , 0) es la intersección con el eje x de la tangente del gráfico de f en ( x 0 , f ( x 0 )) : es decir, la aproximación mejorada, x 1 , es la raíz única de la aproximación lineal de f en la aproximación inicial, x 0 . El proceso se repite como
hasta que se alcanza un valor suficientemente preciso. El número de dígitos correctos se duplica aproximadamente con cada paso. Este algoritmo es el primero en la clase de métodos de Householder y fue reemplazado por el método de Halley . El método también se puede extender a funciones complejas y a sistemas de ecuaciones .
La idea es comenzar con una estimación inicial, luego aproximar la función por su línea tangente y, finalmente, calcular la intersección con el eje x de esta línea tangente. Esta intersección con el eje x normalmente será una mejor aproximación a la raíz de la función original que la primera estimación, y el método se puede iterar .
Si la línea tangente a la curva f ( x ) en x = x n intercepta el eje x en x n +1 entonces la pendiente es
Resolviendo para x n + 1 obtenemos
Comenzamos el proceso con un valor inicial arbitrario x 0 . (Cuanto más cerca del cero, mejor. Pero, en ausencia de cualquier intuición sobre dónde podría estar el cero, un método de "adivinar y comprobar" podría reducir las posibilidades a un intervalo razonablemente pequeño apelando al teorema del valor intermedio .) El método generalmente convergerá, siempre que esta suposición inicial sea lo suficientemente cercana al cero desconocido, y que f ′ ( x 0 ) ≠ 0 . Además, para un cero de multiplicidad 1, la convergencia es al menos cuadrática (ver Tasa de convergencia ) en un entorno del cero, lo que intuitivamente significa que el número de dígitos correctos se duplica aproximadamente en cada paso. Se pueden encontrar más detalles en § Análisis a continuación.
Los métodos de Householder son similares, pero tienen un orden superior para lograr una convergencia aún más rápida. Sin embargo, los cálculos adicionales necesarios para cada paso pueden reducir el rendimiento general en relación con el método de Newton, en particular si la evaluación de f o sus derivadas es costosa desde el punto de vista computacional.
El nombre "método de Newton" se deriva de la descripción que hizo Isaac Newton de un caso especial del método en De analysi per aequationes numero terminorum infinitas (escrito en 1669, publicado en 1711 por William Jones ) y en De metodis fluxionum et serierum infinitarum (escrito en 1671, traducido y publicado como Método de fluxiones en 1736 por John Colson ). Sin embargo, su método difiere sustancialmente del método moderno dado anteriormente. Newton aplicó el método solo a polinomios, comenzando con una estimación de raíz inicial y extrayendo una secuencia de correcciones de error. Usó cada corrección para reescribir el polinomio en términos del error restante y luego resolvió una nueva corrección ignorando los términos de grado superior. No conectó explícitamente el método con derivadas ni presentó una fórmula general. Newton aplicó este método tanto a problemas numéricos como algebraicos, produciendo series de Taylor en el último caso.
Newton puede haber derivado su método de un método similar, menos preciso, de Vieta . La esencia del método de Vieta se puede encontrar en el trabajo del matemático persa Sharaf al-Din al-Tusi , mientras que su sucesor Jamshīd al-Kāshī utilizó una forma del método de Newton para resolver x P − N = 0 para encontrar raíces de N (Ypma 1995). Un caso especial del método de Newton para calcular raíces cuadradas se conocía desde la antigüedad y a menudo se lo denomina método babilónico .
El método de Newton fue utilizado por el matemático japonés del siglo XVII Seki Kōwa para resolver ecuaciones de una variable, aunque faltaba la conexión con el cálculo. [1]
El método de Newton fue publicado por primera vez en 1685 en A Treatise of Algebra both Historical and Practical de John Wallis . [2] En 1690, Joseph Raphson publicó una descripción simplificada en Analysis aequationum universalis . [3] Raphson también aplicó el método solo a polinomios, pero evitó el tedioso proceso de reescritura de Newton extrayendo cada corrección sucesiva del polinomio original. Esto le permitió derivar una expresión iterativa reutilizable para cada problema. Finalmente, en 1740, Thomas Simpson describió el método de Newton como un método iterativo para resolver ecuaciones no lineales generales utilizando cálculo, dando esencialmente la descripción anterior. En la misma publicación, Simpson también da la generalización a sistemas de dos ecuaciones y señala que el método de Newton se puede utilizar para resolver problemas de optimización estableciendo el gradiente en cero.
Arthur Cayley en 1879 en El problema imaginario de Newton-Fourier fue el primero en advertir las dificultades de generalizar el método de Newton a raíces complejas de polinomios con grado mayor que 2 y valores iniciales complejos. Esto abrió el camino al estudio de la teoría de iteraciones de funciones racionales.
El método de Newton es una técnica poderosa; en general, la convergencia es cuadrática: a medida que el método converge hacia la raíz, la diferencia entre la raíz y la aproximación se eleva al cuadrado (el número de dígitos exactos se duplica aproximadamente) en cada paso. Sin embargo, el método presenta algunas dificultades.
El método de Newton requiere que la derivada se pueda calcular directamente. Una expresión analítica para la derivada puede no ser fácil de obtener o podría ser costosa de evaluar. En estas situaciones, puede ser apropiado aproximar la derivada utilizando la pendiente de una línea que pase por dos puntos cercanos en la función. El uso de esta aproximación daría como resultado algo así como el método de la secante cuya convergencia es más lenta que la del método de Newton.
Es importante revisar la prueba de convergencia cuadrática del método de Newton antes de implementarlo. En concreto, se deben revisar los supuestos que se hacen en la prueba. En las situaciones en las que el método no logra converger, es porque no se cumplen los supuestos que se hicieron en esta prueba.
Por ejemplo, en algunos casos, si la primera derivada no se comporta bien en la vecindad de una raíz particular, entonces es posible que el método de Newton no converja sin importar dónde se establezca la inicialización. En algunos casos, el método de Newton se puede estabilizar mediante el uso de una sobre-relajación sucesiva , o se puede aumentar la velocidad de convergencia mediante el uso del mismo método.
En una implementación robusta del método de Newton, es común poner límites al número de iteraciones, limitar la solución a un intervalo que se sabe que contiene la raíz y combinar el método con un método de búsqueda de raíces más robusto.
Si la raíz que se busca tiene una multiplicidad mayor que uno, la tasa de convergencia es meramente lineal (los errores se reducen por un factor constante en cada paso) a menos que se tomen medidas especiales. Cuando hay dos o más raíces que están próximas entre sí, pueden ser necesarias muchas iteraciones antes de que las iteraciones se acerquen lo suficiente a una de ellas para que la convergencia cuadrática sea evidente. Sin embargo, si se conoce la multiplicidad m de la raíz, el siguiente algoritmo modificado conserva la tasa de convergencia cuadrática: [4]
Esto es equivalente a utilizar una sobre-relajación sucesiva . Por otra parte, si no se conoce la multiplicidad m de la raíz, es posible estimar m después de realizar una o dos iteraciones y luego utilizar ese valor para aumentar la tasa de convergencia.
Si la multiplicidad m de la raíz es finita entonces g ( x ) = f ( x )/f ′ ( x ) tendrá una raíz en la misma posición con multiplicidad 1. La aplicación del método de Newton para encontrar la raíz de g ( x ) recupera la convergencia cuadrática en muchos casos, aunque generalmente involucra la segunda derivada de f ( x ) . En un caso particularmente simple, si f ( x ) = x m entonces g ( x ) = incógnita/metro y el método de Newton encuentra la raíz en una sola iteración con
Supongamos que la función f tiene un cero en α , es decir, f ( α ) = 0 , y f es diferenciable en un entorno de α .
Si f es continuamente diferenciable y su derivada es distinta de cero en α , entonces existe un entorno de α tal que para todos los valores iniciales x 0 en ese entorno, la secuencia ( x n ) convergerá a α . [5]
Si f es continuamente diferenciable, su derivada es distinta de cero en α y tiene una segunda derivada en α , entonces la convergencia es cuadrática o más rápida. Si la segunda derivada no es cero en α , entonces la convergencia es meramente cuadrática. Si la tercera derivada existe y está acotada en un entorno de α , entonces:
dónde
Si la derivada es 0 en α , entonces la convergencia suele ser solo lineal. Específicamente, si f es dos veces continuamente diferenciable, f ′ ( α ) = 0 y f ″ ( α ) ≠ 0 , entonces existe un entorno de α tal que, para todos los valores iniciales x 0 en ese entorno, la secuencia de iteraciones converge linealmente, con una tasa 1/2 . [6] Alternativamente, si f ′ ( α ) = 0 y f ′ ( x ) ≠ 0 para x ≠ α , x en un entorno U de α , siendo α un cero de multiplicidad r , y si f ∈ C r ( U ) , entonces existe un entorno de α tal que, para todos los valores iniciales x 0 en ese entorno, la secuencia de iteraciones converge linealmente.
Sin embargo, ni siquiera la convergencia lineal está garantizada en situaciones patológicas.
En la práctica, estos resultados son locales y el entorno de convergencia no se conoce de antemano. Pero también hay algunos resultados sobre convergencia global: por ejemplo, dado un entorno derecho U + de α , si f es dos veces diferenciable en U + y si f ′ ≠ 0 , f · f ″ > 0 en U + , entonces, para cada x 0 en U + la secuencia x k es monótonamente decreciente hasta α .
Según el teorema de Taylor , cualquier función f ( x ) que tenga una segunda derivada continua puede representarse mediante un desarrollo en torno a un punto cercano a una raíz de f ( x ) . Supongamos que esta raíz es α . Entonces el desarrollo de f ( α ) en torno a x n es:
( 1 ) |
donde la forma de Lagrange del resto de la expansión de la serie de Taylor es
donde ξ n está entre x n y α .
Como α es la raíz, ( 1 ) se convierte en:
( 2 ) |
Dividiendo la ecuación ( 2 ) por f ′ ( x n ) y reordenando se obtiene
( 3 ) |
Recordando que x n + 1 se define por
( 4 ) |
Uno encuentra que
Eso es,
( 5 ) |
Tomando el valor absoluto de ambos lados se obtiene
( 6 ) |
La ecuación ( 6 ) muestra que el orden de convergencia es al menos cuadrático si se cumplen las siguientes condiciones:
donde M viene dada por
Si se cumplen estas condiciones,
Supongamos que f ( x ) es una función cóncava en un intervalo, que es estrictamente creciente . Si es negativa en el extremo izquierdo y positiva en el extremo derecho, el teorema del valor intermedio garantiza que hay un cero ζ de f en algún lugar del intervalo. A partir de los principios geométricos, se puede ver que la iteración de Newton x i que comienza en el extremo izquierdo es monótonamente creciente y convergente, necesariamente a ζ . [7]
Joseph Fourier introdujo una modificación del método de Newton comenzando en el punto final derecho:
Esta sucesión es monótonamente decreciente y convergente. Pasando al límite en esta definición, se puede ver que el límite de y i también debe ser el cero ζ . [7]
Por lo tanto, en el caso de una función cóncava creciente con un cero, la inicialización es en gran medida irrelevante. La iteración de Newton que comience en cualquier lugar a la izquierda del cero convergerá, al igual que la iteración de Newton modificada de Fourier que comience en cualquier lugar a la derecha del cero. La precisión en cualquier paso de la iteración se puede determinar directamente a partir de la diferencia entre la ubicación de la iteración desde la izquierda y la ubicación de la iteración desde la derecha. Si f es dos veces continuamente diferenciable, se puede demostrar utilizando el teorema de Taylor que
mostrando que esta diferencia de ubicaciones converge cuadráticamente a cero. [7]
Todo lo anterior se puede extender a sistemas de ecuaciones en múltiples variables, aunque en ese contexto los conceptos relevantes de monotonía y concavidad son más sutiles de formular. [8] En el caso de ecuaciones individuales en una sola variable, la convergencia monótona anterior del método de Newton también se puede generalizar para reemplazar la concavidad por condiciones de positividad o negatividad en una derivada arbitraria de orden superior de f . Sin embargo, en esta generalización, la iteración de Newton se modifica para basarse en polinomios de Taylor en lugar de la línea tangente . En el caso de la concavidad, esta modificación coincide con el método estándar de Newton. [9]
El método de Newton es uno de los muchos métodos conocidos para calcular raíces cuadradas . Dado un número positivo a , el problema de encontrar un número x tal que x 2 = a es equivalente a encontrar una raíz de la función f ( x ) = x 2 − a . La iteración de Newton definida por esta función está dada por
Esto coincide con el método "babilónico" de hallar raíces cuadradas , que consiste en reemplazar una raíz aproximada x n por la media aritmética de x n y un ⁄ x n . Al realizar esta iteración, es posible evaluar una raíz cuadrada con cualquier precisión deseada utilizando únicamente las operaciones aritméticas básicas .
Las siguientes tres tablas muestran ejemplos del resultado de este cálculo para hallar la raíz cuadrada de 612, con la iteración inicializada en los valores 1, 10 y −20. Cada fila de una columna " x n " se obtiene aplicando la fórmula anterior a la entrada que se encuentra por encima de ella, por ejemplo
xn | f ( xn ) | xn | f ( xn ) | xn | f ( xn ) | ||
---|---|---|---|---|---|---|---|
1 | −611 | 10 | −512 | -2 0 | −212 | ||
306.5 | 9.3330 × 10 4 | 35.6 | 655.36 | -2 5,3 | 28.09 | ||
154.2483686786 | 2,3180 × 10 4 | 2 6.3955056180 | 84.722 | -24,7 448616601 | 0,30818 | ||
79.1079978644 | 5,6461 × 10 3 | 24.7 906354925 | 2.5756 | -24.73863 45374 | 3,8777 × 10 −5 | ||
43.4221286822 | 1,2735 × 10 3 | 24.7386 882941 | 2,6985 × 10 −3 | -24.7386337537 | 6,1424 × 10 −13 | ||
2 8.7581624288 | 215.03 | 24.738633753 8 | 2,9746 × 10 −9 | ||||
2 5.0195385369 | 13.977 | ||||||
24.7 402106712 | 7,8024 × 10 −2 | ||||||
24.738633 8040 | 2,4865 × 10 −6 | ||||||
24.7386337537 | 2,5256 × 10 −15 |
Los dígitos correctos están subrayados. Se puede ver que con sólo unas pocas iteraciones se puede obtener una solución precisa hasta muchos decimales. La primera tabla muestra que esto es cierto incluso si la iteración de Newton se inicializara con la estimación muy inexacta de 1 .
Al calcular cualquier raíz cuadrada distinta de cero, la primera derivada de f debe ser distinta de cero en la raíz, y f es una función suave. Por lo tanto, incluso antes de cualquier cálculo, se sabe que cualquier iteración de Newton convergente tiene una tasa de convergencia cuadrática. Esto se refleja en las tablas anteriores por el hecho de que una vez que una iteración de Newton se acerca a la raíz, la cantidad de dígitos correctos aproximadamente se duplica con cada iteración.
Consideremos el problema de hallar el número positivo x con cos x = x 3 . Podemos reformularlo como hallar el cero de f ( x ) = cos( x ) − x 3 . Tenemos f ′ ( x ) = −sin( x ) − 3 x 2 . Como cos( x ) ≤ 1 para todo x y x 3 > 1 para x > 1 , sabemos que nuestra solución se encuentra entre 0 y 1.
Un valor inicial de 0 dará lugar a un resultado indefinido, lo que ilustra la importancia de utilizar un punto de partida cercano a la solución. Por ejemplo, con un valor inicial x 0 = 0,5 , la secuencia dada por el método de Newton es:
En el ejemplo anterior, los dígitos correctos están subrayados. En particular, x 6 es correcto hasta 12 decimales. Vemos que la cantidad de dígitos correctos después del punto decimal aumenta de 2 (para x 3 ) a 5 y 10, lo que ilustra la convergencia cuadrática.
La función f ( x ) = x 2 tiene una raíz en 0. [10] Dado que f es continuamente diferenciable en su raíz, la teoría garantiza que el método de Newton, inicializado lo suficientemente cerca de la raíz, convergerá. Sin embargo, dado que la derivada f ′ es cero en la raíz, la convergencia cuadrática no está asegurada por la teoría. En este ejemplo particular, la iteración de Newton está dada por
De esto se desprende que el método de Newton podría inicializarse en cualquier punto y converger a cero, pero sólo a una velocidad lineal. Si se inicializa en 1, se necesitarían docenas de iteraciones antes de lograr una precisión de diez dígitos.
La función f ( x ) = x + x 4/3 también tiene una raíz en 0, donde es continuamente diferenciable. Aunque la primera derivada f ′ es distinta de cero en la raíz, la segunda derivada f ′′ es inexistente allí, por lo que no se puede garantizar la convergencia cuadrática. De hecho, la iteración de Newton está dada por
A partir de esto, se puede ver que la tasa de convergencia es superlineal pero subcuadrática. Esto se puede ver en las siguientes tablas, la izquierda de las cuales muestra el método de Newton aplicado a la anterior f ( x ) = x + x 4/3 y la derecha de las cuales muestra el método de Newton aplicado a f ( x ) = x + x 2 . La convergencia cuadrática en iteración que se muestra a la derecha se ilustra por los órdenes de magnitud en la distancia desde la iteración hasta la raíz verdadera (0,1,2,3,5,10,20,39,...) que se duplica aproximadamente de fila a fila. Mientras que la convergencia a la izquierda es superlineal, el orden de magnitud solo se multiplica por aproximadamente 4/3 de fila a fila (0,1,2,4,5,7,10,13,...).
xn | x + x4/3 n | xn | x + x2 n | |
---|---|---|---|---|
1 | 2 | 1 | 2 | |
1,4286 × 10 −1 | 2,1754 × 10 −1 | 3,3333 × 10 −1 | 4,4444 × 10 −1 | |
1,4669 × 10 −2 | 1,8260 × 10 −2 | 6,6666 × 10 −2 | 7,1111 × 10 −2 | |
9,0241 × 10 −4 | 9,8961 × 10 −4 | 3,9216 × 10 −3 | 3,9369 × 10 −3 | |
2,5750 × 10 −5 | 2,6511 × 10 −5 | 1,5259 × 10 −5 | 1,5259 × 10 −5 | |
2,4386 × 10 −7 | 2,4539 × 10 −7 | 2,3283 × 10 −10 | 2,3283 × 10 −10 | |
5,0366 × 10 −10 | 5.0406 × 10 −10 | 5,4210 × 10 −20 | 5,4210 × 10 −20 | |
1,3344 × 10 −13 | 1,3344 × 10 −13 | 2,9387 × 10 −39 | 2,9387 × 10 −39 |
La tasa de convergencia se distingue del número de iteraciones necesarias para alcanzar una precisión dada. Por ejemplo, la función f ( x ) = x 20 − 1 tiene una raíz en 1. Dado que f ′(1) ≠ 0 y f es suave, se sabe que cualquier iteración de Newton convergente a 1 convergerá cuadráticamente. Sin embargo, si se inicializa en 0,5, las primeras iteraciones del método de Newton son aproximadamente 26214, 24904, 23658, 22476, disminuyendo lentamente, y solo la iteración 200 es 1,0371. Las siguientes iteraciones son 1,0103, 1,00093, 1,0000082 y 1,00000000065, que ilustran la convergencia cuadrática. Esto resalta que la convergencia cuadrática de una iteración de Newton no significa que solo se requieran unas pocas iteraciones; esto solo se aplica una vez que la secuencia de iteraciones está suficientemente cerca de la raíz. [11]
La función f ( x ) = x (1 + x 2 ) −1/2 tiene raíz en 0. La iteración de Newton está dada por
De esto se desprende que hay tres fenómenos posibles para una iteración de Newton. Si se inicializa estrictamente entre ±1 , la iteración de Newton convergerá (super)cuadráticamente a 0; si se inicializa exactamente en 1 o −1 , la iteración de Newton oscilará infinitamente entre ±1 ; si se inicializa en cualquier otro lugar, la iteración de Newton divergerá. [12] Esta misma tricotomía ocurre para f ( x ) = arctan x . [10]
En los casos en que la función en cuestión tiene múltiples raíces, puede ser difícil controlar, mediante la elección de la inicialización, qué raíz (si la hay) se identifica mediante el método de Newton. Por ejemplo, la función f ( x ) = x ( x 2 − 1)( x − 3)e −( x − 1) 2 /2 tiene raíces en −1, 0, 1 y 3. [13] Si se inicializa en −1,488, la iteración de Newton converge a 0; si se inicializa en −1,487, diverge a ∞ ; si se inicializa en −1,486, converge a −1; si se inicializa en −1,485, diverge a −∞ ; si se inicializa en −1,4843, converge a 3; Si se inicializa en −1,484, converge a 1. Este tipo de dependencia sutil de la inicialización no es poco común; se estudia con frecuencia en el plano complejo en forma de fractal de Newton .
Consideremos el problema de hallar una raíz de f ( x ) = x 1/3 . La iteración de Newton es
A menos que el método de Newton se inicialice en la raíz exacta 0, se observa que la secuencia de iteraciones no convergerá. Por ejemplo, incluso si se inicializa en el valor razonablemente preciso de 0,001, las primeras iteraciones son −0,002, 0,004, −0,008, 0,016, y alcanzan 1048,58, −2097,15, ... en la iteración número 20. Esta falla de convergencia no se contradice con la teoría analítica, ya que en este caso f no es diferenciable en su raíz.
En el ejemplo anterior, la falta de convergencia se refleja en la incapacidad de f ( x n ) para acercarse a cero a medida que n aumenta, así como en el hecho de que las iteraciones sucesivas se van distanciando cada vez más. Sin embargo, la función f ( x ) = x 1/3 e − x 2 también tiene una raíz en 0. La iteración de Newton está dada por
En este ejemplo, donde nuevamente f no es diferenciable en la raíz, cualquier iteración de Newton que no comience exactamente en la raíz divergirá, pero tanto x n + 1 − x n como f ( x n ) convergerán a cero. [14] Esto se ve en la siguiente tabla que muestra las iteraciones con inicialización 1:
xn | f ( xn ) |
---|---|
1 | 0,36788 |
1.6 | 9,0416 × 10 −2 |
1.9342 | 2,9556 × 10 −2 |
2.2048 | 1,0076 × 10 −2 |
2.4396 | 3,5015 × 10 −3 |
2.6505 | 1,2307 × 10 −3 |
2.8437 | 4,3578 × 10 −4 |
3.0232 | 1,5513 × 10 −4 |
Aunque la convergencia de x n + 1 − x n en este caso no es muy rápida, se puede demostrar a partir de la fórmula de iteración. Este ejemplo resalta la posibilidad de que un criterio de detención para el método de Newton basado únicamente en la pequeñez de x n + 1 − x n y f ( x n ) pueda identificar falsamente una raíz.
Es fácil encontrar situaciones en las que el método de Newton oscila infinitamente entre dos valores distintos. Por ejemplo, para que el método de Newton aplicado a una función f oscile entre 0 y 1, sólo es necesario que la recta tangente a f en 0 intersecte el eje x en 1 y que la recta tangente a f en 1 intersecte el eje x en 0. [14] Este es el caso, por ejemplo, si f ( x ) = x 3 − 2 x + 2 . Para esta función, es incluso el caso de que la iteración de Newton inicializada suficientemente cerca de 0 o 1 oscile asintóticamente entre estos valores. Por ejemplo, el método de Newton inicializado en 0,99 da como resultado iteraciones 0,99, −0,06317, 1,00628, 0,03651, 1,00196, 0,01162, 1,00020, 0,00120, 1,000002, etc. Este comportamiento está presente a pesar de la presencia de una raíz de f aproximadamente igual a −1,76929.
En algunos casos, ni siquiera es posible realizar la iteración de Newton. Por ejemplo, si f ( x ) = x 2 − 1 , entonces la iteración de Newton se define por
Por lo tanto, el método de Newton no se puede inicializar en 0, ya que esto haría que x 1 no estuviera definido. Geométricamente, esto se debe a que la línea tangente a f en 0 es horizontal (es decir, f ′(0) = 0 ), y nunca interseca el eje x .
Incluso si se selecciona la inicialización de manera que pueda comenzar la iteración de Newton, el mismo fenómeno puede impedir que la iteración continúe indefinidamente.
Si f tiene un dominio incompleto, es posible que el método de Newton envíe las iteraciones fuera del dominio, de modo que sea imposible continuar la iteración. [14] Por ejemplo, la función logaritmo natural f ( x ) = ln x tiene una raíz en 1 y está definida solo para x positivo . La iteración de Newton en este caso está dada por
Por lo tanto, si la iteración se inicializa en e , la siguiente iteración es 0; si la iteración se inicializa en un valor mayor que e , la siguiente iteración es negativa. En cualquier caso, el método no puede continuar.
También se puede utilizar el método de Newton para resolver sistemas de k ecuaciones, lo que equivale a encontrar los ceros (simultáneos) de k funciones continuamente diferenciables. Esto es equivalente a encontrar los ceros de una única función con valor vectorial. En la formulación dada anteriormente, los escalares x n se reemplazan por vectores x n y en lugar de dividir la función f ( x n ) por su derivada f ′ ( x n ) uno tiene que multiplicar por la izquierda la función F ( x n ) por la inversa de su matriz jacobiana k × k J F ( x n ) . [15] [16] [17] Esto da como resultado la expresión
o bien, resolviendo el sistema de ecuaciones lineales
para la incógnita x n + 1 − x n . [18]
La variante k -dimensional del método de Newton también se puede utilizar para resolver sistemas de ecuaciones mayores que k (no lineales) si el algoritmo utiliza la inversa generalizada de la matriz jacobiana no cuadrada J + = ( J T J ) −1 J T en lugar de la inversa de J . Si el sistema no lineal no tiene solución, el método intenta encontrar una solución en el sentido de mínimos cuadrados no lineales . Consulte el algoritmo de Gauss-Newton para obtener más información.
Por ejemplo, el siguiente conjunto de ecuaciones debe resolverse para el vector de puntos dado el vector de valores conocidos [19]
A continuación se definen la función vector y matriz jacobiana para la iteración k, y el vector de valores conocidos .
Nótese que podría haberse reescrito para absorber y, por lo tanto, eliminar de las ecuaciones. La ecuación para resolver en cada iteración es
y
Las iteraciones deben repetirse hasta que haya un valor aceptablemente pequeño para cumplir con los requisitos de la aplicación.
Si el vector se elige inicialmente como , es decir, y y se elige como 1,10 −3 , entonces el ejemplo converge después de cuatro iteraciones a un valor de
Las siguientes iteraciones se realizaron durante el curso de la solución.
Paso | Variable | Valor |
---|---|---|
0 | x = | |
f ( x ) = | ||
1 | J = | |
c = | ||
x = | ||
f ( x ) = | ||
2 | J = | |
c = | ||
x = | ||
f ( x ) = | ||
3 | J = | |
c = | ||
x = | ||
f ( x ) = | ||
4 | J = | |
c = | ||
x = | ||
f ( x ) = |
Cuando se trabaja con funciones complejas , el método de Newton se puede aplicar directamente para encontrar sus ceros. [20] Cada cero tiene una cuenca de atracción en el plano complejo, el conjunto de todos los valores iniciales que hacen que el método converja a ese cero en particular. Estos conjuntos se pueden representar como en la imagen que se muestra. Para muchas funciones complejas, los límites de las cuencas de atracción son fractales .
En algunos casos hay regiones en el plano complejo que no están en ninguna de estas cuencas de atracción, lo que significa que las iteraciones no convergen. Por ejemplo, [21] si uno usa una condición inicial real para buscar una raíz de x 2 + 1 , todas las iteraciones subsiguientes serán números reales y, por lo tanto, las iteraciones no pueden converger a ninguna raíz, ya que ambas raíces no son reales. En este caso, casi todas las condiciones iniciales reales conducen a un comportamiento caótico , mientras que algunas condiciones iniciales iteran hasta el infinito o hasta ciclos repetidos de cualquier longitud finita.
Curt McMullen ha demostrado que para cualquier posible algoritmo puramente iterativo similar al método de Newton, el algoritmo divergirá en algunas regiones abiertas del plano complejo cuando se aplique a algún polinomio de grado 4 o superior. Sin embargo, McMullen proporcionó un algoritmo generalmente convergente para polinomios de grado 3. [22] Además, para cualquier polinomio, Hubbard, Schleicher y Sutherland proporcionaron un método para seleccionar un conjunto de puntos iniciales de modo que el método de Newton converja con certeza en al menos uno de ellos. [23]
Otra generalización es el método de Newton para hallar una raíz de una función F definida en un espacio de Banach . En este caso la formulación es
donde F ′ ( X n ) es la derivada de Fréchet calculada en X n . Es necesario que la derivada de Fréchet sea invertible de forma acotada en cada X n para que el método sea aplicable. Una condición para la existencia y convergencia a una raíz está dada por el teorema de Newton-Kantorovich . [24]
En la década de 1950, John Nash desarrolló una versión del método de Newton para aplicarla al problema de construir incrustaciones isométricas de variedades generales de Riemann en el espacio euclidiano . El problema de pérdida de derivadas , presente en este contexto, hizo que la iteración estándar de Newton fuera inaplicable, ya que no podía continuar indefinidamente (y mucho menos converger). La solución de Nash implicó la introducción de operadores de suavizado en la iteración. Pudo demostrar la convergencia de su método de Newton suavizado, con el propósito de demostrar un teorema de función implícita para incrustaciones isométricas. En la década de 1960, Jürgen Moser demostró que los métodos de Nash eran lo suficientemente flexibles para aplicarse a problemas más allá de la incrustación isométrica, particularmente en mecánica celeste . Desde entonces, varios matemáticos, incluidos Mikhael Gromov y Richard Hamilton , han encontrado versiones abstractas generalizadas de la teoría de Nash-Moser. [25] [26] En la formulación de Hamilton, el teorema de Nash-Moser constituye una generalización del método de Newton del espacio de Banach que tiene lugar en ciertos espacios de Fréchet .
Cuando el jacobiano no está disponible o es demasiado costoso de calcular en cada iteración, se puede utilizar un método cuasi-Newton .
This section needs expansion. You can help by adding to it. (February 2019) |
En el análisis p -ádico, el método estándar para demostrar que una ecuación polinómica en una variable tiene una raíz p -ádica es el lema de Hensel , que utiliza la recursión del método de Newton en los números p -ádicos. Debido al comportamiento más estable de la adición y la multiplicación en los números p -ádicos en comparación con los números reales (específicamente, la bola unitaria en los p -ádicos es un anillo), la convergencia en el lema de Hensel se puede garantizar bajo hipótesis mucho más simples que en el método clásico de Newton en la línea real.
El método de Newton se puede generalizar con el análogo q de la derivada habitual. [27]
Una ecuación no lineal tiene múltiples soluciones en general. Pero si el valor inicial no es el adecuado, el método de Newton puede no converger a la solución deseada o puede converger a la misma solución encontrada anteriormente. Cuando ya hemos encontrado N soluciones de , entonces la siguiente raíz se puede encontrar aplicando el método de Newton a la siguiente ecuación: [28] [29]
Este método se aplica para obtener ceros de la función de Bessel de segundo tipo. [30]
El método de Newton modificado de Hirano es una modificación que conserva la convergencia del método de Newton y evita la inestabilidad. [31] Está desarrollado para resolver polinomios complejos.
La combinación del método de Newton con la aritmética de intervalos resulta muy útil en algunos contextos, ya que proporciona un criterio de parada más fiable que los habituales (que son un valor pequeño de la función o una pequeña variación de la variable entre iteraciones consecutivas). Además, esto puede detectar casos en los que el método de Newton converge teóricamente pero diverge numéricamente debido a una precisión de punto flotante insuficiente (este suele ser el caso de polinomios de gran grado, en los que un cambio muy pequeño de la variable puede cambiar drásticamente el valor de la función; véase el polinomio de Wilkinson ). [32] [33]
Consideremos f → C 1 ( X ) , donde X es un intervalo real, y supongamos que tenemos una extensión de intervalo F ′ de f ′ , lo que significa que F ′ toma como entrada un intervalo Y ⊆ X y genera como salida un intervalo F ′ ( Y ) tal que:
También asumimos que 0 ∉ F ′ ( X ) , por lo que en particular f tiene como máximo una raíz en X . Luego definimos el operador de intervalo de Newton mediante:
donde m ∈ Y . Nótese que la hipótesis sobre F ′ implica que N ( Y ) está bien definido y es un intervalo (ver aritmética de intervalos para más detalles sobre operaciones de intervalos). Esto naturalmente conduce a la siguiente secuencia:
El teorema del valor medio asegura que si hay una raíz de f en X k , entonces también está en X k + 1 . Además, la hipótesis sobre F′ asegura que X k + 1 es como máximo la mitad del tamaño de X k cuando m es el punto medio de Y , por lo que esta secuencia converge hacia [ x* , x* ] , donde x* es la raíz de f en X .
Si F ′ ( X ) contiene estrictamente 0, el uso de la división de intervalo extendido produce una unión de dos intervalos para N ( X ) ; por lo tanto, las raíces múltiples se separan y acotan automáticamente.
El método de Newton se puede utilizar para hallar un mínimo o un máximo de una función f ( x ) . La derivada es cero en un mínimo o un máximo, por lo que los mínimos y máximos locales se pueden hallar aplicando el método de Newton a la derivada. [34] La iteración se convierte en:
Una aplicación importante es la división de Newton-Raphson , que se puede utilizar para encontrar rápidamente el recíproco de un número a , utilizando solo la multiplicación y la resta, es decir, el número x tal que1/incógnita = a . Podemos reformularlo como encontrar el cero de f ( x ) = 1/incógnita − a . Tenemos f ′ ( x ) = − 1/x2 .
La iteración de Newton es
Por lo tanto, la iteración de Newton sólo necesita dos multiplicaciones y una resta.
Este método también es muy eficiente para calcular el inverso multiplicativo de una serie de potencias .
Muchas ecuaciones trascendentales pueden resolverse con una precisión arbitraria utilizando el método de Newton. Por ejemplo, encontrar la función de densidad de probabilidad acumulada , como una distribución normal para ajustarse a una probabilidad conocida, generalmente implica funciones integrales sin medios conocidos para resolverlas en forma cerrada. Sin embargo, el cálculo de las derivadas necesarias para resolverlas numéricamente con el método de Newton es generalmente conocido, lo que hace posibles las soluciones numéricas. Para ver un ejemplo, consulte la solución numérica de la distribución normal acumulada inversa .
Se ha establecido una verificación numérica para soluciones de ecuaciones no lineales utilizando el método de Newton varias veces y formando un conjunto de soluciones candidatas. [ cita requerida ]
El siguiente es un ejemplo de una posible implementación del método de Newton en el lenguaje de programación Python (versión 3.x) para encontrar la raíz de una función f
que tiene derivada f_prime
.
La estimación inicial será x 0 = 1 y la función será f ( x ) = x 2 − 2 de modo que f ′ ( x ) = 2 x .
Cada nueva iteración del método de Newton se denotará por x1
. Verificaremos durante el cálculo si el denominador ( yprime
) se vuelve demasiado pequeño (menor que epsilon
), lo que sería el caso si f ′ ( x n ) ≈ 0 , ya que de lo contrario se podría introducir una gran cantidad de error.
definición f ( x ): devuelve x ** 2 - 2 # f(x) = x^2 - 2definición f_prime ( x ):devuelve 2 * x # f'(x) = 2xdef newtons_method ( x0 , f , f_prime , tolerancia , épsilon , máx_iteraciones ): """El método de Newton Argumentos: x0: La suposición inicial f: La función cuya raíz estamos tratando de encontrar f_prime: La derivada de la función Tolerancia: Detenerse cuando las iteraciones cambien en una cantidad menor a esta epsilon: No divida por un número menor que este max_iterations: El número máximo de iteraciones a calcular """ para _ en rango ( max_iteraciones ): y = f ( x0 ) yprime = f_prime ( x0 ) si abs ( yprime ) < epsilon : # Renunciar si el denominador es demasiado pequeño romper x1 = x0 - y / yprime # Haz el cálculo de Newton si abs ( x1 - x0 ) <= tolerancia : # Detenerse cuando el resultado esté dentro de la tolerancia deseada devuelve x1 # x1 es una solución dentro de la tolerancia y el número máximo de iteraciones x0 = x1 # Actualizar x0 para iniciar el proceso nuevamente devuelve Ninguno # El método de Newton no convergió