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:
Programmi
Posta un commento