import numpy as np
# ==============================
# Función de prueba
# ==============================
def f(x):
return np.exp(x)
# Derivada exacta de f(x)=e^x
def df_exacta(x):
return np.exp(x)
# Segunda derivada exacta de f(x)=e^x
def d2f_exacta(x):
return np.exp(x)
# ==============================
# Diferencias finitas
# ==============================
def diferencia_adelante(f, x, h):
"""
Aproxima f'(x) usando diferencia finita hacia adelante.
"""
return (f(x + h) - f(x)) / h
def diferencia_atras(f, x, h):
"""
Aproxima f'(x) usando diferencia finita hacia atrás.
"""
return (f(x) - f(x - h)) / h
def diferencia_centrada(f, x, h):
"""
Aproxima f'(x) usando diferencia finita centrada.
"""
return (f(x + h) - f(x - h)) / (2*h)
def segunda_derivada(f, x, h):
"""
Aproxima f''(x) usando diferencia finita centrada.
"""
return (f(x + h) - 2*f(x) + f(x - h)) / h**2
# ==============================
# Datos del problema
# ==============================
x0 = 1.0
h = 0.01
# ==============================
# Cálculos
# ==============================
D_adelante = diferencia_adelante(f, x0, h)
D_atras = diferencia_atras(f, x0, h)
D_centrada = diferencia_centrada(f, x0, h)
D2 = segunda_derivada(f, x0, h)
exacta_primera = df_exacta(x0)
exacta_segunda = d2f_exacta(x0)
# ==============================
# Resultados
# ==============================
print("Punto x0 =", x0)
print("Paso h =", h)
print()
print("Primera derivada exacta:")
print(exacta_primera)
print()
print("Diferencia hacia adelante:")
print(D_adelante)
print("Error absoluto:", abs(exacta_primera - D_adelante))
print()
print("Diferencia hacia atrás:")
print(D_atras)
print("Error absoluto:", abs(exacta_primera - D_atras))
print()
print("Diferencia centrada:")
print(D_centrada)
print("Error absoluto:", abs(exacta_primera - D_centrada))
print()
print("Segunda derivada exacta:")
print(exacta_segunda)
print()
print("Segunda derivada aproximada:")
print(D2)
print("Error absoluto:", abs(exacta_segunda - D2))
To embed this project on your website, copy the following code and paste it into your website's HTML: