home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / misc / integra1_0a.lha / Integra / examples / 2test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-23  |  1.2 KB  |  58 lines

  1. /*
  2.     Test per Int_points
  3.  
  4. */
  5. #include "simple.h"
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <math.h>
  9.  
  10.  
  11. int main(int argc, char *argv[])
  12. {
  13. int i, n;
  14. double d, x[1000], fx[1000];
  15.  
  16. if (argc==1) {
  17.     printf("Quanti punti? ");
  18.     scanf("%d",&n);
  19. } else n=atoi(argv[1]);
  20. if (n>1000) n=1000;
  21. if (n<2) n=2;
  22.  
  23. printf("Test di Int_points per la funzione x tra 2 e 5 (finto)\n");
  24. for (i=0; i<n; i++) {
  25.     x[i] = 2 + i*(5-2)/(double)(n-1);
  26.     fx[i] = x[i];         /*  x*x*x*(x-1); */
  27. }
  28. d = Int_points(n, x, fx);
  29. printf("Esatto    : 10.5\n");
  30. printf("%-2d punti  : %.16g\n",n,d);
  31.  
  32. printf("Test di Int_points per la funzione x^4-x^3 tra 2 e 5\n");
  33. x[0]=2; fx[0] = 2*2*2*(2-1);
  34. for (i=1; i<n-1; i++) {
  35.     d = ((rand()%100)/100.)*(5.-2.)*2/n;
  36.     if (d<0.001) d=0.001;
  37.     x[i] = x[i-1]+d;
  38.     if (x[i]>5) x[i] = x[i-1]+0.01;
  39.     fx[i] = x[i]*x[i]*x[i]*(x[i]-1);
  40. }
  41. x[n-1] = 5;
  42. fx[n-1] = 5*5*5*(5-1);
  43.  
  44. d = Int_points(n, x, fx);
  45. printf("Esatto    : 466.35\n");
  46. printf("%-2d punti  : %.16g\n",n,d);
  47.  
  48. printf("Test di Int_points per la funzione x*sin(x)^2 tra 2 e 5 (finto)\n");
  49. for (i=0; i<n; i++) {
  50.     x[i] = 2 + i*(5-2)/(double)(n-1);
  51.     fx[i] = x[i]*sin(x[i])*sin(x[i]);
  52. }
  53. d = Int_points(n, x, fx);
  54. printf("Esatto    : 5.5748036294843\n");
  55. printf("%-2d punti  : %.16g\n",n,d);
  56.  
  57. }
  58.