program definiteIntegralAproximation !/////////////////////////////////////////////////////////// !/ Programa para aproximar la integral definida / !/ de la función sin(x) en [0,pi]. El valor exacto / !/ es 2. / !/ xfin / !/ integral[sin(X)]| ~ f(X0)h+f(X1)h+...+f(Xn-1)h / !/ xini / !/ / !/ X0 es xini- inicio del intervalo / !/ Xk+1 - Xk = h / !/////////////////////////////////////////////////////////// !/ VARIABLES: / !/ startInterval - inicio del intervalo de integración / !/ endInterval - fin del intervalo de integración / !/ subDivisions - nro de subdivisiones del intervalo, / !/ más subdivisiones, más exactitud / !/ increment - diferencia entr un x del intervalo / !/ donde se evalúa la función y el x / !/ que le sigue (o el anterior) / !/ x - variable independiente de la función / !/ integral - valor de la integral, su valor final / !/ es el resultado esperado / !/////////////////////////////////////////////////////////// ! Declaraciones real :: startInterval, endInterval, increment, integral, x integer :: subDivisions ! Instancio los extremos de integración y la cantidad de subdivisiones startInterval = 0.0 endInterval = 3.14159265 subDivisions = 2 ! Calculo el incremento, inicializo la suma en cero ! y el primer x en el inicio del intervalo increment = (endInterval - startInterval)/subdivisions integral = 0 x = startInterval print*,"Aproximación de la integral definida de sin(x) " print*,"===============================================" print*,"Inicio del intervalode integración:",startInterval print*,"Fin del Intervalo de integración:",endInterval print*,"Nro. de subdivisiones del intervalo:",subDivisions print*,"Incremento de la variable x:",increment print*, ! loop principal, actualizo x sumandole el incremento, ! y la suma integral en cada iteración do while(x < (endInterval)) integral = integral + sin(x)*increment print*,"x:",x," integral:",integral x = x + increment end do print*, "La integral Aproximada es:",integral end program definiteIntegralAproximation