next up previous index
suivant: Intégration numérique monter: Polynômes : arithmétique, factorisation, interpolation précédent: Factorisation exacte   Index

Approximation polynomiale

Étant donné la facilité de manipulation qu'apportent les polynomes, on peut chercher à approcher une fonction par un polynôme. La méthode la plus naturelle consiste à chercher un polynôme de degré le plus petit possible égal à la fonction en certains points x0,..., xn et à trouver une majoration de la différence entre la fonction et le polynôme. Le polynome interpolateur de Lagrange répond à cette question.

Soit donc x0,..., xn des réels distincts et y0,..., yn les valeurs de la fonction à approcher en ces points (on posera yj = f (xj) pour approcher la fonction f). On cherche donc P tel que P(xj) = yi pour j $ \in$ [0, n].

Commencons par voir s'il y a beaucoup de solutions. Soit P et Q deux solutions distinctes du problème, alors P - Q est non nul et va s'annuler en x0,..., xn donc possède n + 1 racines donc est de degré n + 1 au moins. Réciproquement, si on ajoute à P un multiple du polynome A = $ \prod_{{j=0}}^{n}$(X - xj), on obtient une autre solution. Toutes les solutions se déduisent donc d'une solution particulière en y ajoutant un polynome de degré au moins n + 1 multiple de A.

Nous allons maintenant construire une solution particulière de degré au plus n. Si n = 0, on prend P = x0 constant. On procède ensuite par récurrence. Pour construire le polynôme correspondant à x0,..., xn+1 on part du polynoôme Pn correspondant à x0,..., xn et on lui ajoute un multiple réel de A

Pn+1 = Pn + $\displaystyle \alpha_{{n+1}}^{}$$\displaystyle \prod_{{j=0}}^{n}$(X - xj)

Ainsi on a toujours Pn+1(xj) = yj pour j = 0,..n, on calcule maintenant $ \alpha_{{n+1}}^{}$ pour que Pn+1(xn+1) = yn+1. En remplacant avec l'expression de Pn+1 ci-dessus, on obtient

Pn(xn+1) + $\displaystyle \alpha_{{n+1}}^{}$$\displaystyle \prod_{{j=0}}^{n}$(xn+1 - xj) = yn+1

Comme tous les xj sont distincts, il existe une solution unique :

$\displaystyle \alpha_{{n+1}}^{}$ = $\displaystyle {\frac{{y_{n+1}-P_n(x_{n+1})}}{{\prod_{j=0}^n (x_{n+1}-x_j)}}}$

On a donc prouvé le :

Théorème 13   Soit n + 1 réels distincts x0,..., xn et n + 1 réels quelconques y0,..., yn. Il existe un unique polynôme P de degré inférieur ou égal à n, appelé polynome de Lagrange, tel que :

P(xi) = yi

Exemple : déterminons le polynome de degré inférieur ou égal à 2 tel que P(0) = 1, P(1) = 2, P(2) = 1. On commence par P0 = 1. Puis on pose P1 = P0 + $ \alpha_{{1}}^{}$X = 1 + $ \alpha_{{1}}^{}$X. Comme P(1) = 2 = 1 + $ \alpha_{{1}}^{}$ on en tire $ \alpha_{{1}}^{}$ = 1 donc P1 = 1 + X. Puis on pose P2 = P1 + $ \alpha_{{2}}^{}$X(X - 1), on a P2(2) = 3 + 2$ \alpha_{{2}}^{}$ = 1 donc $ \alpha_{{2}}^{}$ = - 1, finalement P2 = 1 + X - X(X - 1).

Reste à estimer l'écart entre une fonction et son polynome interpolateur, on a le :

Théorème 14   Soit f une fonction n + 1 fois dérivable sur un intervalle I = [a, b] de $ \mathbb {R}$, x0,..., xn des réels distincts de I. Soit P le polynome de Lagrange donné par les xj et yj = f (xj). Pour tout réel x $ \in$ I, il existe un réel $ \xi_{x}^{}$ $ \in$ [a, b] (qui dépend de x) tel que :

f (x) - P(x) = $\displaystyle {\frac{{f^{[n+1]}(\xi_x)}}{{(n+1)!}}}$$\displaystyle \prod_{{j=0}}^{n}$(x - xj) (6)

Ainsi l'erreur commise dépend d'une majoration de la taille de la dérivée n + 1-ième sur l'intervalle, mais aussi de la disposition des points xj par rapport à x. Par exemple si les points xj sont équidistribués, le terme |$ \prod_{{j=0}}^{n}$(x - xj)| sera plus grand près du bord de I qu'au centre de I.

Preuve du théorème : Si x est l'un des xj l'égalité est vraie. Soit

C = (f (x) - P(x))/$\displaystyle \prod_{{j=0}}^{n}$(x - xj)

on considère maintenant la fonction :

g(t) = f (t) - P(t) - C$\displaystyle \prod_{{j=0}}^{n}$(t - xj)

elle s'annule en xj pour j variant de 0 à n ainsi qu'en x suite au choix de la constante C, donc g s'annule au moins n + 2 fois sur l'intervalle contenant les xj et x, donc g' s'annule au moins n + 1 fois sur ce même intervalle, donc g'' s'annule au moins n fois, etc. et finalement g[n+1] s'annule une fois au moins sur cet intervalle. Or

g[n+1] = f[n+1] - C(n + 1)!

car P est de degré inférieur ou égal à n et $ \prod_{{j=0}}^{n}$(x - xj) - xn+1 est de degré inférieur ou égal à n. Donc il existe bien un réel $ \xi_{x}^{}$ dans l'intervalle contenant les xj et x tel que

C = $\displaystyle {\frac{{f^{[n+1]}(\xi_x)}}{{(n+1)!}}}$

Calcul efficace du polynôme de Lagrange.
Avec la méthode de calcul précédent, on remarque que le polynôme de Lagrange peut s'écrire à la Horner sous la forme :

P(x) = $\displaystyle \alpha_{0}^{}$ + $\displaystyle \alpha_{1}^{}$(x - x0) + ... + $\displaystyle \alpha_{n}^{}$(x - x0)...(x - xn-1)  
  = $\displaystyle \alpha_{0}^{}$ + (x - x0)($\displaystyle \alpha_{1}^{}$ + (x - x1)($\displaystyle \alpha_{2}^{}$ + ... + (x - xn-2)($\displaystyle \alpha_{{n-1}}^{}$ + (x - xn-1)$\displaystyle \alpha_{n}^{}$)...))  

ce qui permet de le calculer rapidement une fois les $ \alpha_{i}^{}$ connus. On observe que

$\displaystyle \alpha_{0}^{}$ = f (x0),    $\displaystyle \alpha_{1}^{}$ = $\displaystyle {\frac{{f(x_1)-f(x_0)}}{{x_1-x_0}}}$

On va voir que les $ \alpha_{k}^{}$ peuvent aussi se mettre sous forme d'une différence. On définit les différences divisées d'ordre n par récurrence

f[xi] = f (xi),    f[xi,..., xk+i+1] = $\displaystyle {\frac{{f[x_{i+1},...,x_{k+i+1}]-f[x_i,...,x_{k+i}]}}{{x_{k+i+1}-x_i}}}$

On va montrer que $ \alpha_{k}^{}$ = f[x0,..., xk]. C'est vrai au rang 0, il suffit donc de le montrer au rang k + 1 en l'admettant au rang k. Pour cela on observe qu'on peut construire le polynôme d'interpolation en x0,..., xk+1 à partir des polynômes d'interpolation Pk en x0,..., xk et Qk en x1,..., xk+1 par la formule :

Pk+1(x) = $\displaystyle {\frac{{(x_{k+1}-x)P_k + (x-x_0)Q_k}}{{x_{k+1}-x_0}}}$

en effet on vérifie que Pk+1(xi) = f (xi) pour i $ \in$ [1, k] car Pk(xi) = f (xi) = Qk(xi), et pour i = 0 et i = k + 1, on a aussi Pk+1(x0) = f (x0) et Pk+1(xk+1) = f (xk+1). Or $ \alpha_{{k+1}}^{}$ est le coefficient dominant de Pk+1 donc c'est la différence du coefficient dominant de Qk et de Pk divisée par xk+1 - x0, c'est-à-dire la définition de f[x0,..., xk+1] en fonction de f[x1,..., xk+1] et f[x0,..., xk].

Exemple : on reprend P(0) = 1, P(1) = 2, P(2) = 1. On a

xi f[xi] f[xi, xi+1] f[x0, x1, x2]
0 $\displaystyle \framebox{1} $    
    (2 - 1)/(1 - 0) = $\displaystyle \framebox{1} $  
1 2   (- 1 - 1)/(2 - 0) = $\displaystyle \framebox{-1} $
    (1 - 2)/(2 - 1) = - 1  
2 1    

donc P(x) = $ \framebox{1}+(x-0)(\framebox{1}+(x-1)(\framebox{-1}))=1+x(2-x)$.

On peut naturellement utiliser l'ordre que l'on souhaite pour les xi, en observant que le coefficient dominant de P ne dépend pas de cet ordre, on en déduit que f[x0,..., xk] est indépendant de l'ordre des xi, on peut donc à partir du tableau ci-dessus écrire P par exemple avec l'ordre 2,1,0, sous la forme

P(x) = 1 + (x - 2)(- 1 + (x - 1)(- 1)) = 1 + (x - 2)(- x)


next up previous index
suivant: Intégration numérique monter: Polynômes : arithmétique, factorisation, interpolation précédent: Factorisation exacte   Index
Retour à la page principale de mat249