Académique Documents
Professionnel Documents
Culture Documents
Rappels :
Soient n + 1 points distincts de R2 à interpoler :(xi , f (xi )) pour i = 0 . . . n. On rappelle que les n + 1
polynômes de Newton ωk associés au problème sont définis par :
ω0 = 1
k−1
ω k ∈ Pk : Y
k
ω (x) = (x − x0 ) . . . (x − xk−1 ) = (x − xj ), k = 1 . . . n
j=0
où Pk désigne l’espace vectoriel des polynômes de degré inférieur ou égal à k. On rappelle également la
formule de récurrence qui définit les n + 1 différences divisées de f :
f [x0 ] = f (x0 )
f [x1 , . . . , xk ] − f [x0 , . . . , xk−1 ] (1)
f [x0 , . . . , xk ] = , k = 1 . . . n.
xk − x0
Dans cette partie, nous allons tout d’abord nous intéresser aux différences divisées, à leur program-
mation directe et à certains avantages de cette méthode de calcul.
Ce sera également l’occasion de voir concrètement, sur un exemple bien précis, qu’il faut faire très atten-
tion aux erreurs d’arrondis.
Ensuite, nous nous servirons de ce programme pour tracer des polynômes d’interpolation dans la base
de Newton, puisque leurs coefficients sont précisement les différences divisées. Enfin, nous essaierons de
voir comment améliorer le temps de calcul du polynôme d’interpolation en utilisant une autre méthode
de calcul pour les différences divisées.
1 Différences divisées
On considère une fonction f et deux vecteurs x et y, où les xi sont les noeuds d’interpolation, et les
yi = f (xi ) sont les valeurs de f correspondantes.
Les différences divisées sont données par la formule (1). On peut représenter cette formule par un tableau,
où le terme (i, j) est calculé à partir des éléments (i − 1, j − 1) et (i, j − 1) :
f [x0 ]
f [x1 ] f [x0 , x1 ]
f [x2 ] f [x1 , x2 ] f [x0 , x1 , x2 ]
.. .. .. ..
. . . .
f [xn ] f [xn−1 , xn ] f [xn−2 , xn−1 , xn ] ... f [x0 , x1 , . . . , xn−1 , xn ].
1
Question 1 On se donne les 5 points suivants dans R2 :
xi −3 −1 0 2 4
f (xi ) 2 0 2 −1 1
Question 2 Ecrivez une fonction Scilab diff div qui renvoie le tableau des différences divisées (tab 1)
en fonction de x et y.
Comparez les résultats de la question 1 avec ceux obtenus à l’aide de cette fonction.
On souhaite maintenant voir ce qu’il se passe si on rajoute un point d’interpolation. Pour celà, on
étudie la fonction f1 (x) = 1 + sin(3x) sur l’intervalle [0,2].
Question 3 1. Calculez les différences divisées si les nœuds sont équirépartis avec un pas de 0.4.
2. On rajoute à nos points d’interpolation la valeur de f1 en 0.2. Recalculez les différences divisées
correspondantes. Comparez les résultats obtenus dans les deux cas.
3. (Bonus, à faire uniquement si vous avez fini le reste) En utilisant ce que vous avez vu à la question
précédente, écrivez un programme qui permette de modifier le tableau des différences divisées si on
rajoute un nœud.
On considère toujours la fonction f1 mais sur l’intervalle [0,0.0002], avec 6 nœuds équirépartis.
Question 5 Calculez les différences divisées pour ce problème. Commentez les valeurs obtenues.
Question 6 Soit z le vecteur qui contient les abscisses où le polynôme de Newton doit être évalué.
1. Ecrivez une fonction newton qui renvoie le polynôme d’interpolation dans la base de Newton aux
points zi .
2. Comparez ce résultat avec celui obtenu par l’interpolation de Vandermonde.Pour cela, choisissez
plusieurs fonctions f et tracez les polynômes correspondants.
Une autre méthode pour remplir le tableau des différences divisées est la suivante :
f [x0 ]
f [x1 ] f [x0 , x1 ]
f [x ] f [x , x ] f [x0 , x1 , x2 ]
2 0 2
.. .. .. ..
. . . .
f [xn ] f [x0 , xn ] f [x0 , x1 , xn ] ... f [x0 , x1 , . . . , xn−1 , xn ].
Question 7 1. Pourquoi peut-on utiliser cette méthode pour calculer le polynôme d’interpolation dans
la base de Newton ?
2. Expliquez pourquoi cette méthode diminue le temps de calcul.
3. Programmez cette méthode.