Interpolation linéaire et lagrangienne réalisée en C, avec les bibliothèques SDL et OpenGL.

En bleu sont représentés les points initiaux à relier, en vert le résultat de l'interpolation polynomiale de Lagrange, en rouge l'interpolation linéaire par segment, cette dernière méthode est très simple et consiste à prendre les points deux à deux et à obtenir l'équation de la droite qui passe par ces deux points. La fonction affine obtenue est ensuite tracée sur le segment [x1, x2] et on passe aux points [x2, x3] en recommençant l'opération jusqu'à ce que tous les points aient été reliés.
L'interpolation polynomiale lagrangienne permet d'obtenir à partir des coordonnées directement l'équation de la courbe les reliant, elle fait appel aux polynômes de Lagrange, et l'équation de la courbe est donnée dans cet article : Interpolation lagrangienne
L'algorithme pour calculer le polynôme en X donne en C :
float lagrange(float X, float *x, float *y, int n)
{
int i,j;
float poly = 0;
float prod = 1;
for(j = 0; j < n; ++j) {
for(i = 0; i < n; ++i) {
if(i==j)
continue;
prod *= (X - x[i])/(x[j] - x[i]);
}
poly += y[j]*prod;
prod = 1;
}
return poly;
}
Aucun commentaire:
Enregistrer un commentaire