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
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Código de Python - Regla de Simpson

Regla de Simpsongráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella
Publicado el 19 de Abril del 2013 por Abraham
5.668 visualizaciones desde el 19 de Abril del 2013. Una media de 77 por semana
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

Versión 1
estrellaestrellaestrellaestrellaestrella

Publicado el 19 de Abril del 2013gráfica de visualizaciones de la versión: Versión 1
5.669 visualizaciones desde el 19 de Abril del 2013. Una media de 77 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella
# -*- 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()

Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración del curso
Comentarios