Il y a plusieurs années, NumXL a pris en charge une fonction d'interpolation en tant qu'utilitaire ou méthode d'aide pour répondre aux besoins de modélisation de nos utilisateurs. À notre grande surprise, cette fonctionnalité a reçu une attention particulière et nous avons décidé de compiler ici certaines des questions les plus fréquemment posées à ce sujet.
Qu'est-ce que l'interpolation ?
L'interpolation est une méthode numérique permettant d'estimer la valeur d'un nouveau point de données sur la base de la plage d'un nombre discret de points de données connus.
Pour illustrer cela, supposons que la valeur d'une fonction $y=f(x)$ soit donnée sous la forme d'un ensemble de cinq (5) valeurs x distinctes, comme le montre le graphique ci-dessous.
Maintenant, nous souhaitons estimer (c'est-à-dire interpoler) la valeur de la fonction à $x=5$, en utilisant les cinq (5) points de données donnés.
À des fins d'interpolation, la valeur cible x souhaitée doit se situer dans la plage de l'ensemble de données d'origine (par exemple, $2\le x\le 12$).
Avant d'aller plus loin, répondons à quelques questions fondamentales que nous entendons souvent :
-
Qu'en est-il de l'extrapolation ? En quoi est-elle différente ?
cL'extrapolation est le processus d'estimation de la valeur de la fonction d'une valeur x qui se situe en dehors de la plage d'un ensemble de données donné. -
NumXL prend-il en charge l'extrapolation ?
Oui, la même fonction NxINTRPL(.) peut être utilisé pour l'extrapolation. Assurez-vous de passer "true" ou 1 à l'argument "extrapolate". -
L'ajustement des courbes (par exemple, la régression) et l'interpolation sont-ils identiques ?
L'ajustement de courbe et l'interpolation sont souvent utilisés de manière interchangeable, mais il existe une différence subtile entre les deux : l'interpolation doit correspondre exactement aux points de données, alors que l'ajustement de courbe doit s'en approcher le plus possible. -
Dois-je utiliser l'interpolation ou l'ajustement de courbe ?
Cela dépend. L'interpolation suppose que les points de données sont parfaitement connus (ou du moins avec une très grande précision), tandis que l'ajustement de courbe suppose un certain degré de bruit dans les points de données.
Préparation des données
Comme nous l'avons mentionné précédemment, toutes les méthodes d'interpolation acceptent un ensemble discret de points de données connus. Pour traiter les ensembles de données du monde réel, la fonction d'interpolation NumXL (NxINTRPL) traite les données au préalable :
- Trier les points de données par ordre croissant (sur la base de X).
- Abandonner silencieusement les points de données dont les valeurs sont manquantes.
- Remplacer les lectures multiples pour la même valeur X par leur moyenne.
FAQ :
Q: Les points de données doivent-ils être séparés de manière uniforme ?
A: Non, la longueur de l'intervalle entre les points de données n'a pas besoin d'être uniforme, mais nous recommandons que les points de données soient répartis sur la plage x afin d'améliorer la précision de l'interpolation et de minimiser l'impact des valeurs aberrantes.
Méthodes d'interpolation
-
Interpolation par étapes 1 : Interpolation plane en avant :
Les méthodes d'interpolation par paliers modélisent la fonction inconnue à plat/constante entre des points de données connus, en utilisant la dernière valeur connue.
-
Interpolation par étapes 2 : Interpolation plane à rebours :
Dans le cas de la méthode "backward flat", la fonction inconnue est également modélisée comme étant plate/constante entre les points de données connus, mais elle utilise le niveau du point de données immédiatement suivant.
-
Interpolation par étapes 3 : Interpolation par le plus proche voisin :
Avec la méthode du plus proche voisin, la fonction inconnue est toujours modélisée plate/constante, mais son niveau est déterminé par le niveau du point de données le plus proche.
-
Interpolation linéaire :
L'interpolation linéaire permet de relier chaque point de données à ses voisins à l'aide de lignes droites.
Notez que les valeurs de la fonction entre deux points de données sont uniquement déterminées par ces deux points de données.
-
Spline cubique : Spline naturelle :
En utilisant la méthode de la spline cubique, nous construisons un polynôme cubique par morceaux sur chaque intervalle avec des dérivées première et seconde correspondantes aux points de données fournis. La dérivée seconde est choisie pour être nulle au premier et au dernier point.
La courbe résultante est lisse, mais elle n'est pas "locale", ce qui signifie que si les fonctions subissent un changement important (par exemple, x=4), la courbe autour des points environnants est "bancale" (c'est-à-dire qu'elle dépasse les points intermédiaires).
-
Spline cubique : AKIMA Spline :
Pour éviter la courbe bancale de la spline cubique naturelle, nous assouplissons la continuité de la dérivée seconde autour des points de données (nœuds), ce qui se traduit par des coins non arrondis.
Comme le montre la figure ci-dessus, la courbe autour des points de données est continue mais non lisse.
-
Spline cubique : Steffen Spline :
La spline de Steffen ajoute une nouvelle contrainte : le segment de la spline cubique est monotone entre les points de données. Il n'y a pas d'oscillation, point final.
La courbe résultante est lisse autour des points de données et ne présente aucune oscillation entre eux. Par conséquent, les minima et les maxima ne peuvent se produire qu'aux points de données.
La spline de Steffen et sa dérivée première sont garanties continues, mais la dérivée seconde peut être discontinue.
-
Spline cubique : Spline contraint (Kruger) :
Kruger a proposé une spline cubique contrainte pour éviter les dépassements en sacrifiant la fluidité, de sorte que nous n'avons plus besoin d'une dérivée seconde continue en chaque point et que nous calculons la valeur de la dérivée première numériquement en utilisant les points environnants.
En utilisant la spline contrainte (Kruger), nous avons évité l'effet de dépassement de la spline cubique et n'avons pas eu besoin d'ajouter des contraintes de monotonicité.
Il existe d'autres types de splines cubiques, mais nous n'avons présenté que ceux qui sont actuellement pris en charge dans NumXL version 1.68.
FAQs :
Q: Quel type de spline cubique dois-je utiliser ?
A: Cela dépend de la nature de vos données et de l'importance d'une courbe lisse et/ou d'un effet secondaire de dépassement. Dans de nombreux cas, nous suggérons de choisir la spline cubique contrainte (Kruger) comme valeur sûre.
Q: Je vois deux fonctions d'interpolation dans NumXL : INTERPOLATE(.) et NxINTRPL(.). Lequel dois-je utiliser ?
A: La fonction INTERPOLATE(.) était notre première fonction d'implémentation, mais elle est maintenant obsolète. Toutes les méthodes d'interpolation mentionnées ci-dessus ne sont disponibles que dans NxINTRPL(.), vous ne devez donc utiliser que cette fonction.
Q: La fonction NxINTRPL(.) accepte à la fois une valeur unique et un tableau comme argument cible. Pourquoi ?
A: NxINTRPL(.) fonctionne plus rapidement lorsque vous interpolez pour plusieurs valeurs à la fois, plutôt que d'appeler séparément pour chaque valeur. Nous recommandons de passer toutes les valeurs x en quelques appels de fonction.
Commentaires
Vous devez vous connecter pour laisser un commentaire.