Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
import numpy as np
import matplotlib.pyplot as plt
def simpson_1_3_integration(f, a, b, n):
"""
Implementa el método de Simpson 1/3 para la integración numérica de una función.
Argumentos:
- f: función a integrar
- a: límite inferior de integración
- b: límite superior de integración
- n: número de subintervalos
Retorna:
- El valor de la integral numérica
"""
if n % 2 != 0:
raise ValueError("El número de subintervalos debe ser par.")
h = (b - a) / n # Tamaño del subintervalo
# Suma los valores de la función en los puntos interiores
sum_int = 0
for i in range(1, n):
x = a + i * h
if i % 2 == 0:
sum_int += 2 * f(x)
else:
sum_int += 4 * f(x)
# Calcula la integral numérica
integral = (h / 3) * (f(a) + sum_int + f(b))
return integral
# Función de ejemplo
def f(x):
return (x+2/x)**2
# Límites de integración
a = 2
b = 0.5
# Número de subintervalos
n = 10
# Aplica el método de Simpson 1/3
integral = simpson_1_3_integration(f, a, b, n)
# Imprime el resultado de la integral
print("Resultado de la integral:", integral)
# Crea un conjunto de puntos para graficar la función
x_vals = np.linspace(a, b, 100)
y_vals = f(x_vals)
# Grafica la función y el área bajo la curva
plt.figure()
plt.plot(x_vals, y_vals, label='Función')
plt.fill_between(x_vals, y_vals, alpha=0.2, label='Área bajo la curva')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Integración por Método de Simpson 1/3')
plt.legend()
plt.grid(True)
plt.show()