On cherche à résoudre le problème d’interpolation polynomiale par résolution du système linéaire obtenu en écrivant le système de n + 1 équations à n + 1 inconnues. On cherche donc l’unique polynôme de degré n passant par les points (xi,fi)i=0,…,n. Les points (xi)i=0,…,n étant tous distincts.
| (1) |
Soit en notation matricielle :
| (2) |
Question 1 Écrire le code Scilab permettant de construire le polynôme d’interpolation par résolution du système linéaire utilisant le Vandermonde. On notera que la construction du Vandermonde peut se faire de façon vectorielle
Question 2 Utiliser le code précédent avec la fonction 1∕(1 + x2) et des points d’interpolations régulièrement espacés sur [−5, 5] et représenter graphiquement la fonction initiale et le polynôme d’interpolation. A partir de combien de points la résolution ne marche plus ? Explication ?
On utilise directement les polynômes de Lagrange pour réaliser l’interpolation polynomiale. Le i-ème polynôme de Lagrange s’écrit :
| (3) |
Et le polynôme d’interpolation s’écrit alors :
| (4) |
Question 3 Écrire le code Scilab qui construit de polynôme d’interpolation de Lagrange par construction directe à partir des données (xi,f(xi))i=1,…,n. Reprendre l’exemple du paragraphe précédent et comparer ? Que se passe-t-il quand le nombre de points d’interpolation augmente ?
Pour évaluer le polynôme d’interpolation en un point on peut utiliser l’algorithme de Neville que l’on rappelle ici. Cet algorithme permet en outre une estimation récursive quand on rajoute progressivement des points d’interpolation. Soit Pi0…,ik le polynôme d’interpolation de degré k passant par les points (xip,fip)p=0,…,k on établit facilement la formule récursive suivante :
| (5) |
avec
| (6) |
Cette formule nous permet de calculer Pn(x) = P0,…,n(x) pour une valeur de x fixée.
Question 4 Programmer l’algorithme de Neville pour évaluer la valeur du polynôme d’interpolation en un point x. Puis le rendre vectoriel pour évaluer directement la valeur du polynôme pour n valeurs de x données dans un vecteur.
L’algorithme de Neville est utilisé pour obtenir la valeur du polynôme d’interpolation en un point. Quand on cherche l’expression du polynôme on peut utiliser les différences divisées et la formule d’interpolation de Newton. On cherche le polynôme d’interpolation sous la forme :
| (7) |
Les différences divisées se définissent alors par
| (8) |
De la formule de récursion sur les polynômes Pi0…,ik on déduit, en identifiant les termes de plus haut degrés, une formule de récursion sur les différences divisées :
| (9) |
Question 5 Programmer la construction du polynôme d’interpolation aux moyens des différences divisées. On notera que pour n grand, une évaluation numérique des valeurs du polynôme obtenu par la formule d’interpolation de Newton par la fonction horner donne de meilleurs résultats que la même évaluation à partir du polynôme d’interpolation de Lagrange (utiliser la fonction 1∕(1 + x2) sur [−1, 1] )
Question 6 La formule de Newton permet une construction séquentielle des polynômes d’interpolation en rajoutant au fur et a mesure des points. Écrire une fonction qui met a jour et dessine les polynôme d’interpolation les point d’interpolation successifs étant obtenus en cliquant sur la fenêtre graphique.
On regarde dans ce paragraphe le comportement de ω(x) = sur l’intervalle [−1, 1] en fonction du choix des points xi. On regarde le cas des points régulièrement espacés et le cas des points de Tchebychev :
| (10) |
On fait de même pour la fonction de Lebesgue :
| (11) |
Question 7 Tracer la fonction ω(x) pour des points xi régulièrement espacés sur [-1,1] et pour les points de Tchebychev. Faites de même pour la fonction de Lebesgue. Que constatez vous ?
On cherche ici à approximer une fonction sur [0, 1] par les polynômes de Bernstein :
| (12) |
On utilise le fait que pour x fixé dans [0, 1] les coefficients Cnkxk(1 − x)n−k sont les probabilités d’une loi binomiale. La fonction Scilab binomial(x,n-1) est utilisée pour leurs calculs.
Question 8 Programmer le calcul des polynômes de Bernstein approchant une fonction continue sur [−1, 1]. Faites varier le degré du polynôme de Bernstein et superposez graphiquement la fonction et son approximation. Que constatez vous ?