Splines cubiques
Download
Report
Transcript Splines cubiques
PROGRAMMATION
SCIENTIFIQUE EN C
PRO-1027
Interpolation de fonctions
Faiblesse
de l’interpolation polynomiale
Interpolation par splines cubiques
Travail pratique 3 b)
– Affichage de 2 courbes avec xgraph
Mini-test
#2
Faiblesse de l’interpolation polynomiale
Le
nombre de points de contrôle influence directement le degré du polynôme d’interpolation
Si nous avons n points de contrôle, le polynôme
d’interpolation sera alors de degré n-1
Faiblesse de l’interpolation polynomiale
Faiblesse de l’interpolation polynomiale
Faiblesse de l’interpolation polynomiale
• Correction possible: interpolation par bout
Interpolation par splines cubiques
Pour
un ensemble de points de contrôle (xi,f(xi)),
i=1,...,n nous savons qu’un polynôme de degré
maximal n-1 peut être utilisé comme fonction
d’interpolation
La précision de l’interpolation est généralement
améliorée en augmentant le degré du polynôme
d’interpolation
Par contre, si f(xi) change brusquement pour des
variations constantes de xi la précision de l’interpolation avec un polynôme de degré supérieur diminue
Interpolation par splines cubiques
Le
polynôme d’interpolation oscille alors autour de
ces changements abruptes
Dans ces circonstances nous devrions employer des
polynômes d’interpolation d’ordre inférieurs tels que
des splines
Interpolation par splines cubiques
Splines
linéaires
– Les points de contrôle (xi,f(xi)), i=1,...,n sont interpolés
par des droites reliants chaque paire de points de contrôle adjacente et leur forme respective est donnée par:
f1 ( x ) f ( x1 )
f 2 ( x ) f ( x2 )
f ( x2 ) f ( x1 )
x2 x1
x x1
f ( x3 ) f ( x2 )
x3 x2
Pour x1 x x2
x x2
Pour x2 x x3
x xi
Pour xi x xi 1
f i ( x ) f ( xi )
f ( xi 1 ) f ( xi )
xi 1 xi
f n 1 ( x ) f ( xn 1 )
f ( xn ) f ( xn 1 )
xn xn 1
x xn 1
Pour xn 1 x xn
Interpolation par splines cubiques
Splines
linéaires
– De plus, pour être valide l’ensemble des splines
linéaires doivent satisfairent
f i 1 ( xi ) f i ( xi )
Pour i 2, , n 1
Interpolation par splines cubiques
Splines
cubiques
– Plutôt que d’utiliser une droite comme fonction interpolante de chaque intervalle (xi,xi+1) nous pouvons
utiliser une fonction de degré 3 de la forme:
Si ( x) ai x bi x ci x d i
3
2
Pour i 1, , n 1
Interpolation par splines cubiques
Splines
cubiques
– Nous cherchons l’ensemble des splines cubiques
Si(x) qui interpolent chaque intervalle (xi,xi+1), i=
1,...,n-1
3
2
S1 ( x) a1 x b1 x c1 x d1 , x x1 , x2
3
2
S
(
x
)
a
x
b
x
c2 x d 2 , x x2 , x3
2
2
2
S ( x)
S ( x ) a x 3 b x 2 c x d , x x , x
n 1
n 1
n 1
n 1
n 1
n
n 1
Interpolation par splines cubiques
Splines
cubiques
– Les splines Si-1 et Si sont reliées au point de contrôle xi, i
= 2,...,n-1, alors
Si 1 ( xi ) f ( xi ) yi Si ( xi )
Interpolation par splines cubiques
Splines
cubiques
– Les dérivées première et seconde S' et S'' sont aussi
supposées continues aux points xi.
– Pour trouver les splines Si(x) sur chaque intervalle
[xi,xi+1], nous posons d’abord:
zi Si ' ' ( xi )
Pour i 1, n
Interpolation par splines cubiques
Splines
cubiques
– Puisque Si est cubique sur l’intervalle [xi,xi+1], Si'' est
alors linéaire sur l’intervalle i et prend la forme:
S i ' ' ( xi ) zi
S i ' ' ( xi 1 ) zi 1
Si ' ' ( x)
zi
hi
xi 1 x
hi xi 1 xi
zi 1
hi
x xi
Interpolation par splines cubiques
Splines
cubiques
– En intégrant deux fois Si''(x) nous obtenons:
Si ( x)
zi
6hi
xi 1 x
3
zi 1
6hi
x xi 3 c( x xi ) d ( xi 1 x)
– Sachant que Si(xi) = f(xi) = yi et Si(xi+1) = f(xi+1) = yi+1,
nous pouvons déduire les constantes c et d
Interpolation par splines cubiques
Splines
cubiques
– Nous pouvons alors réécrire Si(x):
Si ( x)
zi
6hi
xi 1 x
3
zi 1
6hi
x xi
3
yi 1 zi 1hi
6
hi
yi zi hi
( x xi )
h 6 ( xi 1 x)
i
– Cherchons maintenant les inconnues zi sachant que:
Si 1 ' ( xi ) Si ' ( xi )
Interpolation par splines cubiques
Splines
cubiques
– En dérivant Si(x) nous obtenons:
S i ' ( xi )
hi
3
S i 1 ' ( xi )
zi
hi 1
3
hi
6
zi 1
zi 1
hi 1
6
yi
yi 1
hi
hi
zi 1
yi 1
hi 1
yi
hi 1
Interpolation par splines cubiques
Splines
cubiques
– En égalant ces 2 expressions dérivées:
hi 1 zi 1 2hi hi 1 zi hi zi 1
6
hi
yi 1 yi
6
hi 1
yi yi 1
– Cette dernière équation est calculée pour chaque point de
contrôle i=2,....,n-1
Interpolation par splines cubiques
Splines
cubiques
– Nous pouvons alors déduire un système d’équations
linéaires de n-2 équations et n inconnus z1,...zn.
– Ce système étant sous-déterminé nous posons alors z1
= zn = 0
– Ce qui représente les conditions aux frontières de
l’intervalle [x1, xn]
Interpolation par splines cubiques
Splines
cubiques
– Nous pouvons alors écrire ce système d’équations linéaires de n-2
u 2 h2
z 2 v2
équations
h
2
u3
h3
h3
u4
h4
hn 3
un2
hn 2
hi xi 1 xi
ui 2hi hi 1
bi
6
hi
( yi 1 yi )
vi bi bi 1
z3
v3
z 4 v4
hn 2 z n 2 vn 2
u n 1 z n 1 vn 1
Interpolation par splines cubiques
Algorithme
Lire les xi
Lire les yi
Pour m valeurs de x dans l’intervalle [minx, maxx] FAIRE
Trouver l’intervalle i dans lequel se trouve la valeur de x
Calculer Si(x)
Écrire x et Si(x) dans un fichier
FIN POUR
Mini-test #2
Faire
la partie 3 b) sur les splines
Réviser les méthodes de recherche de zéros de
fonction
Travail pratique 3 b)
Recherche
du chemin interpolant un ensemble de
points par les splines cubiques(exemple du taxi)