§ 3	Errreur et formules d’approximation

Dans cette section, nous approximons une fonction quelconque par un polynôme d'interpolation. Dans une première sous-section, nous supposons que la fonction à approximer est connue, ceci dans le but d’étudier l’erreur d’approximation. Ensuite nous allons construire des formules d’approximation utilisant un nombre restreint de points. Finalement, nous allons analyser le comportement du polynôme d’interpolation lorsque le nombre points d’interpolation augmente.

§ 3.1 	Erreur d'approximation

Exemple

Soit la fonction f(t)=(1/t) et les trois abcisses (Subscript[x, 0])=1, (Subscript[x, 1])=2, (Subscript[x, 2])=4.
Considérons la fonction d'interpolation g qui passe par les trois points { ((Subscript[x, 0]), f((Subscript[x, 0]))), ((Subscript[x, 1]), f((Subscript[x, 1]))), ((Subscript[x, 2]), f((Subscript[x, 2]))) };
g est un polynôme de degré 2 (dans la figure, le trait continu représente f et le traitillé représente g).

Clear[f,g,t];f[t_]:=(1/t);x={1,2,4};y=f/@x;pts=Transpose[{x,y}];
g[t_]=InterpolatingPolynomial[pts,t];
Plot[{f[t],g[t]},{t,0,6},PlotRange->{0,6},PlotStyle->{Dashing[{}],Dashing[{0.015`}]},Epilog->{PointSize[0.015`],Point/@pts},ImageSize->{500,250}]

On dit que g est l'approximation de f par un polynôme du deuxième degré.

L'erreur d'approximation est e(t)=g(t)-f(t) dont le graphique est

Clear[e];e[t_]=f[t]-g[t];
Plot[e[t],{t,0,6},PlotRange->{-1.5`,4.5`},ImageSize->{500,250}]

L'erreur d'approximation s'annule aux abscisses d'interpolation

e((Subscript[x, 0]))=0,         e((Subscript[x, 1]))=0,         e((Subscript[x, 2]))=0.

L'expression approximation par interpolation est réservée à l'intervalle [1, 4]. En dehors de cet intervalle, nous parlons d'extrapolation. Nous constatons immédiatement que l'extrapolation est dangereuse et doit généralement être évitée.

Cas général

Dans le cas général, nous considèrons
*	une fonction f;
*	le polynôme d'interpolation g aux abscisses (Subscript[x, 0])<(Subscript[x, 1])<...<(Subscript[x, n-1]),
*	l'erreur d'approximation de f par interpolation aux abscisses (Subscript[x, 0]), ..., (Subscript[x, n-1])
	e(f)(t)=g(t)-f(t) abrégée e(f)=g-f.
Nous avons alors les résultats suivants qui des conséquences dans l’exercice 3-5:

1)pour i de 0 à n-1,           e(f)((Subscript[x, i]))=0  ;

2) si f est un polynôme de degré inférieur à  n-1alors         e(f)=0
	c'est-à-dire  pour tout t  nous avons e(f)(t)=0;

3)pour toutes fonctions f, g et pour tout nombre réel k,
                       e(f+g)=e(f)+e(g),
                  e(k f)=k e(f).

§ 3.2 	Formules d'approximation

Le but de cette sous-section est de trouver des formules d’interpolation lorsque le nombre de points d’interpolation est restreints (nous traiterons les cas avec 2, 3 et 4 points).

Considérons tout d’abord le cas où nous avons trois points d’interpolation :

Clear[x,y,f];X={x[0],x[1],x[2]};pts=Transpose[{X,Map[f,X]}]

g[t_]=InterpolatingPolynomial[pts,t]

Si les abscisses d’interpolation sont 1, 2 et 4 et que nous voulons interpoler en 3, la formule ci-dessus se simplifie considérablement et nous obtenons le résultat suivant :

Simplify[g[t]/.{x[0]->1,x[1]->2,x[2]->4,t->3}]

La formule

g(3)=(1/3)(-f(1)+3 f(2)+f(4))

est une approximation de f(3) par un polynôme de degré 2, à partir des valeurs de f aux abscisses 1, 2, 4.
Pour la fonction f(t)=(1/t) nous obtenons

g(3)=(1/3)(-1+3 (1/2)+(1/4))=(1/4)

Nous disposons maintenant d'un procédé qui nous permet de fabriquer de nombreuses formules de ce type.

Formule d'interpolation linéaire (ou formule d'interpolation à deux points)

f(t)≈g(t)=f((Subscript[x, 0]))+((f((Subscript[x, 1]))-f((Subscript[x, 0])))/((Subscript[x, 1])-(Subscript[x, 0])))(t-(Subscript[x, 0]))

Pour une preuve, voir l’exercice 3-7.

Formule d'interpolation cubique (ou formule d'interpolation à quatre points équidistants)

Considérons (Subscript[x, 0])=(Subscript[x, 1])-h;   (Subscript[x, 1]);   (Subscript[x, 2])=(Subscript[x, 1])+h;   (Subscript[x, 3])=(Subscript[x, 1])+2 h;

Considérons quatre abscisses d’interpolation équidistantes (Subscript[x, 0])<(Subscript[x, 1])<(Subscript[x, 2])<(Subscript[x, 3]). Si nous interpolons à mi-chemin entre les deux points du milieu  nous obtenons  les résultats suivant (pour une preuve voir l’exercice 3-2) :

f((((Subscript[x, 1])+(Subscript[x, 2]))/2))≈  g((((Subscript[x, 1])+(Subscript[x, 2]))/2))=((-f((Subscript[x, 0]))+9f((Subscript[x, 1]))+9f((Subscript[x, 2]))-f((Subscript[x, 3])))/16)

Appliquons ce résultat à la fonction f(t)=(1/t) aux abscisses {1,2,3,4}. Nous obtienons

g(2.5)=((-1+9(1/2)+9(1/3)-(1/4))/16)=(25/64)=0.390625

comme approximation de

f(2.5)=(1/2.5)=0.4

§ 3.3 	Non convergence ponctuelle de l'approximation globale

Si nous pouvons disposer de beaucoup de points d’interpolation, nous pouvons être tenté d'utiliser un polynôme de degré élevé dans le but d'améliorer l'approximation. Cependant, il faut être sûr qu’en augmentant le nombre de points d'interpolation le polynôme d'interpolation g(t) tend vers la fonction f(t).

Nous allons montrer que ceci n’est pas forcément vrai et que l'interpolation peut échouer en tant qu'approximation globale.

Clear[f,t,g,pts];
f[t_]:=(1/(1+25 (t^2))); (* fonction à approximer *)
pts[n_]:=Table[{t,f[t]},{t,-1,1,(2/(n-1))}] (* n points d'interpolation équidistants *)
g[n_][t_]:=InterpolatingPolynomial[pts[n],t]; (* interpolant de degré n-1 *) Plot[{f[t],g[10][t]},{t,-1,1},PlotStyle->{Dashing[{}],Dashing[{0.03,0.01}]},ImageSize->{500,300}]

Pour une interpolation à 10 points, l'écart entre f (en trait continu) et son polynôme d'interpolation g (en traitillé) est grand. Tentons de réduire l'erreur en doublant le nombre de points

Plot[{f[t],g[20][t]},{t,-1,1},PlotStyle->{Dashing[{}],Dashing[{0.01}]},ImageSize->{500,300}]

Superposons
 *	la fonction f (trait continu);
 *	l'interpolant en 10 points (traitillé formé de traits longs);
 *	l'interpolant en 20 points (traitillé formé de traits courts).

Plot[{f[t],g[10][t],g[20][t]},{t,-1,1},PlotStyle->{Dashing[{}],Dashing[{0.03`,0.01`}],Dashing[{0.01`}]},ImageSize->{500,300}]

Au lieu d'avoir été réduite, l'erreur a augmenté ! Retenons que,

en augmentant le nombre de points d'interpolation en des abscisses équidistantes, on n'est nullement 
	assuré que le polynôme d'interpolation g(t) tende ponctuellement vers la fonction f(t).

C'est pourquoi, afin d’éviter ce problème, il vaut souvent mieux effectuer une interpolation par morceaux.

Une explication des raisons de cette non-convergence ponctuelle ainsi qu’une possibilité d’amélioration avec les abscisses de Cebycev se trouve dans l’exercice 3-10.

§ 3.4	Exercices

Exercice 3-1	[Avec Mathematica]

Soit la fonction f(t)=(1/t), g le polynôme d'interpolation de  f  aux abscisses 1, 2, 4 et e=g-f la fonction  correspondant à l’erreur d’approximation. Dans un même graphique, représentez les trois fonctions  f,  g,  e.

Exercice 3-2	[Avec Mathematica]

D'une fonction  f, nous connaissons quatre valeurs en des abscisses équidistantes :

((Subscript[x, 0]), f((Subscript[x, 0]))), ((Subscript[x, 1]), f((Subscript[x, 1]))), ((Subscript[x, 2]), f((Subscript[x, 2]))), ((Subscript[x, 3]), f((Subscript[x, 3])))    
		 où  (Subscript[x, 1])=(Subscript[x, 0])+h, (Subscript[x, 2])=(Subscript[x, 0])+2h, (Subscript[x, 3])=(Subscript[x, 0])+3h

a)	En utilisant l’interpolation polynomiale , déterminez une formule pour interpoler  f  en  x=(Subscript[x, 0])+ (3/2)h.

b)	A partir de la tabelle ci-dessous, interpolez la fonction  f(t)=(t^(1/3)) en 4.5

c)	En x = 4.5, comparez f(4.5), g(4.5), e(4.5), où g le polynôme d’interpolation de  f  et  e=g-f la fonction  correspondant à l’erreur d’approximation.

Exercice 3-3	[Avec Mathematica]

Nous considèrons la fonction f(t) = sin(t) sur l'intervalle [0; π].
Avec Mathematica, approchez f par un polynôme d'interpolation g de degré 6 sur l'intervalle [0; π] et dessinez le graphique de l'erreur sur l'intervalle [-π, 2 π].
Montrez que l'extrapolation est dangereuse :
	alors que l'erreur reste limitée dans l'intervalle [0; π], 
	elle peut devenir considérable à l'extérieur !

Exercice 3-4	[Sans Mathematica]

Nous considérons
*	une fonction f;
*	le polynôme d'interpolation de f aux abscisses (Subscript[x, 0])<(Subscript[x, 1])<...<(Subscript[x, n-1])
	p(f)(t)=g(t) abrégé p(f)=g.
Démontrez que l'interpolation possède les propriétés suivantes:

1)pour  i  de  0  à  n-1,           p(f)((Subscript[x, i]))=f((Subscript[x, i]) );

2) si f est un polynôme de degré inférieur à  n-1  alors         p(f)=f
	c'est-à-dire  g(t)=f(t) pour tout t ;

3) pour toutes fonctions f, g  et pour tout nombre réel k,
                       p(f+g)=p(f)+p(g),
                  p(k f)=k p(f).

Indication 
Travailler avec la définition et l’unicité du polynôme d’interpolation ou avec le polynôme de Lagrange qui nous donne

p(f)(t)=f((Subscript[x, 0]))(Subscript[L, 0])(t)+f((Subscript[x, 1]))(Subscript[L, 1])(t)+... + f((Subscript[x, n-1]))(Subscript[L, n-1])(t)

Exercice 3-5	[Sans Mathematica]

Nous considèrons
*	une fonction f;
*	le polynôme d'interpolation g aux abscisses (Subscript[x, 0])<(Subscript[x, 1])<...<(Subscript[x, n-1]),
*	l'erreur d'approximation de f par interpolation aux abscisses (Subscript[x, 0]), ..., (Subscript[x, n-1])
	e(f)(t)=g(t)-f(t) abrégée e(f)=g-f.
Démontrez les résultats suivants en utilisant l’exercice 3-4:

1)pour i de 0 à n-1,           e(f)((Subscript[x, i]))=0  ;

2) si f est un polynôme de degré ⩽ (n-1) alors         e(f)=0
	c'est-à-dire pour tout t , e(f)(t)=0;

3)pour toutes fonctions f, g et pour tout nombre réel k,
                       e(f+g)=e(f)+e(g),
                  e(k f)=k e(f).

Exercice 3.6	[Sans/Avec Mathematica]

Soit (Subscript[x, 0]), (Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3])  quatre abscises équidistantes et g le polynôme d’interpolation. Reprenez le résultat de l’exercice 3-2 et montrez que l'approximation d’une fonction f  en  (((Subscript[x, 1])+(Subscript[x, 2]))/2) par g est une moyenne pondérée de { f((Subscript[x, 0])), f((Subscript[x, 1])), f((Subscript[x, 2])), f((Subscript[x, 3])) }, c’est-à-dire montrez que

g((((Subscript[x, 1])+(Subscript[x, 2]))/2))=(Subscript[c, 0])f((Subscript[x, 0]))+(Subscript[c, 1])f((Subscript[x, 1]))+(Subscript[c, 2])f((Subscript[x, 2]))+(Subscript[c, 3])f((Subscript[x, 3]))

avec des coefficients (Subscript[c, 0]),(Subscript[c, 1]),(Subscript[c, 2]),(Subscript[c, 3]) qui vérifient

(Subscript[c, 0])+(Subscript[c, 1])+(Subscript[c, 2])+(Subscript[c, 3])=1.

Montrez, en utilisant Mathematica, que ce résulat est valable quelles que soit les abscisses d’interpolation (Subscript[x, 0])<(Subscript[x, 1])<(Subscript[x, 2])<(Subscript[x, 3]) et quelle que soit l’abscisse t où nous interpolons (indication : travaillez avec les fonctions Coeffcient et Collect).

Exercice 3-7	[Sans Mathematica]

Démontez la formule d’interpolation linéaire donnée dans la sous-section 3.2.

Exercice 3-8	[Sans Mathematica]

A propos de l'interpolation linéaire, montrez que l'approximation est une moyenne pondérée de { f((Subscript[x, 0])), f((Subscript[x, 1])) } avec les coefficients

g(t)=(Subscript[c, 0])(t)f((Subscript[x, 0]))+(Subscript[c, 1])(t)f((Subscript[x, 1]))

qui vérifient

(Subscript[c, 0])(t)+(Subscript[c, 1])(t)=1           et              (Subscript[c, 0])(t)(Subscript[x, 0])+(Subscript[c, 1])(t)(Subscript[x, 1])=t ;

en d'autres termes, t est une moyenne pondérée de { (Subscript[x, 0]), (Subscript[x, 1]) } avec les mêmes coefficients.

Exercice 3-9	[Avec Mathematica]

Nous considèrons une population de bactéries dont l'évolution au fil du temps est donnée par la fonction

p(t)=0.8*(1.2^t)

L'unité de temps est le jour et l'unité de population est le million de bactéries.

Notons g(t) le polynôme d'interpolation du (10^(ème)) degré en des abscisses équidistantes sur l'intervalle [0; 10].
Dessinez l'erreur e(t) = g(t)-p(t).
g(t) est-il une bonne approximation de p(t) ?
Qu’en est-il si on travaille avec le polynôme d’interpolation du (60^(ème)) degré en des abscisses équidistantes sur l’intervalle [0; 10]?

Exercice 3-10	[Avec Mathematica]

Soit n un entier naturel donnant le nombre de points d’interpolation dont les abscisses se trouvent réparties sur l’intervalle [-1;1]. Nous choisissons  n impaire pour que 0 soit une abscisse d’interpolation dans le cas où les abscisses sont répraties uniformément sur l’intervalle [-1;1]: dans ce cas, 0 est la  (((((n+1)/2)))^(ème)) abscisse.

Définissez la fonction p[n][x] correspondant au polynôme de la base de Lagrange défini avec n points répartis de façon équidistante sur l’intervalle [-1;1] et valant 1 en 0. Tracez dans des repères séparés les graphes des p[11], p[21] et p[31]. Que constatez-vous?

Faites de même en prenant comme abscisses
	(Subscript[x, i])=cos(i (π/(n-1))), i=0,1,...,n-1.
Ces abscisses s’appellent les abscisses de Cebicev. 
Que constatez-vous?

Exercice 3-11	[Avec Mathematica]

Reprenez la fonction présentée au début de la section §3.3 et prenez comme abscisses d’interpolation les abscisses de Cebicev (voir l’exercice précédent).
Que se passe-t-il lorsque le nombre n de points d’interpolation augmente?