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
Liens externes
[Interpolation methods], par Paul Bourke, Decembre 1999
Catégories de la page: Wikipédia:ébauche mathématiques | Interpolation numérique | Algorithme numérique



