Vous êtes sur la page 1sur 23

Splines d’interpolation Spline de régression

Chapitre 3 : Spline d’interpolation et


spline de régression

Abderrahman BOUHAMIDI

Machine Learning and Modeling


Modélisation et apprentissage automatique
M1 MISC

Bouhamidi EILCO 1 / 23
Splines d’interpolation Spline de régression

Sommaire

1 Splines d’interpolation
Définition : Spline d’interpolation
Calcul de la spline cubique d’interpolation
Spline Variationnelle
Estimation de l’erreur

2 Spline de régression
Définition : Spline de régression
Calcul de la spline cubique de régression
Spline de régression variationnelle

Bouhamidi EILCO 2 / 23
Splines d’interpolation Spline de régression

Définition : Spline d’interpolation

Données: a = x0 , . . . , xn = b : n + 1 valeurs de R deux à deux distinctes.


Données: y0 , . . . , yn : n + 1 valeurs de R.
Problème: déterminer une fonction spline S : t ∈ [a, b] −→ R telle que

S(xi ) = yi , i = 0, . . . , n,

Définition
La fonction spline d’ordre m relative aux noeuds xi est une fonction Sm vérifiant:
Sm |[xi ,xi+1 ] est un polynôme de degré 2m − 1 sur chaque intervalle [xi , xi+1 ] pour
i = 0, · · · , n − 1.
(2m−2)
La dérivéee Sm est continue sur [a, b].
(m+k) (m+k)
Sm (a) = Sm (b) = 0 pour k = 0, · · · , m − 2.

Bouhamidi EILCO 3 / 23
Splines d’interpolation Spline de régression

Définition : Spline d’interpolation

(2) (2)
Exemple: Si m = 2, alors S2 (a) = S2 (b) = 0.

Théorème Spline cubique (ordre m = 2)


Il existe une unique fonction spline Sm La fonction spline cubique relative aux
d’ordre m relative aux noeuds ti noeuds xi est une fonction S = S2
vérifiant les conditions d’interpolation: ayant les propriétés suivantes:
S|[xi ,xi+1 ] est un polynôme de
Sm (xi ) = yi , i = 0, · · · , n. degré 3 sur chaque intervalle
[xi , xi+1 ] pour i = 0, · · · , n − 1.
S 00 est continue sur [a, b].
S 00 (a) = S 00 (b) = 0.

Bouhamidi EILCO 4 / 23
Splines d’interpolation Spline de régression

Définition : Spline d’interpolation

Exemple : Spline S1 d’ordre 1


xi 0 1 3 7 8 10 13 15 20
yi 2 2 0 -3 5 3 7 1 1

Figure: Spline d’ordre 1

Bouhamidi EILCO 5 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

Pour x ∈ [xi , xi+1 ] et i = 0, . . . , n − 2, on pose hi = xi+1 − xi


1 1
S(x) = yi + ui (x − xi ) + vi (x − xi )2 + wi (x − xi )3 .
2 6
On a
1
S 0 (x ) = ui + vi (x − xi ) + wi (x − xi )2
2
S 00 (x ) = vi + wi (x − xi ).
Par suite S(xi ) = yi , S 0 (xi ) = ui , S 00 (xi ) = vi , pour i = 0, . . . , n, et
1 1
yi+1 = S(xi+1 ) = yi + ui hi + vi hi2 + wi hi3
2 6
1
ui+1 = S 0 (xi+1 ) = ui + vi hi + wi hi2
2
vi+1 = S 00 (xi+1 ) = vi + wi hi .
Alors
S 00 (xi+1 ) − S 00 (xi ) vi+1 − vi
wi = = , (Eq1)
hi hi
1 1
   
et ui = S 0 (xi+1 ) − vi hi + wi hi2 = ui+1 − vi hi + wi hi2 ,
2 2
Ce qui donne
1
ui+1 − ui = vi hi + wi hi2 . (Eq2)
2
Bouhamidi EILCO 6 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

On obtient

1 1 S(xi+1 ) − S(xi )
ui + vi hi + wi hi2 = . (Eq3)
2 6 hi

De même, on a

1 1 2 S(xi ) − S(xi−1 )
ui−1 + vi−1 hi−1 + wi−1 hi−1 = . (Eq4)
2 6 hi−1

(Eq 3)-(Eq4) et en tenant compte des équations (Eq1) et (Eq2), on obtient pour
i = 1, · · · , n − 1

hi−1 hi−1 + hi hi S(xi+1 ) − S(xi ) S(xi ) − S(xi−1 )


vi−1 + vi + vi+1 = − . (SL−Interp)
6 3 6 hi hi−1

Les conditions d’interpolation:

S(xi ) = yi , et S(xi+1 ) = yi+1 pour i = 1, · · · , n − 1,

donnent pour i = 1, · · · , n − 1
hi−1 hi−1 + hi hi yi+1 − yi yi − yi−1
vi−1 + vi + vi+1 = − .
6 3 6 hi hi−1

Bouhamidi EILCO 7 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

hi−1 + hi
αi = pour i = 1, · · · , n − 1
3
hi
Si on pose βi = pour i = 1, · · · , n − 1
6
yi+1 − yi yi − yi−1
bi = − pour i = 1, · · · , n − 1
hi hi−1
On résout le système
AX = b,
avec
 
α1 β1 0 ··· 0  b   v 
1 1
.. .. .. ..
 b2  v2
 
 β1 . . . .   
 .  .
.. .. ..  , b =  ..  , X =  ..
   
A=
 0 . . . 0    


 .. .. .. ..
  ..   .. 
. . . . .
. βn−1
 
bn−1 vn−1
0 ··· 0 βn−1 αn−1

On v0 = vn = 0. La matrice A de taille (n − 1) × (n − 1) est tridiagonale à diagonale


strictement dominante, elle est inversible. Le vecteur b est de taille (n − 1) × 1.

Bouhamidi EILCO 8 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

La résolution se fait par


décomposition LU, Si on note Script Matlab
(L1 , · · · , Ln−1 )T le vecteur de la
diagonale inférieure de L et u(1)=a(1);
(u1 , · · · , un−1 )T avec for i=2:n-1
(d1 , · · · , dn−1 )T les vecteurs des L(i)=b(i)/u(i-1);
diagonales principale et supérieure u(i)=a(i)-L(i)*d(i);
de U. end
On obtient y(1)=b(1);
for i=2:n-1
u1 = a 1 y(i)=b(i)-L(i)*y(i-1);
pour i = 2 : N − 2 end
Li ui−1 = bi x(n-1)=y(n-1)/u(n-1);
di = bi for i=n-2:-1:1,
L i d i + u i = ai x(i)=(y(i)-b(i+1)*x(i+1))/u(i);
fin-pour end
x=reshape(x,1,n-1);
v=[0,x,0];
ce qui donne :

u(1) = a(1);
for i = 2 : N − 2
L(i) = b(i)/u(i − 1);
u(i) = a(i) − L(i) ∗ d(i);
end
Bouhamidi EILCO 9 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

Spline Cubique: Exemple


ti = xi 0 1 3 7 8 10 13 15 20
yi 2 2 0 -3 5 3 7 1 1

Figure: Spline cubique.

Bouhamidi EILCO 10 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

Exemple de Runge et spline cubique

Figure: Interpolation avec N = 35.

Bouhamidi EILCO 11 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique d’interpolation

Stabilité de l’interpolation
i
f (t) = sin(2πt) sur [−1, 1] avec ti = −1 + 10
et yi = f (ti ) + εi pour i = 1, . . . , 21

Bouhamidi EILCO 12 / 23
Splines d’interpolation Spline de régression

Spline Variationnelle

Soit C une courbe donnée par la paramétrisation X (t) = (x (t), y (t)) ∈ R2 ,


t ∈ [a, b] ⊂ R.
La courbure de C est
||X 0 (t) ∧ X 00 (t)||
k(t) =
||X 0 (t)||3
L’énergie de flexion de la courbe C est

b b
2
x 00 (t)y 0 (t) − y 00 (t)x 0 (t)
Z Z
2
E (X ) = [k(t)] dt = 5/2 dt
a a [x 0 (t)]2 + [y 0 (t)]2

Pour X (t) = (t, y (t)) c-à-d:C est donnée par y : t → y (t), on obtient

b
2
y 00 (t)
Z
E (y ) = 5/2 dt
a 1 + [y 0 (t)]2

Z b
On cherche y telle que |y 0 |  1, alors E devient E (y ) = [y 00 (t)]2 dt.
a

Bouhamidi EILCO 13 / 23
Splines d’interpolation Spline de régression

Spline Variationnelle

Z b

H 2 ([a, b]) = u : a-c sur [a, b]; [u 00 (x )]2 dx < ∞
a

Soit a = x0 < x1 < · · · < xn < xn+1 = b et f1 , · · · , fn ∈ R. On considère

Trouver σ ∈ H 2 , vérifiant

(P2 ) E (σ) = min E (u),
u∈If

avec If := u∈ H2 : u(xi ) = fi , i = 1, · · · , n

Théorème
Le problème (P2 ) a une solution unique. C’est la spline cubique S sur [a, b] relative
aux noeuds ti ayant les propriétés:
S|[xi ,xi+1 ] est un polynôme de degré 3 sur chaque intervalle [xi , xi+1 ] pour
i = 1, · · · , n − 1.
S est un polynôme de degré 1 sur chaque intervalle [a, x1 ] et [xn , b].
S 00 est continue sur [a, b].

On a S 00 (a) = S 00 (b) = 0.

Bouhamidi EILCO 14 / 23
Splines d’interpolation Spline de régression

Spline Variationnelle

Soit Z b

H m ([a, b]) = u : a-c sur [a, b]; [u (m) (x )]2 dx < ∞
a

Trouver σ ∈ If , vérifiant
(Pm ) Em (σ) = min Em (u)
u∈If

avec Z b

If := u ∈ H m : u(xi ) = fi , i = 1, · · · , n et Em (u) := [u (m) (x )]2 dx .
a

Théorème
Le problème (Pm ) a une solution unique. C’est la spline Sm sur [a, b] d’orde m relative
aux noeuds xi ayant les propriétés:
Sm |[xi ,xi+1 ] est un polynôme de degré 2m − 1 sur chaque intervalle [xi , xi+1 ] pour
i = 1, · · · , n − 1.
Sm est un polynôme de degré m − 1 sur chaque intervalle [a, x1 ] et [xn , b].
S (2m−2) est continue sur [a, b].
(m+k) (m+k)
On a Sm (a) = Sm (b) = 0 pour k = 0, . . . , m − 2.
Bouhamidi EILCO 15 / 23
Splines d’interpolation Spline de régression

Spline Variationnelle

Autre expression de la spline


2m−1
x+
On pose φ(x ) = avec x+ = x si x ≥ 0 et x+ = 0 si x < 0.
(2m − 1)!
n m−1 n
X X X
Sm (t) = λi φ(x − xi ) + αj x j avec λi xik = 0 , k = 0, 1, · · · , m − 1.
i=1 j=0 i=1

On montre que la dérivée Sm


(2m−1) On pose
représente des discontinuités de 1ère λ = (λ1 , · · · , λn )T , α = (α0 , · · · , αm−1 )T ,
espèce aux noeuds xi , avec un saut σi K = (φ(xi − xj ))1≤i,j≤n ,
donné par: M = (tij ) 1≤i≤N , f = (f1 , · · · , fn )T ,
0≤j≤m−1
(2m−1) (2m−1)
σi = λi = Sm (xi+ ) − Sm (xi− ) Alors les vecteurs λ et α sont calculés par
résolution du système

    
K M λ f
=
MT O α 0

Bouhamidi EILCO 16 / 23
Splines d’interpolation Spline de régression

Estimation de l’erreur

Théorème
Soit f une fonction de C 4 ([a, b]), S la spline cubique sur [a, b] interpolant la fonction
f aux noeuds xi . Alors, pour k = 0, 1, 2, il existe Ck > 0 telle que

||f (k) − S (k) ||∞ ≤ Ck h4−k ||f (4) ||∞

avec h = max hi et hi = xi+1 − xi , i = 1, · · · , N − 1.


0≤i≤N−1
On a C0 = 5/384, C1 = 1/24, C2 = 3/8.

La convergence uniforme est assurée

lim ||f (k) − S (k) ||∞ = 0, k = 0, 1, 2.


h→0

Bouhamidi EILCO 17 / 23
Splines d’interpolation Spline de régression

Définition : Spline de régression

(spline de régression, spline de lissage, Smoothing spline, regression spline, spline


fitting)
Données:
a = x0 < x1 < . . . < xn < xn+1 = b abscisses 2 à 2 distinctes dans [a, b], avec n
très grand.
y1 , . . . , yn des valeurs réelles.
1.2 1.2

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2
−5 −4 −3 −2 −1 0 1 2 3 4 5 −5 −4 −3 −2 −1 0 1 2 3 4 5

n = 100 points. n = 100 points.

Bouhamidi EILCO 18 / 23
Splines d’interpolation Spline de régression

Définition : Spline de régression

Soient ρi > 0 pour i = 1, · · · , n. On pose ρ = (ρ1 , · · · , ρn )T et


Z b
m

H ([a, b]) = u : a-c sur [a, b]; |u (m) (x )|2 dx < ∞
a

Problème 3.
Trouver σ ∈ H m vérifiant
Eρ (σ) = min Eρ (u)
u∈H m
Z b n
X 1
avec Eρ (u) := |u (m) (x )|2 dx + |u(xi ) − yi |2 .
a
ρi
i=0

Proposition
La solution du problème 3 est la fonction spline Sm d’ordre m vérifiant la condition
h i
(2m−1) (2m−1)
Sm (xi ) + (−1)m ρi Sm (xi+ ) − Sm (xi− ) = yi ,

pour i = 1, · · · , n.

Bouhamidi EILCO 19 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique de régression

Pour m = 2, on obtient
h i
(3) (3)
(?) S2 (xi ) + ρi S2 (xi+ ) − S2 (xi− ) = yi . (?)

Pour x ∈ [xi , xi+1 ] et i = 0, . . . , n − 2, on a hi = xi+1 − xi et


1 1
S(x) = yi + ui (x − xi ) + vi (x − xi )2 + wi (x − xi )3 .
2 6
Alors vi = S 00 (xi ), pour i = 0, · · · , n. Comme S 00 (x0 ) = S 00 (xn ) = 0 alors v0 = vn = 0.
Pour tout t ∈]xi , xi+1 [ avec i = 0, · · · , n − 2, on a
1 vi+1 − vi
S 00 (x ) = vi + wi (x − xi ), et S 000 (x ) = wi = .
2 hi
Par suite
vi+1 − vi vi − vi−1
S 000 (xi+ ) − S 000 (xi− ) = −
hi hi−1
Les coefficients vi de la spline cubique vérifient pour i = 1, · · · , n − 1
hi−1 hi−1 + hi hi S(ti+1 ) − S(ti ) S(ti ) − S(ti−1 )
vi−1 + vi + vi+1 = −
6 3 6 hi hi−1
La condition (?) s’écrit pour i = 1, · · · , n − 1
 
vi+1 − yi yi − yi−1
S(xi ) = yi − ρi − .
hi hi−1
Bouhamidi EILCO 20 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique de régression

Si on pose pour i = 1, · · · , n − 1,
 2
hi−1 + hi ρi−1 1 1 ρi+1
αi = + 2 + ρi + + ,
3 hi−1 hi−1 hi hi2
 
hi ρi 1 1 ρi+1 1 1
 
βi = − + − + ,
6 hi−1 hi−1 hi hi hi hi+1

ρi+1
γi = ,
hi hi+1

yi+1 − yi yi − yi−1
bi = − .
hi hi−1
On résout le système AX = b, avec
 
α1 β1 γ1 ··· 0  b   v 
1 1
.. .. .. ..
 b2  v2
 
 β1 . . . .   
 .  .
.. .. ..  , B =  ..  , X =  ..
   
A=
 γ1 . . . γn−3    
.

 .. .. .. ..
  ..   .. 
. . . . .
. βn−2
 
bn−1 vn−1
0 ··· γn−3 βn−2 αn−1

Bouhamidi EILCO 21 / 23
Splines d’interpolation Spline de régression

Calcul de la spline cubique de régression

La spline cubique de régression, est alors donnée pour x ∈ [xi , xi+1 ] avec
i = 0, · · · , n − 1 par

1 1
S(x) = yi + ui (x − xi ) + vi (x − xi )2 + wi (x − xi )3 .
2 6

Elle vérifie  
vi+1 − vi vi − vi−1
S(xi ) = yi − ρi − .
hi hi−1

Bouhamidi EILCO 22 / 23
Splines d’interpolation Spline de régression

Spline de régression variationnelle

n m−1 n
X X X
On a Sm (x ) = λi φ(x − xi ) + αj x j , avec λi xik = 0, pour
i=1 j=0 i=1
2m−1
x+
k = 0, 1, · · · , m − 1. La fonction φ est donnée par φ(x ) = , où x+ = x si
(2m − 1)!
x ≥ 0 et x+ = 0 si x < 0.
(2m−1)
On rappelle que la dérivée Sm représente des discontinuités de 1ère espèce aux
noeuds xi avec un saut σi donné par:

(2m−1) (2m−1)
σi = λi = Sm (xi+ ) − Sm (xi− ).

Ce qui donne
Sm (xi ) + (−1)m ρi λi = yi ,

pour i = 1, · · · , n. Si on pose K = (φ(xi − xj ))1≤i,j≤n , M = (xij ) 1≤i≤n et


0≤j≤m−1
b = (y1 , · · · , yn )T , alors les coefficients λ = (λ1 , · · · , λn )T et α = (α0 , · · · , αm−1 )T
sont calculés par résolution du système

K + (−1)m diag(ρ)
    
M λ b
= .
MT O α 0

Bouhamidi EILCO 23 / 23

Vous aimerez peut-être aussi