Académique Documents
Professionnel Documents
Culture Documents
Analyse numérique - TP 02
Interpolation polynômiale
IMI3 Octave
Octave offre une large gamme de commandes pour la minipulation des polynômes y compris l’interpolation
polynômiale. Il suffit d’executer "lookfor polynomial" et "lookfor interpolation" pour voir toute la
liste.
Un polynôme p ∈ Rn [X] qui s’écrit
0
p(x) =
ft
X
k=n
ak xk = an xn + an−1 xn−1 + · · · + a1 x + a0 .
est représenté par, un vecteur ligne, p , de taille n + 1 contenant tous les coefficients (ak )n≥k≥0 dans l’ordre
décroissant des indices:
ra
p(x) Octave
3x2 + x + 1 p=[3 2 1]
Dans ce cas, pour calculer la somme de deux polynômes, il faut que les vecteurs soient de même tailles. La
commande "conv" effectue la multiplication de deux polynômes et "deconv" effectue la division, (voir le
help pour plus de détails.)
Exercice 1
1. Soient les polynômes p(x) = 3x2 + x + 1 et q(x) = 4x5 + 3x2 + 1.
(a) Déclarer p et q.
(b) Calculer p + q, p ∗ q, q/p, p′ , la primitive de p qui s’annule en 1.
(c) Déterminer les racines de p et de q.
(e) Calculer une approximation de ||f (t) − pm (t)||∞ pour m ∈ {1, 4, 9}.
Exercice 2
p
On se propose de calculer pn le polynôme d’interpolation de Newton de f (x) = 2 + log(x) + cos2 (x)
sur I = [1, 5]. On rappelle que:
n
X
pn (x) = f [x0 , . . . , xk ](x − x0 ) · · · (x − xk−1 )
k=0
ft
1. On considère x le vecteur de 10 points aléatoires.
2. Écrire la fonction "transf_affine" pour transformer les points sur [a, b] à l’interval [α, β].
Exercice 3
p
On se propose de calculer pn le polynôme d’interpolation de Lagrange de f (x) = 2 + log(x) + cos2 (x)
sur I = [1, 5]. On rappelle que:
Xn
pn (x) = yk Lk (x)
k=0
n
Y x − xj
avec yk = f (xk ) et Lk (x) = avec 0 ≤ k ≤ n.
xk − xj
j=0, k̸=k
2. La version précédente peut être vectorisée. Par conséquent, on peut éliminer certaines boucles ce qui
va accélérer le calcul. Pour atteindre cet objectif, on a besoin de modifier la méthode de calcul des
polynômes (Lk )0≤k≤n .
On a:
n
Y
t − xj
n
Y t − xj j=0, j̸=k β(t, k)
Lk (t) = = n =
xk − xj Y δ(k)
j=0, j̸=k xk − xj
j=0, j̸=k
Mathématiques appliquées – TP 2 3
n
Y n
Y
avec β(t, k) = t − xj et δ(k) = xk − xj .
j=0, j̸=k j=0, j̸=k
n n
Y w(t) Y
On remarque que β(t, k) = t − xj = où w(t) = (t − xk ).
t − xk
j=0, j̸=k j=0
Cette formule est plus efficace du point de vue numérique puisque w ne dépend pas de k et donc peut
être calculé une seule fois pour t donnée sans avoir besoin de boucle:
t_x=t-x
wt=prod(t_x)
Par ailleurs, δ(k) dépend de k seulement et donc peut être calculé une seule fois pour chaque valeur de
k et sera stocké dans un vecteur qu’on notera δ:
for k=1:n
delta(k)= prod( x(k)- x(setdiff(1:n,k)) )
endfor
ft
Alors, l’expression de Lk (t) devient:
Lk (t) =
w(t) 1
t − xk δ(k) 0≤k≤n
.
Cette expression permet de calculer le vecteur lk=[Lk (t)]0≤k≤n sans utiliser une boucle sur k. En effet,
ra
lk=wt./(t_k .* delta)
Conclusion: pour t donné, le calcul de tous les polynômes Lk (t) peut être accéléré en utilisant la
vectorisation.
(a) Écrire la fonction yt=lagrange_interp_eval_pt(x,y,t) qui permet d’évaluer pn en un point
D
Exercice 4
On va comparer le temps de calcul aux trois versions implémentées (Newton, Lagrange avec bocule et
Lagrange vectorisée) pour évaluer pn en m + 1 points de I pour différentes valeurs de m.
1. Soit t le vecteur contenant m + 1 points équidistants de I.
2. Evaluer pn (t) à l’aide des trois versions et calculer le temps CPU.
3. Pour m + 1 = 2α avec α ∈ {4, . . . , 13}, tracer les trois courbes du temps CPU en fonction de m sur
un même graphe.
4. Conclure.
Exercice 5
Dans cette partie on va mettre en évidence le phénomène de Runge. Pour cela, on considère ψn le
1
polynôme d’interpolation de la fonction f (x) = en n + 1 points équidistants sur J = [−5, 5].
1 + x2
1. Pour chaque valeur n ∈ {4, 6, 8, 10}:
(a) Déterminer x le vecteur de n + 1 points équidistants sur J.
(b) Déterminer pn le polynôme d’interpolation de f aux points x.
(c) Tracer sur le même graphe la courbe de pn et celle de f .
2. Que peut on conclure?