Régression polynomiale avec incertitude
Bonjour,
Je suis étudiant et je fais un peut de c++ et je souhaite coder une regression polynomiale y = ax² + bx + c à partir des points de données Xi et Yi avec des incertitudes de mesures sur les Yi
j'ai écrit quelque chose dans ce gout là pour trouver a b et c :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| long double *least_square_fitting(int NB_DATA, long double* x, long double* y, long double* Erreur ){
long double M=0, N=0, P=0, Q=0, R=0, S=0; //coefficients du système linéaire
long double det_inv=0; //inverse du déterminant
long double a=0, b=0, c=0; //coefficients du polynome
long double x_square = 0;
long double x_cube = 0;
long double *coeff = new long double [3];
c = y[0];
for(int i=0 ; i<NB_DATA ; ++i ){
x_square = (x[i]*x[i]);
x_cube = (x[i]*x[i]*x[i]);
M += x_square*x_square;
N += x_cube ;
P += x_square * (c-y[i]) ;
Q += x_cube ;
R += x_square ;
S += x[i] * (c-y[i]);
}
//résolution du système
det_inv = 1 / (M*R - N*Q);
a = det_inv * ( N*S - R*P );
b = det_inv * ( Q*P - M*S );
coeff[0]=c;
coeff[1]=b;
coeff[2]=a;
return coeff;
} |
Mais ce code ne prend pas en compte les erreur sur yi.
Une idée sur la façon de procéder?