3 Interpolation
3 Interpolation
3 Interpolation
Interpolation
3.1 Introduction
Le problème de l’interpolation 1d est de déterminer une fonction 1 g : E ⊂ R → R, à partir de
m couples de points de la forme (xi , yi ) de manière à respecter les conditions d’interpolation :
g(xi ) = yi , i = 1, . . . , m
g est prise dans une famille de fonctions facilement calculables comme des polynômes ou des
splines (polynômes par morceaux) des fonctions trigonométriques, des fonctions rationnelles, etc.
En général la famille de fonctions est définie à partir de m fonctions ϕ1 , . . . , ϕm données et g
dépend linéairement de ces fonctions, soit g ∈ V ect{ϕ1 , . . . , ϕm } c’est à dire :
m
X
g = α1 ϕ1 + . . . αm ϕm = αj ϕj
j=1
1
mais cette condition n’est pas suffisante pour que la matrice M soit bien inversible. L’aspect
existence et unicité des coefficients αj n’est qu’une partie des choses :
— Que choisit-on comme fonctions ϕj ?
— Peut-on jouer sur le choix des abscisses d’interpolation (leur nombre et leur position) ?
— Quel est le but du problème d’interpolation posé (on en parle tout de suite après) ? Et
va-t-on l’atteindre avec les choix fait pour les fonctions ϕj , et (peut être) pour les xi , etc.
1.0 ◊ polynôme
spline cubique
0.8 ◊ spline linéaire
0.6
0.4 ◊
0.2 ◊
◊ ◊
0
0 0.2 0.4 0.6 0.8 1.0
2. Exploitation de certaines propriétés de la fonction (symétries, périodicité, etc.) de manière à réduire l’intervalle
d’approximation par un polynôme le plus possible.
3. Lorsque les mesures sont entachées d’erreur, on préfère utiliser d’autres principes d’approximation comme les
moindres carrés.
2
Rmq : dans ce cas on ne dispose pas en général du choix des xi et les abscisses sont souvent
placées de manière régulière (xi+1 − xi = ∆x constant).
Le même type de problème peut se poser en 2d (ou plus). Dans ce cas on dispose de points de
la forme ((xi , yi ), zi ) et on cherche g : E = [a, b] × [c, d] → R telle que g(xi , yi ) = zi , i = 1, . . . , m.
De même l’espace but peut être aussi de dimension 2 (ou plus). On a alors affaire à autant de
problèmes d’interpolation différents.
En admettant que l’ensemble F(R, R) des fonctions de R dans R est un espace vectoriel réel (ce
qui est vrai) il est alors évident que Pn en est un sous-espace vectoriel 4 car ∀p, q ∈ Pn et ∀α, β ∈ R
il est clair que αp + βq ∈ Pn (si on suppose que les “coefficients” de p sont les (a0 , . . . , an ) et ceux
de q les (b0 , . . . , bn ) alors les “coefficients” de αp + βq sont les (αa0 + βb0 , . . . , αan + βbn )).
On voit aussi que ∀p ∈ Pn , p peut s’écrire :
n
X
p= ai ei avec ei : x 7→ xi
i=0
où En := (e0 , . . . , en ) forme la base canonique de Pn . C’est la plus connue mais cette base ne se
prête pas bien aux calculs avec les flottants (dès que n est un peu grand (disons n > 3)) et d’autres
bases sont utilisées.
En fait avec la définition donnée ci-avant En apparait seulement comme une Pnfamille génératrice
i
de Pn . Pour qu’elle soit une base il faut montrer qu’elle est libre : est-ce que i=0 ai e = 0 ⇒ a0 =
· · · = an = 0 ? Réponse : oui. En effet :
n
X n
X n
X
i i
ai e = 0 ⇐⇒ ai e (x) = ai xi = 0 ∀x ∈ R
i=0 i=0 i=0
De nouveau en prenant x = 0 on obtient que a1 = 0, puis en réitérant cette astuce on obtient que
tous les coefficients sont nuls. Conclusion : En est bien une base de Pn et ce dernier est donc un
espace vectoriel réel de dimension n + 1.
4. Par contre l’ensemble des fonctions polynômes de degré exactement n (ie an 6= 0) n’est pas un espace vectoriel.
3
3.2.2 Solution du problème d’interpolation dans la base canonique
Calcul des coefficients
On se donne donc n + 1 points (xi , yi ) avec des abscisses toutes distinctes (xi 6= xj si i 6= j) et
on cherche un polynôme p de Pn vérifiant les n + 1 conditions d’interpolation :
p(xi ) = yi , i ∈ J0, nK
qui constituent un système linéaire dont les inconnues sont les coefficients aj :
x0 x20 . . . xn0
1 a0 y0
1
. x1 x21 . . . xn1 a1 y1
. .. .. .. .. ..
. . . . . .
V a = y avec V = , a = et y = .
1 xi x2i . . . xni ai yi
. .. .. .. .. ..
..
. . . . .
2 n
1 xn xn . . . x n an yn
On a alors existence et unicité si la matrice V est inversible. On peut montrer que le déterminant
d’une telle matrice (dite de “Vandermonde”) est égal à :
Y
det(V ) = (xj − xi )
0≤i<j≤n
et une telle matrice est donc inversible avec la condition des abscisses toutes distinctes. Cependant
on peut aussi montrer que le conditionnement de cette matrice croı̂t très rapidement avec n et
ne convient donc pas en arithmétique flottante. D’autre part, si on utilise un algorithme standard
comme Gauss, le coût du calcul des coefficients est de 13 (n + 1)3 .
px ← a0
pour i de 1 à n
xi ← xi
px ← px + ai × xi
mais il faut préciser comment calculer xi ... On a l’algorithme de la puissance mais ici comme
on a besoin de toutes les puissances de x il suffit d’utiliser xi = x × xi−1 ce qui donne finalement :
4
La complexité de cet algorithme est 2n multiplications et n additions. Or on peut faire mieux
en utilisant le parenthésage suivant, explicité ci-dessous pour un polynôme de degré 4 :
Il est assez facile de montrer que (L0 , . . . , Ln ) est bien une base de Pn car c’est une famille libre 5 .
En effet : n n
X X
αi Li = 0 ⇐⇒ αi Li (x) = 0, ∀x ∈ R
i=0 i=0
Pn
et en prenant x = xj on obtient que αj Lj (xj ) = 0, d’où αj = 0. Ainsi i=0 αi Li = 0 ⇒ αi =
| {z }
=1
0, ∀i ∈ J0, nK.
On peut maintenant répondre à la question posée :
5. Une famille libre à m vecteurs dans un e.v. de dimension m est aussi génératrice et est donc une base.
5
Preuve : Comme Li ∈ Pn ∀i, il est clair que p ∈ Pn et p vérifie bien les n + 1 conditions
d’interpolation, en effet :
n
X n
X
p(xk ) = yi Li (xk ) = yi δi,k = yk , ∀k ∈ J0, nK.
i=0 i=0
Finalement un tel polynôme est bien unique : tout polynôme q de Pn s’écrit dans la base de
Lagrange associée aux xi :
Xn
q= q(xi )Li
i=0
et donc si q vérifie les mêmes conditions d’interpolation (q(xi ) = yi ), il vient q = p (deux vecteurs
qui se décomposent de manière identique dans une même base sont égaux).
Remarque : dans la bonne base de Lagrange (i.e. celle associée aux abscisses xi ), il n’y a pas de
coût associé à l’obtention des coefficients du polynôme d’interpolation dans cette base puisque ce
sont directement les yi (la matrice du système linéaire correspondant est la matrice identité In+1 ) !
6
La base de newton comporte de certains avantages :
— Evaluation rapide en un point x : on peut généraliser l’algorithme d’Horner et évaluer très
rapidement p(x) mais aussi p0 (x), p00 (x), etc.
— On peut rajouter successivements des points d’interpolation sans refaire tous les calculs.
Néanmoins l’évaluation dans cette base est moins stable que dans celle de Lagrange et il faut se
limiter à des polynômes de degré raisonnable.
{(x0 , y0 ), . . . , (xn−1 , yn−1 ), (α, a)} et {(x0 , y0 ), . . . , (xn−1 , yn−1 ), (β, b)}
Preuve : cf TD. A partir de cette relation on peut construire divers algorithmes (Aı̈tken, Neville,...)
qui permettent une évaluation en O(n2 ) opérations (cf TD).
est bien une norme sur C([a, b], R). De plus l’e.v.n. ainsi obtenu est complet : toute suite de
Cauchy (fk ) de fonctions de C([a, b], R) converge bien vers une fonction continue. Ainsi on pourra
mesurer la distance entre deux fonctions de C([a, b], R) par d(f, g) := kf − gk∞ et c’est ce que
nous utiliserons dans la suite.
Remarque : on peut aussi montrer que :
Z b 12
2
kf k2 := (f (x)) dx
a
7
est une norme mais C([a, b], R) muni de celle-ci n’est pas complet.
Un autre résultat intéressant est que toute fonction de C([a, b], R) peut être approchée d’aussi
près que l’on veut par un polynôme que l’on peut même construire explicitement :
vérifie :
lim kBn (f ) − f k∞ = 0
k→∞
— Pour construire un polynôme qui approche une fonction de C([a, b], R) il suffit d’utiliser la
transformation affine bijective suivante :
— Le défaut de cette approche est que pour obtenir une précision (c’est à dire trouver
le polynôme Bn (f ) vérifiant kBn (f ) − f k∞ ≤ ) il faut généralement que n soit grand,
voire très grand et ceci même pour une fonction f très régulière. Ainsi ce beau résultat
mathématique est décevant en pratique, du moins pour l’approximation de fonctions (voir
remarque suivante).
— Pour n fixé, les n + 1 polynômes Bn,j , j = 0, . . . , n forment une base de Pn appelée base
de Bernstein. Ces polynômes sont utilisés pour construire les fameuses courbes de Bézier
utilisées en CAO.
Erreur d’interpolation
On va à présent analyser l’erreur que l’on commet lorsqu’on remplace une fonction f par son
polynôme d’interpolation p associé aux points {x0 , . . . , xn } distincts. Le théorème suivant fournit
une estimation de la différence.
Théorème 4 : Erreur d’interpolation : soit f une fonction (n + 1) fois dérivable et soit p son
polynôme d’interpolation dans Pn associé aux points x0 , . . . , xn distincts. Alors pour tout x ∈ R,
il existe un réel θx ∈] min(x, xi ), max(x, xi )[ tel que
n
1 Y
f (x) − p(x) = Πn+1 (x) f (n+1) (θx ), avec Πn+1 (x) = (x − xi ).
(n + 1)! i=0
8
fois dans l’intervalle I =] min(x, xi ), max(x, xi )[. On peut à nouveau appliquer n fois le théorème
de Rolle et ainsi de suite ... De cette façon, en appliquant par récurrence le théorème de Rolle, on
obtient que la (n + 1)-ième dérivée r(n+1) s’annule une fois dans I, c’est-à-dire qu’il existe θx ∈ I
tel que r(n+1) (θx ) = 0. On en déduit que
(n+1)
0 = r(n+1) (θx ) = f (n+1) (θx ) − p(n+1) (θx ) − αΠn+1 (θx ).
(n+1) 1
Or p(n+1) ≡ 0 car deg(p) ≤ n et Πn+1 ≡ (n + 1)!. On obtient donc α = f (n+1) (θx ) ce qui
(n + 1)!
prouve le théorème.
On peut alors montrer (cf futur exercice ?) l’estimation suivante sur |Πn+1 (x)| :
n+1
1 b−a
Il est clair que −→ 0 quand n → +∞ et cette convergence vers 0 est même
(n + 1) n
très rapide. Par exemple, prenons un intervalle de longueur b − a = 10, on obtient :
n 5 10 15 20 25 30
1
( b−a )n+1
(n+1) n
1.067 101 9.091 10−2 9.515 10−5 2.271 10−8 1.732 10−12 5.223 10−17
On serait donc tenté de penser que l’erreur tend vers 0 quand n → +∞. Mais attention car
la (n + 1)-ième dérivée de f dépend de n et en fait peut croı̂tre très rapidement avec n et pour
7. On impose juste que les deux extrémités correspondent à des points d’interpolation.
9
certaines fonctions, p ne converge pas vers f lorsque n tend vers +∞. L’exemple suivant illustre
une telle situation de non-convergence.
Exemple : (Runge)
1
On considère la fonction f (x) = sur l’intervalle [−5, 5]. On note pn le polynôme d’inter-
1 + x2
polation de f aux n + 1 points équidistants dans l’intervalle [−5, 5]. On observe alors (cf.
Figure
(n)
3.1) quand n augmente, des problèmes aux extrémités de l’intervalle. En fait f (5) devient
rapidement grand avec n. On montre que pour |x| ≥ 3.83 · · · , on a |f (x) − p(x)| → +∞ quand
n → +∞.
n=10 n=20
2.1 10
f
0
1.7
-10
1.3
p10 -20
0.9
-30 p
20
0.5
-40
0.1
-50
f
-0.3 -60
-5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5
Nous venons de voir que la convergence du polynôme d’interpolation vers une fonction f n’est pas
assurée lorsqu’on choisit les points d’interpolation répartis de façon uniforme dans un intervalle
fermé borné. Mais existe-t-il une répartition (évidemment non uniforme) des points d’interpolation
pour laquelle il y aurait convergence ? Une réponse est fournie par les abscisses de Tchebichev.
Sans rentrer dans les détails et en considérant que l’intervalle sur lequel on veut approcher une
fonction est [−1, 1], le polynôme de Pn+1 (de la forme de Πn+1 ) qui minimise :
On peut voir que celles-ci sont plus denses aux extrémités de l’intervalle (−1 et 1) et sont réparties
symétriquement autour de 0 (car xn−i = −xi ).
Pour calculer les abscisses de Tchebichev d’un intervalle quelconque [a, b] il suffit d’utiliser la
transformation affine :
b−a a+b
[−1, 1] 3 x 7−→ X = x+ ∈ [a, b]
2 2
En particulier l’exemple précédent avec la fonction de Runge converge si on utilise cette
répartition. D’une manière générale les polynômes d’interpolation construits avec les abscisses
de Tchebichev convergent vers f avec peu de restrictions :
10
Théorème 5 : Si f est absolument continue sur l’intervalle [a, b] alors la séquence des polynômes
d’interpolation pn construits avec la répartition de Tchebichev converge uniformément vers f , c’est
à dire :
lim kf − p k =0
n→+∞ | {z n ∞}
=maxx∈[a,b] |f (x)−pn (x)|
Une fonction f est absolument continue sur un intervalle [a, b] si et seulement s’il existe une
fonction g intégrable (au sens de Lebesgue) sur [a, b] telle que :
Z x
f (x) − f (a) = g(t)dt, ∀x ∈ [a, b]
a
En particulier si f est dérivable sur [a, b] elle est absolument continue sur [a, b].
Un exemple
2
On cherche à approcher la fonction par interpolation f (t) = 1 + 0.5e−t cos(πt) sur [−3, 3].
Profitant de la parité de cette fonction, les calculs se font sur [0, 3]. Dans cet exemple on utilise les
abscisses de Tchebichev et la formule barycentrique de Lagrange. Avec 20 points d’interpolation
on obtient une précision relative inférieure à 10−4 et on obtient presque la précision machine avec
45 points d’interpolation.
1.5 n =20
1.4
1.3
f(t) =1 +0.5e−t2 cos(πt)
1.2 pn (t)
1.1
1.0
0.9
0.8
0.7
0.6
0.0 0.5 1.0 1.5 2.0 2.5 3.0
10-4
10-5
10-6
er(t)
10-7
10-8
11
1.6 n =45
1.4 f(t) =1 +0.5e−t2 cos(πt)
1.2
pn (t)
1.0
0.8
0.6
0.0 0.5 1.0 1.5 2.0 2.5 3.0
10-14
er(t)
10-15
On voit clairement qu’on dispose de 2(n + 1) équations. Il faut donc 2(n + 1) inconnues et par
conséquent on cherche un polynôme de degré ≤ 2n + 1.
Le polynôme d’interpolation de Lagrange-Hermite est donné par
n
X n
X
p(x) = yi Hi (x) + yi0 Ki (x), (3.1)
i=0 i=0
12
points x0 , . . . , xn distincts. Alors pour tout x ∈ R, il existe un réel θx ∈] min(x, xi ), max(x, xi )[
tel que
n
1 Y
f (x) − p(x) = Π2 (x) f (2n+2) (θx ), avec Πn+1 (x) = (x − xi ).
(2n + 2)! n+1 i=0
y1 •
•
•
y0 •
•
x0 x1 x2 x3 x4
Etant donné x il suffit donc de repérer 8 l’intervalle Ik = [xk−1 , xk ] qui contient x puis d’utiliser
l’une de ces deux formules. Si on suppose que l’on approche une fonction f sur un intervalle [a, b]
par ce procédé en utilisant n sous-intervalles a = x0 < x1 < · · · < xn = b (on notera Xn la
subdivision x0 , x1 , . . . , xn et donc yk = f (xk )) que peut-on attendre comme précision (pour une
fonction suffisamment régulière) ? La réponse est assez simple. Sur l’intervalle Ik en utilisant le
théorème sur l’erreur d’interpolation, on obtient que 9 :
1
max |f (x) − pk (x)| ≤ max |(x − xk−1 )(x − xk )| max |f 00 (x)|
x∈Ik 2 x∈Ik x∈Ik
13
Il est facile de voir que le maximum de la fonction x 7→ |(x − xk−1 )(x − xk )| est obtenu pour
x = xk−12+xk ce qui nous donne :
h2k
max |f (x) − pk (x)| ≤ max |f 00 (x)| où hk = xk − xk−1
x∈Ik 8 x∈Ik
et donc en notant pf,Xn l’interpolant ainsi construit on obtient :
h2
max |f (x) − pf,Xn (x)| ≤ max |f 00 (x)| où h = max hk
x∈[a,b] 8 x∈[a,b] k
Si on prend une subdivision régulière h = (b − a)/n il est clair que le procédé converge et que
lorsque l’on double le nombre d’intervalles la majoration d’erreur précédente est divisée par 4.
C’est en général beaucoup moins rapide que si on interpole avec un polynôme avec abscisses de
Tchebichev mais il y a une certaine souplesse, en particulier au lieu de prendre une subdivision
uniforme on a tout intérêt à resserrer les abscisses d’interpolation là où la dérivée seconde de f
est grande en module.
avec deux exceptions pour i = 0 et i = n où l’on a juste une moitiée de chapeau :
1 ϕ0 ϕi ϕn
14
Rmq : on a légèrement décalé le zéro pour ϕj (légèrement au-dessus) et ϕn (légèrement au dessous)
de manière à ne pas superposer les couleurs.
Preuve : ∀x ∈ [a, b], ∃k ∈ J1, nK tel que x ∈ Ik . Si on regarde la définition des fonctions chapeaux,
seules ϕk−1 et ϕk sont non nulles sur ce sous-intervalle et la somme dans l’expression (3.2) se réduit
donc aux deux termes :
s(x) = yk−1 ϕk−1 (x) + yk ϕk (x)
Toujours d’après (3.3), on obtient, pour x ∈ [xk−1 , xk ] :
x − xk
ϕk−1 (x) =
xk−1 − xk
x − xk−1
ϕk (x) =
xk − xk−1
d’où finalement pour x ∈ [xk−1 , xk ] :
x − xk x − xk−1
s(x) = yk−1 + yk
xk−1 − xk xk − xk−1
qui correspond bien l’interpolation affine des points (xk−1 , yk−1 ) et (xk , yk )
Une autre façon de déterminer cette base est de montrer que l’application A qui à (yk )k∈J0,nK ∈
Rn+1
associe s ∈ S1Xn est un isomorphisme d’espaces vectoriels. La base des fonctions chapeaux
est alors obtenue comme l’image de la base canonique de Rn+1 par A : ϕi est la fonction de S1Xn
qui vaut 1 en xi et 0 sur les autres noeuds.
S’il est inutile de mettre en évidence cette base des fonctions chapeaux pour faire de
l’interpolation cela est par contre indispensable lorsqu’on veut approcher des données
par moindres carrés (cf chapitre suivant).
y1 •
•
•
y0 •
•
x0 x1 x2 x3 x4
ce qui met bien en évidence le défaut de cette approche : l’interpolant n’est pas dérivable en x2 qui
est le noeud intermédiaire entre les deux polynômes. Un autre défaut est que le nombre de points
d’interpolation doit être impair 10 ou alors l’un des morceaux doit être un segment de droite. Bref
ce type d’approximation n’est généralement pas utilisé pour interpoler des points donnés (mais
peut être utile pour d’autres besoins).
10. Si on utilise des polynômes de P3 il faut que le nombre de points soit en 3m + 1, etc...
15
3.3.3 L’interpolation par fonctions splines
Dans ce cours paragraphe nous allons survoler ce domaine très important qui a de nombreuses
applications non seulement en mathématiques appliquées mais aussi en CAO. Un point de vue qui
permet d’aborder les splines est de construire des fonctions polynomiales par morceaux mais avec
des raccords plus réguliers que l’interpolation de Lagrange par morceaux.
Une première méthode pour construire une telle fonction polynomiale par morceaux est d’utiliser
un polynôme de Lagrange-hermite (avec n = 1) sur chaque segment Ik ce qui va permettre d’obtenir
une fonction continûment dérivable. Ce point de vue est développé dans l’exercice 2 de la feuille
5. Ce procédé est pratique mais assez limité, les splines permettant d’aller beaucoup plus loin.
On a déjà rencontré un tel espace : les lignes brisées qui sont des splines de degré 1. Comme
pour les lignes brisées il n’est pas obligatoire d’exhiber une base d’un tel espace pour faire de
l’interpolation, par exemple l’exercice 4 de la feuille 5 propose une méthode pour construire une
spline cubique (i.e. de degré 3) d’interpolation.
Il est assez simple de voir que SkXn est un espace vectoriel. On peut aussi deviner sa dimension
avec les arguments suivants 12 :
— on a donc n polynômes (il y a n intervalles) de degré ≤ k soit n × (k + 1) coefficients ;
— cependant ces n × (k + 1) coefficients ne peuvent pas être choisis de manière quelconque car
il faut respecter les (n − 1) × k conditions de raccords.
On en déduit donc que :
dim(SkXn ) = n × (k + 1) − (n − 1) × k = n + k
16
où la notation + désigne la partie positive d’une fonction ( (f (x))+ = f (x) si f (x) ≥ 0 et (f (x))+ =
0 sinon) et donc :
k 0 pour x < xj
(x − xj )+ := k
(x − xj ) pour x ≥ xj
C’est un bon exercice de voir que ces n + k fonctions sont bien dans l’espace SkXn (en particulier
tout polynôme de Pk est bien dans SkXn , dans ce cas les noeuds internes ne sont pas “actifs”, c’est
à dire qu’il n’y a pas de discontinuité dans la k ème dérivée) et qu’elles forment une famille libre
(et donc une base puisque le nombre de fonctions est égal à la dimension de l’espace). Cependant
cette base est très mauvaise pour les calculs en arithmétique flottante.
Les “bonnes” bases de ces espaces sont formées de splines particulières appelées B-splines et
dans le cas de S1Xn se sont exactement les fonctions chapeaux. Si on réexamine ces fonctions on
remarque qu’elles possèdent les propriétés suivantes :
1. ϕj est non nulle uniquement sur l’intervalle [xj−1 , xj+1 ] sur lequel elle est positive ;
Pn
2. j=0 ϕj (x) = 1, ∀x ∈ [a, b].
Avant d’aller plus loin notons que s’il est naturel de “centrer” ϕj en xj , cela ne l’est plus à partir
de k ≥ 2 et la tradition est de numéroter une fonction B-spline avec le numéro du noeud à partir
duquel elle devient non nulle. Avec cette convention, on note Bi1 := ϕi+1 et dans ce cas le “support”
de Bi1 est [xi , xi+2 ]. Cependant ceci ne fonctionne pas “tel que” pour les fonctions chapeaux des
deux extrémités :
1
1. B−1 = ϕ0 a comme support [x0 , x1 ] (et pas [x−1 , x1 ])
1
2. Bn−1 = ϕn a comme support [xn−1 , xn ] (et pas [xn−1 , xn+1 ])
Et il est donc naturel de rajouter des noeuds a priori en dehors de l’intervalle [a, b] de manière
à avoir une sorte d’uniformité dans la définition des B-splines. Par exemple pour les fonctions
chapeaux :
1 1 1
B−1 Bi1 Bn−1
On montre que les n + k B-splines de degré k peuvent être définies à partir des n + k + 1
B-splines de degré k − 1 que l’on peut définir à partir des noeuds x−k , . . . , xn+k par la relation :
x − xi xi+k+1 − x k−1
Bik (x) = Bik−1 (x) + B (x), i = −k, . . . , n − 1 (3.5)
xi+k − xi xi+k+1 − xi+1 i+1
17
Par exemple pour obtenir les B-splines quadratiques (k = 2), on rajoute deux noeuds x−2 et
x−1 à gauche de a et deux autres xn+1 et xn+2 à droite de b. On peut alors définir n + 3 fonctions
chapeaux :
si x ∈
0 / [xi , xi+2 ]
x−xi
1
Bi (x) = −xi
pour x ∈ [xi , xi+1 ] i = −2, . . . , n
xi+1
xi+2 −x
xi+2 −xi+1
pour x ∈ [x i+1 , xi+2 ]
qui permettent alors de définir à l’aide de (3.5) les n + 2 fonctions B-splines qui forment une base
de S2 . Pour Bi2 , on utilise donc Bi1 et Bi+1
1
:
1. sur [xi , xi+1 ] seule Bi1 est non nulle , (3.5) donne :
x − xi x − xi (x − xi )2
Bi2 (x) = = , x ∈ [xi , xi+1 ]
xi+2 − xi xi+1 − xi (xi+2 − xi )(xi+1 − xi )
18