Método de integración Simpson 1/3
python
Código en python utilizando el método de Simpson 1 / 3 para integrales definidas, esta función recibe cuatro argumentos, el primero es el número de iteraciones (n) , el intervalo inferior (a) , el intervalo superior(b) , y la función que queremos integrar (f).
El valor de N es un entero.
El valor de los intervalos a y b son de tipo Float.
Y la función es un String por ejemplo «sin(x)».
Pseudo – código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Entradas a = intervalo inferior b = intervalo superior n = número de iteraciones f = función a integrar h = ( b - a ) / n suma = suma + (h / 3 ) * (f(a) + f(b)) for i=1 to n-1: xi = a + (i * h) si modulo de i == 0 entonces: suma = suma + 4/3 * (h * f(xi)) de lo contrario: suma = suma + 2/3* (h+ f(xi)) endfor imprimir suma |
Implementación en python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#!/usr/bin/env python # -*- coding: utf-8 -*- #Importamos math from math import * #Definimos la funcion #@ n: numero de x #@ a y b los intervalos de la integral #@ f: La funcion a integrar def simpson13(n, a, b, f): #calculamos h h = (b - a) / n #Inicializamos nuestra varible donde se almacenara las sumas suma = 0.0 #hacemos un ciclo para ir sumando las areas for i in range(1, n): #calculamos la x #x = a - h + (2 * h * i) x = a + i * h # si es par se multiplica por 4 if(i % 2 == 0): suma = suma + 2 * fx(x, f) #en caso contrario se multiplica por 2 else: suma = suma + 4 * fx(x, f) #sumamos los el primer elemento y el ultimo suma = suma + fx(a, f) + fx(b, f) #Multiplicamos por h/3 rest = suma * (h / 3) #Retornamos el resultado return (rest) #Funcion que nos ayuda a evaluar las funciones def fx(x, f): return eval(f) #valores de ejemplo para la funcion sin(x) con intervalos de n = 100 a = 0.0 b = 1.0 f = 'sin(x)' print(simpson13(n, a, b, f)) |