luizaspan icon

[PROVA FSC_COMP] Integração Numérica (Retangular)

luizaspan | PRO | 11/03/15 11:40:40 AM UTC | 0 ⭐ | 759 👁️ | Never ⏰ | []
C |

680 B

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <math.h>
 
#define N 1000 // número de "retângulos"
 
double f(double x)
{
    return 1/x; // função a ser integrada
}
 
int main(void)
{
    int i;
    double h,soma=0.0f; // importante zerar soma!!
 
    h=(1.0-0.1)/N; // vendo pelos limites de integração
 
    for (i=0;i<N;i++)
    {
        double x = 0.1 + h*i;
        soma += h*f(x);
    }
 
    double e = fabs((-log(0.1)-soma)/-log(0.1)); // erro da integração - comparando com o valor real da função integrada
 
    printf("Valor calculado: %.15e \nValor real: %.15e \n",soma,-log(0.1));
    printf("Erro: %e % \n",e*100);
 
    return 0;
}
 
// I(a,b) = h*sum_i ( f(x_i) )
// erro = h/2 * [f(b)-f(a)]
// erro ~ 1/N

Comments