Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <math.h>
- #define FRANDOM ((double) random()/RAND_MAX)
- #define a 0
- #define b 2
- #define N 1e4 // não poderia inicializar vetor
- double f(double x) {
- return pow(sin(1/(x*(x-2))),2);
- }
- int main(void)
- {
- double sum1=0., sum2=0., sum3=0.;
- int i;
- // valor da integral:
- for (i=0;i<N;i++)
- {
- double x=FRANDOM*(b-a);
- sum1+=f(x);
- }
- double I = (b-a)/N * sum1;
- printf("%lf\n",I);
- // <f>:
- for (i=0;i<N;i++)
- {
- double x=FRANDOM*(b-a);
- sum2+=f(x);
- }
- double fm = sum2/N;
- // <f^2>:
- for (i=0;i<N;i++)
- {
- double x=FRANDOM*(b-a);
- sum3+=f(x)*f(x);
- }
- double fm2 = sum3/N;
- double e = ((b-a)/sqrt(N))*sqrt(fm2-fm*fm);
- printf("Valor da integral: %lf\nErro: %lf\n",I,e); // ex.: diminuindo o valor de N em 2 ordens de magnitude, o erro aumenta 1 ordem de magnitude (pois vai com sqrt(N))
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement