Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
import numpy as np import matplotlib.pyplot as plt # Función para calcular el método del punto medio def punto_medio(f, a, b, n): h = (b - a) / n # Tamaño del intervalo x = np.linspace(a, b, n+1) # Puntos equidistantes y = np.zeros(n+1) # Vector para almacenar las soluciones y[0] = f(a) # Condición inicial # Iteración del método del punto medio for i in range(n): x_mid = (x[i] + x[i+1]) / 2 y_mid = y[i] + h * f(x[i]) / 2 y[i+1] = y[i] + h * f(x_mid) return x, y # Función de ejemplo def f(x): return x * np.exp(x) # Solución exacta def exact_solution(x): return (x - 1) * np.exp(x) # Intervalo de integración a = 0 b = 1 # Número de subintervalos n = 10 # Calcular el método del punto medio x, y = punto_medio(f, a, b, n) # Calcular la solución exacta exact_x = np.linspace(a, b, n+1) exact_y = exact_solution(exact_x) # Imprimir procedimiento print("Procedimiento del método del punto medio:") for i in range(n+1): print(f"y({x[i]:.2f}) = {y[i]:.6f}") # Graficar resultados plt.plot(exact_x, exact_y, 'g', label='Solución exacta') plt.plot(x, y, 'r.-', label='Aproximación') plt.xlabel('x') plt.ylabel('y') plt.title('Método del Punto Medio') plt.legend() plt.grid(True) plt.show()
Compartir