Ecole supérieure des Sciences et
de Technologie de Hammam Sousse 2023-2024
Module : Module : Simulation numérique 2 LMI2
TP 1
Exercice 1 : La fonction d’interpolation de PYTHON
La fonction barycentric interpolate(xi, yi, x) de PYTHON retourne les valeurs du po-
lynôme d’interpolation de Lagrange en les valeurs de x, (xi , yi ) étant les points d’interpolation
(fournis par l’utilisateur) où yi = f (xi ), avec f la fonction à interpoler.
On considère la fonction f (x) = sin(3x) sur l’intervalle [−π, π]. En utilisant 10 points uni-
formément répartis, construire le polynôme qui interpole cette fonction en ces 10 points à l’aide
de la fonction prédéfinie barycentric interpolate. Afficher sur un même graphique, le graphe
de f , celui de ce polynôme et les points d’interpolation utilisés.
Exercice 2 : Méthode récursive de Neuville
1. Écrire une fonction PYTHON :
def lagrange (t,x,y)
permettant à travers la construction du polynôme d’interpolation de Lagrange interpo-
lant les valeurs y aux points x suivant la méthode récursive de Neuville, de calculer la
valeur de ce polynôme au point t.
2. On considère la fonction f (x) = sin(3x) sur l’intervalle [−π, π]. Sur un même graphique,
afficher le graphe de f , celui du polynôme qn (n=9) construit à l’aide de la fonction
lagrange en utilisant 10 points uniformément répartis.
Exercice 3 : Polynôme d’interpolation par la méthode de Newton
1. Écrire une fonction :
def Newton (t,D,X)
qui, étant donnés un polynôme pn défini par :
pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + ... + an (x − x0 )(x − x1 )...(x − xn−1 )
où D = [an , an−1 , ..., a0 ] un vecteur ligne de coefficients complexes et X = [x0 , x1 , ..., xn−1 ]
une liste de nombres complexes distincts (de longueur n), évalue ce polynôme au point
t et renvoie en sortie la valeurs prise par ce polynôme pn en ce point t.
2. Écrire une fonction :
def DiffDiv(X,Y)
qui calcule la liste D des n+1 différences divisées des entrées du vecteur ligne Y =
[f (x0 ), f (x1 ), ..., f (xn−1 )] par les entrées du vecteur ligne
X = [x0 , x1 , ..., xn−1 ] :
ak = f [x0 , x1 , ..., xk ]
les points (xi , f (xi )) étant donnés par l’utilisateur.
1
3. En utilisant 1. et 2., écrire une fonction :
def LagrangeNewton (xx,X,Y)
qui, étant donnée une liste de nombres complexes distincts X = [x0 , x1 , ..., xn−1 ] (de
longueur n) et la liste de nombres complexes Y = [f (x0 ), f (x1 ), ..., f (xn−1 )], évalue le
polynôme de Lagrange :
Lagrange[X, Y ](x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + ...+
+f [x0 , x1 , ..., xn ](x − x0 )(x − x1 )...(x − xn−1 )
en une série de points xx et renvoie en sortie les valeurs prises par ce polynôme en ces
points.
Représenter graphiquement le polynôme d’interpolation associé à f aux points (xk )k=0,...,n
(on considèrera f (x) = sin(3x) sur [−π, π] par exemple).
Exercice 4 : Phénomène de Runge
Considérer la fonction
1
f (x) =
1 + 25x2
sur l’intervalle [−1, 1]. Mettre en évidence le phénomène de Runge, quand n → ∞, pour les
points équirépartis et la convergence lorsque les points de Tchebychev :
(2k − 1)π
xk = cos( ) ∀k ∈ 1, 2, ..., n
2n
sont utilisés.
Utiliser la commande subplot pour afficher simultanément et comparer les graphes du polynôme
d’interpolation calculé aux points de Tchebychev, celui calculé à partir d’une discrétisation
uniforme.
Exercice 5
1. Tester la fonction [Link](x ,y) de PYTHON de l’interpolation par splines
cubiques sur la fonction de l’exercice 4.
2. Comparer sur cette fonction, l’interpolation par splines et par polynômes de Lagrange.