Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdlib.h>
  4. #define N 8
  5. #define A -1.0
  6. #define B 5.0
  7. double REALANS = 42.0;
  8. double f(double x) {
  9.     return x*(x - 1)*(x - 2)*(x - 3)*(x - 4) + 7;
  10. }
  11.  
  12. int main() {
  13.     double e = 1, h;
  14.     int n = 1;
  15.     while (e > 0.00001) {
  16.         h = 6.0 / (N*n);
  17.         double *x = (double*)malloc(sizeof(double)*N*n);
  18.         double *y = (double*)malloc(sizeof(double)*N*n);
  19.         for (int i = 0; i < n*N; i++) {
  20.             x[i] = -1 + h*i;
  21.             y[i] = f(x[i]);
  22.         }
  23.         double ans = 0;
  24.         for (int i = 0; i < n*N; i++) {
  25.             if (i == 0 || i == n*N - 1) {
  26.                 ans += y[i];
  27.             }
  28.             else {
  29.                 ans += y[i] * 2;
  30.             }
  31.            
  32.         }
  33.         ans *= h / 2;
  34.         e = fabs(REALANS - ans);
  35.         printf("ans = %.6f e=%.6f N=%d\n", ans, e, n*N);
  36.         n = n * 2;
  37.         free(x);
  38.         free(y);
  39.     }
  40.     printf("------end------\n");
  41.     getchar();
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement