Funzione di fit lineare (interpolazione lineare) in C++, senza l'uso di ROOT:


//Fit Lineare
void LinearFit(int n, double x[], double y[], double par[]) {
  double sumx = 0, sumx2 = 0, sumy = 0, sumxy = 0;
    for (int i = 0; i < n; i++) {
      sumx += x[i];
      sumx2 += x[i]*x[i];
      sumy += y[i];
      sumxy += x[i]*y[i];
    }
  double delta = 0;
    for (int i = 0; i < n; i++) {
      delta += (n*sumx2)-(sumx*sumx);
    }
  par[0] = (sumx2*sumy - sumx*sumxy)/delta;
  par[1] = (n*sumxy - sumx*sumy)/delta;
  return;
}





Categories: