Advertisement
luizaspan

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

Nov 3rd, 2015
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.73 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define N 1000
  5.  
  6. double f(double x)
  7. {
  8.     return 1/x; // equação a ser integrada
  9. }
  10.  
  11. int main(void)
  12. {
  13.     int i;
  14.     double h,soma=0.0f,a=0.1; // a = menor limite de integração
  15.  
  16.     h=(1.0-a)/N;
  17.  
  18.     for (i=1;i<=N-1;i+=2)
  19.     {
  20.         double x1,x2,x3; // ou definir apenas x=a+h*i e em x1 -> x-h, x2 -> x+h
  21.  
  22.         x1=a+h*(i-1);
  23.         x2=a+h*(i);
  24.         x3=a+h*(i+1); // três pontos da parábola
  25.  
  26.         soma += (1./3)*h*(f(x1)+4*f(x2)+f(x3));
  27.     }
  28.  
  29.     double e = fabs((-log(a)-soma)/-log(a)); // comparação com o valor real da função integrada
  30.  
  31.     printf("Valor calculado: %.15e \nValor real: %.15e \n",soma,-log(a));
  32.     printf("Erro: %e % \n",e*100);
  33.  
  34.     return 0;
  35. }
  36.  
  37.  
  38. // erro = 1/90 * h^4 * [f'''(a) - f'''(b)]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement