#include <stdio.h>
#include <math.h>
#define N 1000 // número de "trapézios"
double f(double x)
{
return 1/x; // função a ser integrada
}
int main(void)
{
int i;
double h,soma=0.0f,a=0.1; // a = menor limite de integração
h=(1.0-a)/N;
for (i=0;i<N;i++)
{
double x1 = a + h*i, x2= a + h*(i+1); // necessários dois pontos para realização do método
soma += (h/2)*(f(x1) + f(x2));
}
double e = fabs((-log(a)-soma)/-log(a)); // comparação com o valor real da função integrada
printf("Valor calculado: %.15e \nValor real: %.15e \n",soma,-log(a));
printf("Erro: %e % \n",e*100);
return 0;
}
// erro = 1/12 * h^2 * [f'(a) - f'(b)]
Comments