Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module integral
- contains
- function calcIntegral (n,sigma,mu) result(integral)
- implicit none
- real(8), intent (in) :: sigma, mu
- integer, intent(in) :: n
- real(8) :: x, s, h, e, pi, a, b, integral
- integer :: i, subintervalos
- !Damos valores a PI, e
- pi=acos(-1d0)
- e=exp(1d0)
- !Establecemos los valores de a, b, y el número de subintervalos
- subintervalos=500
- a = dble(n)
- b = 300.0
- !Establecemos el valor de h, o "paso"
- h=(b-a)/dble(subintervalos)
- !Realizamos el cálculo del sumatorio desde f(a+1) hasta f(b-1)
- s = 0.0
- do i = 1, subintervalos - 1
- x = a + h * dble(i)
- s = s + f(x, sigma, mu)
- end do
- !Aplicamos la fórmula del trapecio, una vez hallados todos los datos necesarios
- integral = h * (0.5 * f(a, sigma, mu) + 0.5 * f(b, sigma, mu) + s)
- end function
- function f(x, sigma, mu) result(myresult)
- implicit none
- real(8), intent (in) :: x, sigma, mu
- real(8) :: myresult, e, pi
- e=exp(1.0)
- pi=acos(-1.0)
- myresult = 1.0 / (sigma*sqrt(2*pi)) * e**((-(x-mu)**2)/(2*(sigma)**2))
- end function
- end module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement