Ciao a tutti!!!!!!!!!!!! Dovrei fare un programma c++ che calcoli l'integrale definito di f(x)=e^(-x^2) utilizzando metodo dei trapezi,della parabola e dei rettangoli. Suddividere progressivamente l'intervallo di integrazione in 2^k sottointervalli, per k = 0; 1; ... ; 11. Stampare la sequenza degli errori ed il rapporto tra gli errori consecutivi.

codice:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

double f(double);
int potenza2();
double trapezi(double, double, int);
double parabole(double, double, int);
double rettangoli(double, double, int);
void stampa(double, double, double, double, double);

main()
{
      double a, b, t, p, r; int n; 
      
      printf("\n\n Quanto vale l'estremo a dell'intervallo?      a=");
      scanf("%lf", &a);
      
      printf("\n\n Quanto vale l'estremo b dell'intervallo?      b=");
      scanf("%lf", &b);
      
      n=potenza2();
      
      t=trapezi(a, b, n);
      
      p=parabole(a, b, n);
      
      r=rettangoli(a, b, n);
      
      stampa(a, b, t, p, r);
      
      system("PAUSE");
      return 0;
}

double f(double x)
{
       return exp(-(x*x));
}

int potenza2()
{
       int pot; int k=11;
       
       pot=2;
       
       for(int i=1; i<k; i++)              pot=pot*2;
       
       return pot;
}

double trapezi(double a, double b, int n)
{
       double c, x, app, h;
        
       c=0.5*(f(a)+f(b));
       
       h=(b-a)/n;
              
       for(int i=1; i<n; i++)
                    {    
                         x=a+i*h;
                         
                         c=c+f(x);
                    }
       app=h*c;
       
       return app;
}

double parabole(double a, double b, int n)
{
       double simp, x, app, h;
       
       simp=f(a)+f(b);
       
       h=(b-a)/n;
       
       double sum4=0;
       
       for(int i=1; i<n; i+=2)
                    {
                         x=a+i*h;
                         sum4=sum4+f(x);
                    }
       
       double sum2=0;
       
       for(int i=2; i<=n-2; i+=2)
                    {
                            x=a+i*h;
                            sum2=sum2+f(x);
                    }
                   
       simp=(h/3.)*(simp+4*sum4+2*sum2);
                     
       return simp;
}

double rettangoli(double a, double b, int n)
{
       double s=0, h, c;
       
       h=((b-a)/n);
       
       for(int i=1; i<=n; i++)
                    {
                          c=(a+((i-0.5)*h));
                          
                          s=s+f(c);
                    }
       s=s*h;
       
       return s;
}

void stampa(double a, double b, double t, double p, double r)
{
     printf("Il valore dell'integrale definito calcolato con il metodo dei trapezi e' uguale a %lf\n\n", t);
     
     printf("Il valore dell'integrale definito calcolato con il metodo delle parabole e' uguale a %lf\n\n", p);
     
     printf("Il valore dell'integrale definito calcolato con il metodo dei rettangoli e' uguale a %lf\n\n", r);
     
     return;
}
Io ho fatto tutta la prima parte dell'esercizio, ma come vedete mi sono bloccata nell'ultima parte quando chiede di calcolare la sequenza di errori e gli errori consecutivi... Mi spiegate cos'è che vuole che faccia questo esercizio? perchè sinceramente non l'ho proprio capito. E scusate se il codice non comprende per niente questa seconda parte ma sinceramente non riesco a capire che vuole...

Grazie mille!!!!!!!!!!