Page d'accueil
Thèmes d'activités
<< Thème précédent
Thème suivant >>
Polynôme d'interpolation de Lagrange et polynômes de Tchebychev
Corrigé du thème
Soit
n
points de coordonnées (
),...,(
).Le
polynôme d'interpolation de Lagrange
relatif à ces points est l'unique polynôme
P
de degré
n -
1 tel que ,
, pour tout
i
de {1,2,. . ,
n
}. Il est défini par
1° Ecrire une procédure
Lagrange
qui reçoit comme paramètres les deux listes
x=
[
,...,
] ,
y
=[
,...,
] , et le nom
t
de la variable , et qui retourne
P(t)
développé.
2° Soit
f
une fonction de
IR
dans
IR
. Ecrire une procédure
Lagrangef
qui reçoit
comme paramètres l'opérateur
f
, une liste
x=
[
,...,
] , et le nom
t
de la variable, et
qui retourne
P(t)
où
P
est le polynôme d'interpolation de Lagrange associé aux
points (
,
f
(
)), ... ,(
,
f
(
)) . On a donc
P
(
)=
f
(
) , pour tout
i
de {1,2,. . ,
n
}.
3° On définit
f
:
. Représenter
f
et le polynôme d'interpolation de Lagrange
Lf
associé aux points d'abscisses -1,0,1,2 .
4° On définit les polynômes de Tchebychev
d'ordre
n
,
n
entier naturel , par :
Ecrire les polynômes de Tchebychev
,
, . . . ,
sous forme développée.
5° On travaille avec la fonction
f
définie au 3° :
Représenter sur un même graphique pour
n
=2,5,10 , la fonction
f
et les polynômes
d'interpolation de
f
associés lorsque l'on découpe l'intervalle [-5,5] en
n
intervalles de
même longueur. Que remarque-t-on aux extrémités de l'intervalle [-5,5] ?
6° On travaille avec la fonction
f
définie au 3° :
Représenter sur un même graphique pour
n
=2,5,10 , la fonction
f
et les polynômes
d'interpolation de
f
associés lorsque l'on prend pour abscisses
(où
k
=0..
n
) , les
racines du polynôme de Tchebychev d'ordre
n
+1,multipliées par 5 :
Que constate-t-on par rapport aux résultats obtenus au 5° ?
Corrigé:
Énoncé du thème
Question 1:
>
Lagrange:=proc(x::list,y::list,t::name)
>
local k,L,n,P,Q;
>
P:=0:n:=nops(x):
>
for k to n do
>
Q:=simplify(product(t-x[i],i=1..n)/(t-x[k])):
>
L[k]:=Q/subs(t=x[k],Q):
>
P:=P+y[k]*L[k]:
>
end do:
>
expand(P);
>
end proc;
>
Lagrange([4,0,-1,1,7],[7,2,2,8,1],x); # essai sur un exemple particulier
Question 2:
>
Lagrangef:=proc(f::operator,x::list,t::name)
>
local k,y;
>
y:=[seq(f(x[k]),k=1..nops(x))]:
>
Lagrange(x,y,t);
>
end proc;
Question 3:
>
f:=x->1/(1+x^2):Lf:=unapply(Lagrangef(f,[-1,0,1,2],x),x);
>
plot({f(x),Lf(x)},x=-1.2..2.2);
Question 4:
>
for k to 10 do T[k]:=unapply(expand(cos(k*arccos(x))/2^(k-1)),x); end do;
Question 5:
>
e:={2,5,10}:
>
for n in e do
>
abscisses:=[seq(-5+10*k/n,k=0..n)]:
>
Leq[n]:=unapply(Lagrangef(f,abscisses,x),x):
>
end do:
>
plot({f(x),seq((Leq[n])(x),n=e)},x=-5..5,title="f(x)=1/(1+x²) abscisses équidistantes pour n=2,5,10");
On constate que l'on approche bien la courbe au centre de l'intervalle , par contre , aux
extrémités se produisent des oscillations parasites appelées
effets de bord
.
Question 6:
>
e:={2,5,10}:
>
for n in e do
>
abscisses:=[seq(evalf(5*cos((2*k+1)*Pi/(2*(n+1)))),k=0..n)]:
>
LTcheb[n]:=unapply(Lagrangef(f,abscisses,x),x):
>
end do:
>
plot({f(x),seq((LTcheb[n])(x),n=e)},x=-5..5,title="f(x)=1/(1+x²) abscisses de Tchebychev pour n=2,5,10");
L' amélioration due au choix des abscisses de Tchebychev a un effet très sensible sur le problème des
effets de bord
.
|