viernes, 25 de marzo de 2011

Método de los trapecios

Otro método de aproximación de la integral mediante la suma de pequeños trapecios.

Programa Principal:
program integral1
use funcion
use numerico
implicit none
real::Xi,Xd,n,I
write(*,*)'elige un intervalo de integracion'
read(*,*)Xi
read(*,*)Xd
write(*,*)'el intervalo es:',Xi,Xd
write(*,*)'elige un numero de subintervalos'
read(*,*)n
call integral(f1,Xi,Xd,n,I)
write(*,*)'el area de la integral es:',I
end program
Module Numerico:
Module numerico
contains
subroutine integral(f,a,b,n,I)

interface
function f(x)
real,intent(in)::x
real::f
end function
end interface

real,intent(inout)::a,b,n
real,intent(out)::I
real::x1,x2,h,A1,A2,j

I=0

do j=1,n
  
x1=(a+((j-1)*ABS(a-b)/n))
x2=(a+(j*(ABS(a-b)/n)))

h=((f(x2))-(f(x1)))

A1=((x2-x1)*(f(x1)))
A2=((A1))+(((x2-x1))*((h)/(2)))

I=I+A2
end do
end subroutine integral
end module numerico
Module funciones:
module funcion
contains

function f1(x)
real,intent(in)::x
real::f1

f1=((x**3)+(4*(x**2))-10)

end function
end module funcion



5 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Buen día, ¿ Cómo puedo poner todos los modulos en un solo archivo.f90?, es decir sin tener modulos, solo el programa principal, subrutinas, funciones etc. De antemano, muchas gracias.

    ResponderEliminar
  3. Existen diferentes maneras de compilar un programa junto con un módulo.
    La primera opción es incluir el código fuente del módulo en el archivo del código fuente de la unidad del
    programa que lo utiliza, justo antes del código de tal unidad de programa obteniendo un único archivo .f90, el
    cual es compilado como es usual. Claramente, esta forma de incluir módulos no es flexible.
    Una segunda opción es escribir el código fuente en un archivo (digamos modulo.f90) independiente del
    código fuente del programa que lo utiliza, (guardado, digamos, en el archivo main.f90) y compilar ambos en
    la línea de comandos, anteponiendo el archivo del módulo a cualquier otro archivo:
    $ gfortran -Wall -o ejecutable modulo.f90 main.f90
    La tercer opción consiste en compilar por separado el módulo y el programa, para luego generar el ejecutable
    final:
    $ gfortran -Wall -c modulo.f90
    $ gfortran -Wall -c main.f90
    $ gfortran -Wall -o ejecutable modulo.o main.o

    ResponderEliminar
  4. Como podrías pedir al usuario que ingrese la funcion, de forma que no tengas que cambiar el programa

    ResponderEliminar
  5. gracias por el codigo, muy didactico

    ResponderEliminar