Actividad 05 · Método de Newton-Raphson

08/10/2025

Completada

Descripción

Solución en código Python al primer tema expuesto en clase, implementando el Método de Newton-Raphson con derivadas numéricas.

Código de ejemplo

"""
Método de Newton-Raphson 
Propio de: Nayelin Cutipa
Curso: Programación Numérica
Fecha: 08/10/2025
"""

import math

def derivada_numerica(f, x, h=1e-6):
    """Aproximación de la derivada de f en x usando diferencias centradas."""
    return (f(x + h) - f(x - h)) / (2 * h)

def newton_raphson(f, x0, tol=1e-12, max_iter=100):
    """
    Método de Newton-Raphson con derivada numérica automática.
    f: función
    x0: valor inicial
    tol: tolerancia
    max_iter: número máximo de iteraciones
    """
    x = x0
    for i in range(max_iter):
        fx = f(x)
        dfx = derivada_numerica(f, x)

        if dfx == 0:
            print(f"Error: la derivada se anuló en la iteración {i}.")
            return None

        x_next = x - fx / dfx

        if abs(x_next - x) < tol:
            print(f"Convergencia alcanzada en la iteración {i+1}")
            return x_next

        x = x_next

    print("El método no convergió en el número máximo de iteraciones.")
    return None

print("=== MÉTODO DE NEWTON-RAPHSON ===\n")

funcion = input("Ingresa f(x): ")      
x0 = float(input("Ingresa el valor inicial x0: "))

f = lambda x: eval(funcion)

raiz = newton_raphson(f, x0)

if raiz is not None:
    print(f"\nRaíz aproximada: {raiz:.12f}")