Math-Linux.com

Knowledge base dedicated to Linux and applied mathematics.

Accueil > Mathématiques > Interpolation > Interpolation polynà´miale de type Lagrange.

Interpolation polynà´miale de type Lagrange.

Toutes les versions de cet article : [English] [français]

On étudie ici l’interpolation polynômiale de type Lagrange. Étant données une suite de (n+1) points et une fonction f, on doit déterminer un polynôme de degré n qui interpole f aux points considérés.

Interpolation

à‰tant donné (n+1) points \{(x_0,y_0),(x_1,y_1),\ldots,(x_n,y_n)\}. Les (x_i)_{0 \leq i\leq n} sont appelés points d’interpolation. Les (y_i)_{0 \leq i\leq n}
représentent les valeurs d’interpolation. Pour interpoler une fonction f, on définit ces valeurs d’interpolation comme suit :

y_i=f(x_i), \quad \forall i=0,\ldots,n

Polynà´me d’interpolation de Lagrange

Le problème est alors de déterminer l’unique polynà´me de degré n, P_n qui satisfait

P_n(x_i)=f(x_i),\quad \forall i=0,\ldots,n.

Le polynà´me qui satisfait cette égalité le polynà´me d’interpolation de Lagrange

P_n(x)= \sum_{k=0}^n l_k(x)f(x_k)

o๠les l_k sont des polynà´mes de degré n qui forment une base de \mathcal{P}_n

l_k(x)= \prod_{i=0,\, i\neq k}^{n} \frac{x-x_i}{x_k-x_i}=\frac{x-x_0}{x_k-x_0} \cdots \frac{x-x_{k-1}}{x_k-x_{k-1}} \frac{x-x_{k+1}}{x_k-x_{k+1}} \cdots \frac{x-x_{n}}{x_k-x_{n}}

Propriétés du polynà´me d’interpolation de Lagrange et de la base de Lagrange

- Les polynà´mes l_k vérifient la propriété suivante :

l_k(x_i) = \delta_{ki}=\left\{\begin{array}{ll}
	1 & i=k \\
	0 & i\neq k \\
	\end{array}
	\right.,\quad \forall i=0,\ldots,n.


- Ils forment une base de l’espace \mathcal{P}_n des polynà´mes de degré au plus n

\sum_{k=0}^n \alpha_k l_k(x)=0

en fixant : x=x_i, on obtient :

\sum_{k=0}^n \alpha_k l_k(x_i)=\sum_{k=0}^n \alpha_k \delta_{ki}=0\Longrightarrow\alpha_i=0

La famille (l_k)_{0 \leq k\leq n} est libre. à‰tant maximale, c’est une base de \mathcal{P}_n.
- Enfin on voit clairement que :

P_n(x_i)=\sum_{k=0}^n l_k(x_i)f(x_k)=\sum_{k=0}^n\delta_{ki} f(x_k)=f(x_i)

Existence et unicité du polynà´me d’interpolation de Lagrange

Existence.
La preuve de l’existence est au-dessus, elle correspond exactement à la construction
du polynà´me d’interpolation de Lagrange relativement à la base (l_k)_{0 \leq k\leq n}
de \mathcal{P}_n.

Unicité. Considérons deux éléments P_n et Q_n de \mathcal{P}_n qui vérifient

P_n(x_i)=Q_n(x_i)=f(x_i),\quad \forall i=0,\ldots,n.

Soit R_n=(P_n-Q_n)\in \mathcal{P}_n. Le polynà´me R_n admet (n+1) racines qui sont exactement les (x_i)_{0 \leq i\leq n} puisque

R_n(x_i)=P_n(x_i)-Q_n(x_i)=f(x_i)-f(x_i)=0,\quad \forall i=0,\ldots,n.

R_n admet donc (n+1) racines et R_n\in \mathcal{P}_n, donc

R_n=0 \Longrightarrow P_n=Q_n.

On a donc démontré l’existence et l’unicité du polynà´me d’interpolation de Lagrange

Erreur d’interpolation de Lagrange

On suppose que f\in \mathcal{C}^{n+1}([a,b]) et x\in[a,b]. Soit I le fermé défini par I=[\min(x,x_0),\max(x,x_n)] (le plus petit fermé contenant x et les x_i).

Théorème.

\forall x\in [a,b],\quad \exists \xi \in I / f(x)-P_n(x)=
\displaystyle\frac{f^{n+1}(\xi)}{(n+1)!} \displaystyle\prod_{i=0}^{n}(x-x_i)

Preuve.Il existe deux preuves possibles, celle vue dans l’interpolation polynà´miale de type Newton et la preuve suivante.

Pour x=x_i le problème est réglé :

f(x)-P_n(x)=f(x_i)-P_n(x_i)=0

Supposons à présent que x\neq x_i et définissons l’application \Phi comme suit :

\Phi(x)=\displaystyle\frac{f(x)-P_n(x)}{\displaystyle\prod_{i=0}^{n}(x-x_i)}.

On définit ensuite l’application g :

g(x,t)=f(t)-P_n(t)-\displaystyle\prod_{i=0}^{n}(t-x_i)\Phi(x)

L’application g(x,\cdot) est de classe \mathcal{C}^{n+1} et s’annule aux (n+2) points x_0,x_1,\ldots,x_n,x de l’intervalle I. Par application successive du théorème de Rolle, g^{(n+1)}(x,\cdot) s’annule en un point \xi\in I :

g^{(n+1)}(x,\xi)=0

La dérivée (n+1)-ème de g(x,\cdot) est facile à calculer :

g^{(n+1)}(x,t)=f^{(n+1)}(t)-(n+1)!\Phi(x)

En fixant t=\xi, on a :

g^{(n+1)}(x,\xi)=f^{(n+1)}(\xi)-(n+1)!\Phi(x)=0

d’oà¹

\Phi(x)=\displaystyle\frac{f^{(n+1)}(\xi)}{(n+1)!}

et on conclut que

f(x)-P_n(x)= \displaystyle\frac{f^{n+1}(\xi)}{(n+1)!} \displaystyle\prod_{i=0}^{n}(x-x_i)

Corollaire.
On suppose que f\in \mathcal{C}^{n+1}([a,b]) et x\in[a,b].

\forall x\in [a,b],\quad |f(x)-P_n(x)|\leq \displaystyle\frac{\displaystyle|\prod_{i=0}^{n}(x-x_i)|}{(n+1)!}\sup_{x\in[a,b]}|f^{n+1} (x)|

ou encore

\forall x\in [a,b],\quad |f(x)-P_n(x)|\leq \displaystyle\frac{(b-a)^{n+1}}{(n+1)!}\sup_{x\in[a,b]}|f^{n+1} (x)|

Exemple de calcul de polynà´me d’interpolation de Lagrange

à‰tant donné 3 points \{(0,1), (2,5),(4,17)\}. Nous allons déterminer le polynà´me d’interpolation de Lagrange de degré 2 passant par ces points.

Calculons l_0,l_1 et l_2 :

l_0(x)=\displaystyle\frac{(x-2)(x-4)}{8},l_1(x)=-\displaystyle\frac{x(x-4)}{4},l_2(x)=\displaystyle\frac{x(x-2)}{8}

Le polynà´me d’interpolation de Lagrange est alors :

\begin{array}{rcl} P_2(x)&=&l_0(x)+5l_1(x)+17l_2(x)\\ &=&1+x^2 \end{array}

Scilab : calcul de polynà´me d’interpolation de Lagrange

La fonction Scilab lagrange.sci permet de déterminer le polynà´me d’interpolation de Lagrange. X contient les points d’interpolation et Y les valeurs d’interpolation, P
est le polynà´me d’interpolation de Lagrange.

lagrange.sci

function[P]=lagrange(X,Y)//X nodes,Y values;P is the numerical Lagrange polynomial interpolation
n=length(X);// n is the number of nodes. (n-1) is the degree
x=poly(0,"x");P=0;
for i=1:n, L=1;
 for j=[1:i-1,i+1:n] L=L*(x-X(j))/(X(i)-X(j));end
 P=P+L*Y(i);
end
endfunction

On a alors :

-->X=[0;2;4]; Y=[1;5;17]; P=lagrange(X,Y)
P = 1 + x^2

Un message, un commentaire ?

comments powered by Disqus