samedi 8 mars 2014

Interpolation linéaire et lagrangienne





  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