Logo Studenta

Metodo_euler

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 de Euler
def euler(f, a, b, n, y0):
 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] = y0 # Condición inicial
 
 # Iteración del método de Euler
 for i in range(n):
 y[i+1] = y[i] + h * f(x[i], y[i])
 
 return x, y
# Función de ejemplo
def f(x, y):
 return x * y
# Solución exacta (si está disponible)
def exact_solution(x):
 return np.exp(x**2/2)
# Intervalo de integración
a = 0
b = 1
# Número de subintervalos
n = 10
# Condición inicial
y0 = 1
# Calcular el método de Euler
x, y = euler(f, a, b, n, y0)
# Calcular la solución exacta (si está disponible)
exact_x = np.linspace(a, b, n+1)
exact_y = exact_solution(exact_x)
# Imprimir procedimiento
print("Procedimiento del método de Euler:")
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 de Euler')
plt.legend()
plt.grid(True)
plt.show()

Continuar navegando