Inicio › Temas › Métodos numéricos
🔢 Métodos numéricos nivel medio
Método de Newton-Raphson
Seguir la tangente hasta el eje: convergencia cuadrática cuando funciona y fallos famosos cuando no.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
El método de Newton-Raphson sustituye la curva por su recta tangente. Partiendo de una aproximación x₀, se traza la tangente a la gráfica en (x₀, f(x₀)) y se toma como nueva aproximación el punto donde esa recta corta al eje X. La fórmula que resulta es xₙ₊₁ = xₙ − f(xₙ)/f'(xₙ), y se repite hasta que dos iteraciones consecutivas difieran menos de la tolerancia deseada.
Cuando la raíz r es simple (f'(r) ≠ 0) y el punto inicial está suficientemente cerca, la convergencia es cuadrática: el error de cada paso es proporcional al cuadrado del anterior, eₙ₊₁ ≈ |f''(r)/(2f'(r))| · eₙ². En la práctica el número de cifras correctas se duplica en cada iteración: de 2 se pasa a 4, luego a 8 y a 16, de modo que cuatro o cinco pasos bastan para agotar la precisión del punto flotante. Es el motivo de que el algoritmo de la raíz cuadrada de las calculadoras sea Newton aplicado a x² − a.
El precio de esa velocidad es la fragilidad. Si f'(xₙ) = 0 la tangente es horizontal y el método se rompe; si la derivada es pequeña, el salto puede lanzar la iteración lejos de la raíz; con f(x) = ∛x diverge desde cualquier punto inicial (cada paso duplica la distancia), y con f(x) = x² + 1, que no tiene raíces reales, vaga sin rumbo. En raíces múltiples la convergencia se degrada a lineal. Por eso los programas serios combinan Newton con bisección o exigen un buen punto de partida. Sus variantes, el método de la secante (que aproxima f' con dos puntos) y el Newton multidimensional (con la matriz jacobiana), sostienen desde la optimización hasta los simuladores de circuitos.
Fórmulas clave
- Iteración de Newtonxₙ₊₁ = xₙ − f(xₙ) / f'(xₙ)
- Recta tangente usaday = f(xₙ) + f'(xₙ)(x − xₙ)
- Convergencia cuadráticaeₙ₊₁ ≈ |f''(r) / (2 f'(r))| · eₙ²
- Raíz cuadrada de axₙ₊₁ = (xₙ + a/xₙ) / 2
- Método de la secantexₙ₊₁ = xₙ − f(xₙ)(xₙ − xₙ₋₁) / [f(xₙ) − f(xₙ₋₁)]
Dónde se aplica
Los simuladores de circuitos (SPICE) resuelven en cada instante un sistema no lineal con la versión multidimensional de Newton, y lo mismo hacen los programas de análisis estructural con grandes deformaciones. En finanzas, la volatilidad implícita de una opción se obtiene aplicando Newton a la fórmula de Black-Scholes, porque su derivada (la vega) tiene expresión cerrada. Y en robótica, la cinemática inversa (qué ángulos deben adoptar las articulaciones para que la mano llegue a un punto) se resuelve iterando Newton con la matriz jacobiana del brazo.
Con programación (Python)
import math
def newton(f, df, x0, tol=1e-12, max_iter=20):
x = x0
for n in range(1, max_iter + 1):
dx = f(x) / df(x)
x -= dx
print(f"n={n} x={x:.15f} |Δx|={abs(dx):.2e}")
if abs(dx) < tol:
return x
return x
print("√2 con f(x) = x² − 2, x0 = 1")
r = newton(lambda x: x*x - 2, lambda x: 2*x, 1.0)
print("error final:", abs(r - math.sqrt(2)))
print("cos x = x con x0 = 1")
s = newton(lambda x: math.cos(x) - x, lambda x: -math.sin(x) - 1, 1.0)
print("cos(s) - s =", math.cos(s) - s)
print("Fallo con f(x) = x^(1/3) desde x0 = 1: cada paso da x -> -2x")
x = 1.0
for n in range(5):
x = x - 3 * x # f/f' = 3x para la raíz cúbica
print(" x =", x)La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.
Temas relacionados
Método de bisección · Iteración de punto fijo · Recta tangente y aproximación lineal · Descenso del gradiente