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