Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Regla de Simpson

Titulo:localRegla de Simpson
Autor:Abraham Terán (abraham.teran@gmail.com)
Lenguaje:Python
Código que ejecuta la Regla de Simpson para Integración Numérica. El usuario ingresa n puntos conocidos, y el valor del codominio para los puntos medios que se necesitan para la regla entre cada par de puntos conocido se obtiene mediante Interpolación de Lagrange. Utiliza Numpy 1.7.0 para interpolación.
Escrito en Python 2.7.3
Comentarios: 0 Comentar Recomendar

# -*- coding: UTF-8 -*- # REGLA DE SIMPSON # Abraham Teran import numpy as np def prod(A): a = 1 for i in range(len(A)): a = a*A[i] return a def lagrange(A,n): results = [] lfun = np.arange((len(A[0]))**2,dtype=float) lfun.shape = (len(A[0]),len(A[0]))\ for i in range(len(A[0])): for j in range(len(lfun)): if i == j: lfun[i,j] = 1 else: lfun[i,j] = (n-A[0][j])/(A[0][i]-A[0][j])\ for i in range(len(A[1])): results.append(prod(lfun[i])*A[1][i])\ return sum(results) def main(): cantPoints = input("Ingrese cantidad de puntos conocidos> ")\ if cantPoints < 2: print "\nCANTIDAD DE PUNTOS CONOCIDOS >= 2\n" main()\ integs = [] points = [[],[]] midPoints = [[],[]]\ for i in range(cantPoints): print "\n( x",i,",y",i,")" x = float(input("Ingrese 'x'> ")) y = float(input("Ingrese 'y'> ")) points[0].append(x) points[1].append(y)\ for i in range(len(points[0])-1): midPoints[0].append((points[0][i+1]+points[0][i])/2) midPoints[1].append(lagrange(points,midPoints[0][i]))\ for i in range(len(midPoints[0])): intg = ((points[0][i+1]-points[0][i])/6)*\ (points[1][i]+(4*midPoints[1][i])+points[1][i+1]) integs.append(intg)\ print "\n\tIntegral: ",sum(integs) raw_input() print "\n\tREGLA DE SIMPSON\n\n" main()