Interpolation numérique - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

En analyse numérique (et dans son application algorithmique discrète pour le calcul numérique), l'interpolation est une opération mathématique permettant de construire une courbe à partir de la donnée d'un nombre fini de points, ou une fonction à partir de la donnée d'un nombre fini de valeurs. La solution du problème d'interpolation passe par les points prescrits, et, suivant le type d'interpolation, il lui est demandé de vérifier des propriétés supplémentaires.

Ainsi le type le plus simple d'interpolation est l'interpolation linéaire, qui consiste à « joindre les points » donnés. À partir d'une table trigonométrique, elle peut servir à estimer les valeurs situées entre les données de la table.

L'interpolation doit être distinguée de l'approximation de fonction, qui consiste à chercher la fonction la plus proche possible, selon certains critères, d'une fonction donnée. Dans le cas de l'approximation, il n'est en général plus imposé de passer exactement par les points donnés initialement. Ceci permet de mieux prendre en compte le cas des erreurs de mesure, et c'est ainsi que l'exploitation de données expérimentales pour la recherche de lois empiriques relève plus souvent de la régression linéaire, ou plus généralement de la méthode des moindres carrés.

Interpolation linéaire

Interpolation linéaire

Dans le cas d'une interpolation linéaire, on constitue une courbe d'interpolation qui est une succession de segments. Entre deux points p1 et p2 de coordonnées respectives (x1,y1) et (x2,y2), l'interpolation est donnée par la formule suivante

y = p \cdot (x-x_1) + y_1

avec la pente p qui s'exprime comme

p = \frac{y_2 - y_1}{x_2 - x_1}

Le code C permettant d'interpoler linéairement deux valeurs dans la plage mu [0...1] est le suivant :

         double interpolationLinéaire(double v1, double v2, double mu)         {             return(v1*(1-mu)+v2*mu);         }      

Interpolation cubique

Interpolation cubique (spline)

Comme son nom l'indique, on utilise ici une équation cubique pour modéliser localement la courbe. Quatre points sont nécessaires pour évaluer la fonction qui remplace la courbe discrète. Tout dépend des conditions de continuité utilisées, la forme de la cubique peut varier et donner une interpolation différente (ex: interpolation cubique de Keys ou interpolation cubique splines). La tangente à chaque point d'indice "i" possède la même pente que le segment reliant les points d'indice "i-1" et "i+1", ce qui signifie que chaque pic de la courbe peut être dépassé par la courbe interpolée.

Le code C permettant d'interpoler cubiquement quatre valeurs dans la plage mu [0...1] est le suivant :

         double interpolationCubique(double y0,double y1,double y2,double y3,double mu)         {            double a0,a1,a2,a3,mu2;                   mu2 = mu*mu;            a0 = y3 - y2 - y0 + y1;            a1 = y0 - y1 - a0;            a2 = y2 - y0;            a3 = y1;                   return (a0*mu*mu2+a1*mu2+a2*mu+a3);         }      

Interpolation cosinus

On utilise ici la fonction cosinus pour modéliser localement la courbe. Deux points seulement sont nécessaires pour évaluer la fonction qui remplace la courbe discrète. La tangente à chaque pic est horizontale, ce qui signifie que chaque pic de la courbe correspond réellement à un point connu de la courbe discrète.

Le code C permettant d'interpoler en cosinus deux valeurs dans la plage mu [0...1] est le suivant :

         double interpolateCosinus(double y1, double y2, double mu)         {             double mu2;                    mu2 = (1-cos(mu*PI))/2;             return (y1*(1-mu2)+y2*mu2);         }      
Page générée en 0.105 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise