Método de Newton

Nivel UniversitarioDificultad ★★★★★Método⌖ Ver en el mapa

¿Qué es?

Para resolver f(x)=0f(x) = 0, sustituye ff por su recta tangente en la aproximación actual y salta a donde la tangente corta el cero: xk+1=xk−f(xk)/f′(xk)x_{k+1} = x_k - f(x_k)/f'(x_k). Cerca de una raíz simple el número de cifras correctas se duplica en cada paso.

¿Por qué existe?

Ecuaciones como cos⁡x=x\cos x = x o xex=3x e^x = 3 no tienen fórmula para su solución, y los sistemas no lineales de la ingeniería tienen miles de incógnitas. La idea de Newton: no sabemos resolver f=0f = 0, pero sí resolver exactamente su aproximación lineal, y repetir.

Intuición

Ponte en la curva en (xk,f(xk))(x_k, f(x_k)), baja por la tangente hasta tocar el eje xx y sube otra vez a la curva. Si la curva es casi recta cerca de la raíz, cada tangente cae muy cerca. El paso −f/f′-f/f' es «cuánto falta, con la pendiente actual, para llegar a cero». Falla cuando la pendiente es casi plana (saltos enormes) o cuando se empieza en la cuenca equivocada.

x₀ → f(x₀), f'(x₀) → x₁ = x₀ − f(x₀)/f'(x₀) → x₂ → … → raíz

Definición formal

Teorema (convergencia cuadrática local). Sea f∈C2f \in C^2 cerca de una raíz x∗x^\ast con f′(x∗)≠0f'(x^\ast) \ne 0. Entonces existe δ>0\delta > 0 tal que para todo x0x_0 con ∣x0−x∗∣<δ|x_0 - x^\ast| < \delta los iterados convergen a x∗x^\ast y

∣xk+1−x∗∣≤C ∣xk−x∗∣2,C≈∣f′′(x∗)2f′(x∗)∣.|x_{k+1} - x^\ast| \le C\,|x_k - x^\ast|^2, \qquad C \approx \left|\frac{f''(x^\ast)}{2f'(x^\ast)}\right|.

Idea de la demostración

Taylor en xkx_k: 0=f(x∗)=f(xk)+f′(xk)(x∗−xk)+12f′′(ξ)(x∗−xk)20 = f(x^\ast) = f(x_k) + f'(x_k)(x^\ast - x_k) + \tfrac12 f''(\xi)(x^\ast - x_k)^2. Divide entre f′(xk)f'(x_k) y usa la definición de xk+1x_{k+1}: xk+1−x∗=f′′(ξ)2f′(xk)(xk−x∗)2x_{k+1} - x^\ast = \frac{f''(\xi)}{2f'(x_k)}(x_k - x^\ast)^2.

Fórmulas

xk+1=xk−f(xk)f′(xk)x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}
xk+1=xk−JF(xk)−1F(xk)x_{k+1} = x_k - J_F(x_k)^{-1}F(x_k)
sistemas: resolver un sistema lineal con la jacobiana en cada paso
xk+1=xk−f′(xk)f′′(xk)x_{k+1} = x_k - \frac{f'(x_k)}{f''(x_k)}
optimización: Newton aplicado a f′=0f' = 0

¿Cómo se calcula?

x = x0
repetir:
    paso = f(x) / df(x)
    x = x - paso
hasta |paso| < tol·|x|  o  demasiadas iteraciones

En la práctica se añaden salvaguardas: volver a la bisección si el paso sale de un intervalo que horquilla la raíz, y amortiguar el paso (x−α f/f′x - \alpha\,f/f') lejos de la raíz.

Ejemplo

2\sqrt 2 como raíz de x2−2x^2 - 2: xk+1=12(xk+2xk)x_{k+1} = \frac12\left(x_k + \frac{2}{x_k}\right), el método babilónico, de hace 4000 años. Desde x0=1x_0 = 1: 1,51{,}5; 1,416671{,}41667; 1,41421571{,}4142157; 1,414213562374691{,}41421356237469; … Las cifras correctas van 1, 3, 6, 12: se duplican en cada paso.

Visualización interactiva

kxkf(xk)|xk − x*|cifras
Pulsa sobre la figura para elegir x₀. Cerca de una raíz simple el número de cifras correctas aproximadamente se duplica en cada paso. Prueba x³ − 2x + 2 desde x₀ = 0 (un ciclo de periodo 2), ∛x (los iterados se duplican y huyen) o arctan x desde |x₀| > 1,4.

¿Por qué importa?

El método de Newton está dentro de tu CPU (la división y la raíz cuadrada refinan una aproximación inicial con pasos de Newton), dentro de todo resolvedor no lineal del software de ingeniería, de los integradores físicos implícitos y de la cinemática inversa, y, aplicado a ∇f=0\nabla f = 0, es el prototipo de todos los métodos de optimización de segundo orden.

Aplicaciones en informática

  • Cálculo científico★★★★★fundamentalComputación científica y algoritmos

    El resolvedor por defecto de ecuaciones y sistemas no lineales, normalmente con salvaguardas.

  • Coma flotante (IEEE 754)★★★★★frecuenteComputación científica y algoritmos

    El hardware y las librerías calculan 1/x1/x y x\sqrt x con una aproximación de tabla refinada con iteraciones de Newton.

  • Cinemática inversa★★★★★frecuenteRobótica y control

    Calcular los ángulos articulares que alcanzan un objetivo es una iteración de Newton (Gauss–Newton) con la jacobiana del robot.

  • Motores físicos★★★★★avanzadaFísica y simulación

    Los integradores implícitos para sistemas rígidos (tela, cuerpos blandos) resuelven un sistema no lineal con Newton en cada paso.

Dónde aparece en IA

¿Dónde se utiliza?

Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:

Ejercicios

1Cálculo directo

Escribe la iteración de Newton para f(x)=x3−2x−5f(x) = x^3 - 2x - 5 y haz dos pasos desde x0=2x_0 = 2.

Solución

xk+1=xk−xk3−2xk−53xk2−2x_{k+1} = x_k - \frac{x_k^3 - 2x_k - 5}{3x_k^2 - 2}. x1=2−−110=2,1x_1 = 2 - \frac{-1}{10} = 2{,}1, x2=2,1−0,06111,23≈2,094568x_2 = 2{,}1 - \frac{0{,}061}{11{,}23} \approx 2{,}094568 (raíz 2,09455152{,}0945515).

2Interpretación gráfica

Usa la demo con f(x)=x3−2x+2f(x) = x^3 - 2x + 2 y x0=0x_0 = 0. ¿Qué pasa y por qué?

Solución

x1=0−2−2=1x_1 = 0 - \frac{2}{-2} = 1, x2=1−11=0x_2 = 1 - \frac{1}{1} = 0: un ciclo de periodo 2. Las tangentes rebotan entre 0 y 1 para siempre; la raíz real (≈−1,77\approx -1{,}77) está en otra cuenca.

3Informática

Deduce la iteración de Newton que calcula 1/a1/a usando solo multiplicaciones y restas.

Solución

Toma f(x)=1x−af(x) = \frac1x - a: xk+1=xk−1/xk−a−1/xk2=xk(2−axk)x_{k+1} = x_k - \frac{1/x_k - a}{-1/x_k^2} = x_k(2 - a x_k). Sin divisiones: así dividen muchos procesadores.

↑ ↓ para navegar · ↵ · Esc