Les splines cubiques
Soit ( x i , yi ), i = 0,1,..., n , n+1 points de collocation. On veut déterminer la
spline cubique interpolant ces points de sorte qu’on impose des valeurs à la
dérivée seconde aux extrémités.
La spline est polynomiale de degré 3 sur tout intervalle x i , x i +1 ,
i = 0,1,..., n − 1 et est de classe C2 sur x 0, xn . Alors, P ' et P '' sont
polynomiaux sur x i , x i +1 , de degré respectif 2 et 1.
Posons Pi'' ( x i ) = M i pour i = 0,1,..., n − 1 et Pn''−1 ( x n ) = M n ,
On a, en utilisant le fait que P '' coïncide avec un polynôme de degré 1 sur
x i , x i +1 , :
x − x i +1 x − xi
Pi'' ( x ) = M i + M i +1 , i = 0,1,..., n − 1
x i − x i +1 x i +1 − x i
Ainsi,
2 2
M ( x − x i +1 ) M ( x − xi )
Pi' ( x ) = i + i +1 + αi , i = 0,1,..., n − 1
2 x i − x i +1 2 x i +1 − x i
2 2
M ( x − x i +1 ) M ( x − xi )
=− i + i +1 + αi , i = 0,1,..., n − 1
2 hi 2 hi
Et
3 3
M ( x − x i +1 ) M ( x − xi )
Pi ( x ) = − i + i +1
6 hi 6 hi
+ αi ( x − x i ) + βi , i = 0,1,..., n − 1
Mais
hi2
Pi ( x i ) = yi ⇒ βi = yi − M i
6
hi2
Pi ( x i +1 ) = yi +1 ⇒ M i +1 + hi αi + βi = yi +1
6
1
1 hi2
αi = y − M − β
i +1
hi i
6 i
1 hi2 hi2
= y i +1 − M i +1 − y − M i
hi 6 i 6
h h
αi = f x i , x i +1 + M i i − M i +1 i
6 6
Alors,
3 3
M ( x − x i +1 ) M ( x − xi )
Pi ( x ) = − i + i +1
6 hi 6 hi
h h
+ f x i , x i +1 + M i i − M i +1 i ( x − x i )
6 6
hi2
+ yi − M i
6
On voit bien que la détermination complète de P revient à la détermination
de M i , i = 1,..., n − 1
Jusque-là, nous avons exploité la continuité de P et P '' . Pour la
détermination des M i , i = 0,1,..., n , utilisons la continuité de P ' .
Pour i = 1,..., n − 1, Pi'−1 ( x i ) = Pi' ( x i )
C’est-à-dire, pour i = 1,..., n − 1 ,
2
M i ( x i − x i −1 ) h h
+ f x i −1, x i + M i −1 i −1 − M i i −1
2 hi −1 6 6
2
M ( x − x i +1 ) h h
=− i i + f x i , xi +1 + M i i − M i +1 i
2 hi 6 6
hi −1 h h h h h
M i −1 + i −1 − i −1 + i − i M i + i M i +1 = f x i , x i +1 − f x i −1, x i
6 2 6 2 6 6
hi −1M i −1 + 2 ( hi −1 + hi ) M i + hiM i +1 = 6 ( f x i , x i +1 − f x i −1, x i )
2
hi −1 hi
M i −1 + 2M i + M = 6 f x i −1, x i , x i +1
hi −1 + hi hi −1 + hi i +1
hi hi +1
M i + 2M i +1 + M = 6 f x i , x i +1, x i +2 , i = 0,..., n − 2
hi + hi +1 hi + hi +1 i +2
Milieu : i = 1,..., n − 3 et extrémité : i = 0, i = n −2
Alors, au milieu, on a
hi hi +1
M i + 2M i +1 + M = 6 f x i , x i +1, x i +2 , i = 1,..., n − 3
hi + hi +1 hi + hi +1 i +2
Aux extrémités ( i = 0, et i = n − 2 ) , on a
h0 h1
M 0 + 2M1 + M = 6 f x 0, x1, x 2
h0 + h1 h0 + h1 2
hn −2 hn −1
M n −2 + 2M n −1 + M = 6 f x n −2, x n −1, x n
hn −2 + hn −1 hn −2 + hn −1 n
Dans les deux expressions précédentes, M0 et Mn sont connus et les termes
les comportant peuvent passer au second membre :
h1 h0
2M1 + M 2 = 6 f x 0, x 1, x 2 − M
h0 + h1 h0 + h1 0
hn −2 hn −1
M n −2 + 2M n −1 = 6 f x n −2, x n −1, x n − M
hn −2 + hn −1 hn −2 + hn −1 n
De façon globale, on peut écrire sous forme matricielle, tout le système
d’inconnues M i , i = 1,..., n − 1
3
h2
2 0 ⋯ 0 M1
h1 + h2
⋮
h
⋮
1
⋱ ⋱ ⋱ ⋮
h1 + h2
0 ⋱ ⋱ ⋱ 0 ⋮
⋮
hn −1
⋮ ⋱ ⋱ ⋱
hn −2 + hn −1
⋮
hn −2
0 ⋯ 0 2
hn −2 + hn −1 M n −1
h0
6 f x 0 , x 1, x 2 −
h + h M0
0 1
6 f
x1, x 2 , x 3
= ⋮
6 f x n −3 , x n −2 , x n −1
hn
6f x n −2 , x n −1, x n − M
h
n −1 + hn
n
Spline et courbes enveloppes
Soit Ai ( x i , yi ), i = 0,1,..., n , n+1 points de collocation. On veut déterminer
pour une épaisseur e donnée, les points Bi ( x i , yi ) et C i ( x i , yi ), i = 0,1,..., n
de sorte que pour k donné avec 0 ≤ k ≤ n , la tangente en Ak ( x k , yk ) à la
spline cubique interpolant les Ai ( x i , yi ), i = 0,1,..., n soit la médiatrice du
segment BkC k et que BkC k = 2e . Ainsi, les deux splines interpolant
respectivement les points Bk , k = 0,1,..., n et C k , k = 0,1,..., n sont deux
courbes enveloppes de la spline interpolant Ak , k = 0,1,..., n
4
Bk
Ak
Ck
Détermination des coordonnées de Bk , k = 0,1,..., n et C k , k = 0,1,..., n
On sait que
A B = A C = A B = A C = e, k = 0,1,..., n − 1
k k k k n n n n
yBk − yAk yC − yA
k( k) × Pk' ( x k ) = −1, k = 0,1,..., n − 1
'
× P x = k k
x B − x A xC − x A
k k k k
y − y yC − yA
Bn An
× Pn' −1 ( x n ) = n n
× Pn' −1 ( x n ) = −1
x − x xC − x A
Bn An n n
Donc
2 2 2 2
( x B − x A ) + ( yB − yA ) = ( x B − x A ) + ( yB − yA ) = e 2
k k k k n n n n
y − y P ' ( x ) = − x − x
Bk
( Ak ) k k ( Bk Ak )
( yBn − yAn ) Pn −1 ( x n ) = −( x Bn − x An )
'
5
2 e2
( y − yA ) =
Bk k
P ' ( x ) 2 + 1
k k
2
2 e 2 Pk' ( x k )
( x Bk − xA
k
) = 2
P ' ( x ) + 1
k k
y
( Bk − yA ) Pk' ( x k ) = − ( x B − x A
k k k
)
2 e2
( yB − yA ) =
n n
P ' ( x ) 2 + 1
n −1 n
2
2 e 2 Pn' −1 ( x n )
( x − xA ) =
Bn n
P ' ( x ) + 1 2
n −1 n
( y − yA ) Pn' −1 ( x n ) = − ( x B − x A )
Bn n n n
On peut adopter
ePk' ( x k )
x = xA +
Bk
P ' ( x )2 + 1
k
k k
e
yB = yA −
k k
P ' ( x ) 2 + 1
k k
ePk' ( x k )
x = xA −
Ck
P ' ( x )2 + 1
k
k k
e
yC k = yA +
P ' ( x )2 + 1
k
k k
Et
6
ePn' −1 ( x n )
x = xA +
Bn
P ' ( x ) 2 + 1
n
n −1 n
e
yB = yA −
n n
P ' ( x ) 2 + 1
n −1 n
ePn' −1 ( x n )
x = xA −
C n
P ' ( x ) 2 + 1
n
n −1 n
e
yC n = yA +
P ' ( x ) 2 + 1
n
n −1 n
M h
Pi' ( x i ) = f x i , x i +1 − i hi − M i +1 i , i = 0,1,..., n − 1
3 6
h h
Pn' −1 ( x n ) = f x n −1, x n + n −1 M n + n −1 M n −1
3 6
h h
αn −1 = f x n −1, x n + M n −1 n −1 − M n n −1
6 6
7
8
9