You are on page 1of 2

CAPITULO 6: INTEGRACION Y DIFERENCIACION NUMERICA

(6.1.2.6)

Subrutinas del paquete (Regla de Simpson para 2m Subintervalos)

El paquete dispone de dos subrutinas útiles para aproximar la integral,

mediante la Regla de Simpson para 2m subintervalos, la primera


(1lee_datos_simpson (6.1.2.6.1) ) para leer los puntos extremos del intervalo y el
número de subintervalos a utilizar, la segunda (2evalua_simpson (6.1.1.6.2) ) para
calcular el valor aproximado al integral. Estas subrutinas se encuentran en la
librería "metodos.lib". A continuación se presenta el código que el usuario debe
digitar para hacer uso de ellas.

El usuario debe definir un módulo en el cual se encuentra la función que calcula el


valor funcional f(x), el siguiente código es un ejemplo:

! Modulo para la declaración de la función que calcula


! el valor funcional f(x)
MODULE modulo_funcion

! Declaración de la función como externa


INTERFACE interface_funcion
MODULE PROCEDURE funcion
END INTERFACE

CONTAINS

! Función que calcula el valor funcional f(x)


FUNCTION funcion(x)
REAL :: funcion
REAL, INTENT(IN) :: x
funcion = exp(-x**2)
RETURN
END FUNCTION funcion

END MODULE modulo_funcion

La sentencia INTERFACE se utiliza para declarar a la función como externa ya que es


un parámetro de entrada en la subrutina evalua_simpson.

En el cuerpo del programa se debe hacer uso de los siguientes módulos:

"modulo_función", para poder acceder a la función que calcula el valor funcional


f(x).
"modulo_integracion", para utilizar las subrutinas lee_datos_simpson y
evalua_simpson.
! Programa para aproximar la integral de la función
! f(x) en un intervalo [a, b] mediante el Método de Simpson
PROGRAM Simpson

! Uso del modulo que contiene la función que calcula


! el valor funcional f(x)
USE modulo_funcion
! Uso del modulo que contiene las subrutinas para la lectura
! de los datos y para aproximar la integral
USE modulo_integracion

! Declaración de variables

IMPLICIT NONE
! Puntos extremos que definen el intervalo a integrar
REAL :: a, b
! Entero positivo que permite definir el número de subintervalos
INTEGER :: m
! Valor aproximado al integral
REAL :: XI

! Subrutina para la lectura de los datos generales


CALL lee_datos_simpson(a, b, m)

! Subrutina para calcular el valor aproximado al integral


CALL evalua_simpson(a, b, m, funcion, XI)

! Presenta el valor aproximado al integral


WRITE (*,*) "El valor aproximado XI: ", XI

STOP

END PROGRAM Simpson

You might also like