Interpolation numérique

Un article de Freepedia.

Image:Math.png Cet article est une ébauche à compléter concernant les mathématiques, vous pouvez partager vos connaissances en le modifiant.

En analyse numérique (et dans son application algorithmique discrète pour le calcul numérique), une interpolation est une opération mathématique par laquelle on calcule la position d'un point dans une courbe pour laquelle on ne dispose pas d'équation. La courbe n'étant définie que par un ensemble de points, on est donc contraint d'estimer localement son équation.

Sommaire

Interpolation polynomiale

Image:Interpolation example polynomial.png Une interpolation polynomiale consiste à utiliser un polynôme pour estimer localement l'équation représentant la courbe afin de déterminer la valeur entre les échantillons.

Interpolation linéaire

Image:Interpolation example linear.png Dans le cas d'une interpolation linéaire, on considère dans ce cas que la courbe est localement une droite, dont on détermine l'équation à l'aide des coordonnées des deux points <math>p_1</math> et <math>p_2</math> de coordonnées respectives <math>(x_1,y_1)</math> et <math>(x_2,y_2)</math> les plus proches du point recherché :

<math>pente = \frac{y_2 - y_1}{x_2 - x_1}</math>
<math>decalage = y_1 - pente * x_1</math>

L'équation permettant de retrouver le point recherché est la suivante :

<math>y = pente * x + decalage</math>

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

  double LinearInterpolate(double v1, double v2, double mu)
  {
  return(v1*(1-mu)+v2*mu);
  }


Interpolation cubique

Image:Interpolation example spline.png 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 interporlation différente (ex: interpolation cubique de Keys ou interpolation cubique splines).

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

  double CubicInterpolate(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);
  }

Voir aussi

Interpolation lagrangienne
Interpolation newtonienne
Interpolation de Berstein


Liens externes

[Interpolation methods], par Paul Bourke, Decembre 1999



Views
Outils personels
Boîte à outils
Autres langues
Autres Liens