Referencia: Chapra 21.2.1 p.631 pdf.655, Burden 4.2 p192 pdf202, Rodriguez 7.1.8 p288
Es el resultado cuando para el integral se utiliza el resultado de una interpolación con polinomio de tercer grado.
I = \int_a^b f(x) \delta x \cong \int_a^b f_3 (x) \delta xAl desarrollar la fórmula se la fórmula de la Regla de Simpson de 3/8 para un segmento con tres tramos con distancia h:
I\cong \frac{3h}{8}[f(x_0)+3f(x_1) +3 f(x_2)+f(x_3)]siendo el tramo de un segmento [a,b]
h=\frac{b-a}{3}Error de Truncamiento
error_{truncamiento} = -\frac{3}{80} h^5 f^{(4)} (z)donde z se encuentra entre[a,b]
Algoritmo en Python
A partir del algoritmo para Simpson de 1/3, realizar las modificaciones para obtener el algoritmo para Simpson de 3/8
Resultados de algoritmo
tramos: 6 Integral con Simpson 3/8: 2.0542043057079566
Instrucciones en Python
# Integración Simpson 1/3 # Usando una muestras xi,fi import numpy as np import matplotlib.pyplot as plt def integrasimpson38_fi(xi,fi,tolera = 1e-10): ''' sobre muestras de fi para cada xi integral con método de Simpson 3/8 respuesta es np.nan para tramos desiguales, no hay suficientes puntos. ''' n = len(xi) i = 0 suma = 0 while not(i>=(n-3)): h = xi[i+1]-xi[i] h1 = (xi[i+2]-xi[i+1]) h2 = (xi[i+3]-xi[i+2]) dh = abs(h-h1)+abs(h-h2) if dh<tolera:# tramos iguales unS38 = fi[i]+3*fi[i+1]+3*fi[i+2]+fi[i+3] unS38 = (3/8)*h*unS38 suma = suma + unS38 else: # tramos desiguales suma = 'tramos desiguales' i = i + 3 if (i+1)<n: # incompleto, tramos por calcular suma = 'tramos incompletos, faltan ' suma = suma +str(n-(i+1))+' tramos' return(suma) # PROGRAMA ----------------- # INGRESO xi = [1. , 1.33333333, 1.66666667, 2. , 2.33333333, 2.66666667, 3. ] fi = [0.84147098, 1.12229722, 1.28506615, 1.28594075, 1.10453193, 0.74672307, 0.24442702] tolera = 1e-7 # PROCEDIMIENTO n = len(xi)-1 Area = integrasimpson38_fi(xi,fi,tolera) # SALIDA print('tramos: ',n) print('Integral con Simpson 3/8: ',Area) if type(Area)==str: print(' Revisar errores')