Courbes d'Interpolation Interpolation de Lagrange, et Interpolation B-spline
Courbes d'Interpolation Interpolation ● Dans certains cas, on ne souhaite pas approximer mais interpoler un ensemble de points. Dans ce cas, il faut soit utiliser une courbe interpolante, soit résoudre un problème d'interpolation avec des courbes type Bézier ou B-spline. ● Nous allons voir : – Interpolation de Lagrange – Interpolation avec une courbe B-spline
Courbes d'Interpolation Interpolation / approximation ● Soit un ensemble d'échantillons P i R n (i=0..k). Une fonction f : R m R n est un interpolant si : ● f est un approximant si : ● Exemple : une cubique d'Hermite interpole ses points et ses vecteurs de contrôle.
Courbes d'Interpolation Interpolation de Lagrange ● L'interpolation utilise les polynôme de Lagrange L i n (u) de degré n comme fonctions de base pour interpoler n+1 points : ● Ce qui nous donne l'équation suivante pour la courbe p(u) qui interpole les points P i (i=0..n) pour les valeurs de u i (i=0..n) de u :
Courbes d'Interpolation Sensibilité au bruit Interpolation de 21 points sur un arc de cercle (à 8 decimales près). La paramètrisation du polygone de contrôle est 1,2,3,..., 21. Ajout d'un bruit aléatoire borné par 0.001
Courbes d'Interpolation Sensibilité aux hautes fréquences Le 10 ème sommet est décalé de 0.1 en y Données hautes fréquences de 9 pts de contrôle
Courbes d'Interpolation Interpolation de données quelconques
Courbes d'Interpolation Sensibilité à la paramétrisation 21 points de contrôle sur une fonction cosinus. La paramétrisation est 1,2,3,...,21 On ajoute 3 à la valeur du paramètre à partir du 10 ème point de contrôle (1, 2,...,9, 13, 14,..., 24)
Courbes d'Interpolation Interpolation de Lagrange Exercice ● Soit trois points P 0 (0,0), P 1 (1,1), P 2 (2,0). On choisit les valeurs de u suivantes pour l'interpolation : u 0 = 0, u 1 = 1, u 2 = 3 – Quel est l'intervalle de définition de la courbe interpolante de Lagrange p(u) commaçant en P 0, passant par P 1 et finissant en P 2 ? – Quel est le degré de cette courbe ? – Vérifiez que ses fonctions de base forment une partition de l'unité. Pourquoi est-ce nécessaire ? – Quelles sont les valeurs des fonctions de base en u 0, u 1 et u 2. Pourquoi est-ce ainsi ? Tracez les fonctions de base. – Calculer p(1/2) et p(3/2) puis tracez la courbe.
Courbes d'Interpolation Avantages et inconvénients ● Avantages : – Interpolation naturelle des points de contrôle – Equation relativement simple – Reconstruction « lisse » de données « parfaites » (points de contrôles sur des fonctions polynomiales, trigo., log., etc) ● Inconvénients – Support global des fonctions de base => influence globale des points de contrôle sur la courbe – Le degré est lié au nombre de points de contrôle – Difficulté de contrôle des conditions aux limites – Forte tendance à osciller sur des données bruitées – Une attention particulière doit être portée à la paramétrisation
Courbes d'Interpolation Interpolation avec une courbe B-spline ● Au prix de la résolution d'un système linéaire, il est possible d'interpoler un nuage de points M i (i = 1.. n+1) avec une courbe B-spline. Il s'agit alors de calculer les points de contrôle de la B-spline qui sont tels que la courbe passe par les points à interpoler. ● Initialisation du problème : – Tout d'abord, il faut choisir l'ordre k de la B-spline. Ce choix est bien souvent guidé par la « lisseur » ou la continuité que l'on souhaite avoir pour la courbe. – Le nombre (n+1) de points de contrôle P i de la B-spline est égal au nombre de points à interpoler. – Il faut choisir un vecteur nodal (u 1... u k+n+1 ). – Comme pour l'interpolation de Lagrange, il faut ensuite choisir les valeurs v j de u pour lesquelles la courbe passera par les points M j à interpoler.
Courbes d'Interpolation Interpolation avec une courbe B-spline ● Poser le problème : – La B-spline a pour équation : – avec : – ce qui s 'écrit : – soit : – Les points de contrôle P i de la B-spline interpolant les points M i sont la solution du système linéaire précédent.
Courbes d'Interpolation Sensibilité au bruit Interpolation de 21 points sur un arc de cercle (à 8 decimales près). Le pas de paramétrisation est uniforme. La B-spline est de degré 3. Ajout d'un bruit aléatoire borné par 0.001
Courbes d'Interpolation Sensibilité au bruit Ajout d'un bruit aléatoire borné par 0.01 Ajout d'un bruit aléatoire borné par 0.1
Courbes d'Interpolation Sensibilité aux hautes fréquences Le 10 ème sommet est décalé de 0.1 en y Données hautes fréquences de 9 pts de contrôle
Courbes d'Interpolation Interpolation de données quelconques
Courbes d'Interpolation Interpolation avec une courbe B-spline ● Exercice : Soit 4 points M 1 (0,0), M 2 (1,1), M 3 (2,0) et M 4 (3,1). On souhaite interpoler ces 4 points avec une B- spline d'ordre 3 ayant un vecteur nodal ouvert uniforme. – Donnez les valeurs de k et n, proposez un vecteur nodal et donnez l'intervalle de définition de la B- spline. Donnez les positions des points de contrôle P 1 et P 4 de la B-spline avec les valeurs v 1 et v 4 de u pour lesquelles la B-spline passe en M 1 et M 4. – Proposez des valeurs pour v 2 et v 3. – En utilisant la floraison, calculez les positions des points P 2 et P 3. Tracez le polygone de contrôle, les points à interpoler et la courbe B-spline sur un schéma. ● Solution : – k=3, n=3, ( ), P 1 = M 1 et P 4 = M 4, v 1 = 1 et v 4 = 3 – Soit v 2 = 3/2 et v 3 = 5/2, on trouve P 2 (5/4, 7/4) et P 3 (7/4, -3/4)
Courbes d'Interpolation Conditions de tangente ● En observant la forme des courbes interpolantes, il semble que les oscillations indésirables pourraient être diminuées si on fixe des conditions de tangente. ● Illustrations sur des conditions de tangents aux bornes – Tout d'abord, si on ajoute des contraintes, il faut aussi ajouter des degrés de liberté. En ajoutant deux contraintes de tangente V 1 et V n+1 (tangentes aux points M 1 et M n+1 ), on augmente de 2 le nombre de points de contrôle de la courbe B-spline interpolante (soit n+3 points). – En prenant une courbe B-spline de vecteur nodal uniforme avec u i+1 -u i = 1 i (ceci simplifie les coefficients de la dérivée pour la lisibilité de l'exemple), on obtient le système suivant :
Courbes d'Interpolation Exemples d'améliorations Arc de cercle avec ajout d'un bruit aléatoire borné par 0.1 Données hautes fréquences de 9 pts de contrôle
Courbes d'Interpolation Exemples d'améliorations
Courbes d'Interpolation Conditions aux tangentes ● Exercice : – Reprenez le système avec les conditions aux tangentes et retrouvez les conditions de tangentes à partir de la formule de la dérivée d'une B-spline – Ajoutez dans le système une contrainte de tangente V 2 au second point à interpoler
Courbes d'Interpolation Avantages et inconvénients ● Avantages – Tous les avantages d'une B-spline : degré indépendant du nombre de points de contrôle, influence locale sur la courbe, etc – On peut ajouter des contraintes de tangente (courbure,...) – La tendance à osciller est bien moins importante ● Inconvénients – Il faut résoudre un système linèaire – Si on déplace l'un des points à interpoler, il faut recalculer un système linéaire (à noter que l'on peut ne recalculer que k points de contôle grâce à la propriété de contrôle local)