WikiPrépaLivrets

Interpolation linéaire

L'interpolation linéaire remplace une fonction, entre deux points connus, par le segment qui les relie. Répétée sur une subdivision, elle fournit une approximation affine par morceaux qui converge uniformément vers toute fonction continue sur un segment, avec une erreur en h2h^2 pour une fonction de classe C2\mathcal{C}^2.

Classique, à redémontrerPremière année (MPSI, MP2I, PCSI) et deuxième année (MP, MPI, PSI) · Continuité uniforme ; approximation uniforme des fonctions

Énoncé

Définition et théorème

Formule entre deux points. Pour x0≠x1x_0\neq x_1, l'unique fonction affine qui prend la valeur y0y_0 en x0x_0 et y1y_1 en x1x_1 est

L(x)=y0+y1−y0x1−x0 (x−x0)=x1−xx1−x0 y0+x−x0x1−x0 y1.L(x)=y_0+\frac{y_1-y_0}{x_1-x_0}\,(x-x_0)=\frac{x_1-x}{x_1-x_0}\,y_0+\frac{x-x_0}{x_1-x_0}\,y_1.

Interpolation affine par morceaux. Soit f:[a,b]→Rf : [a,b]\to\R et a=x0<x1<⋯<xn=ba=x_0<x_1<\dots<x_n=b une subdivision de pas h=max⁡k(xk+1−xk)h=\max_k(x_{k+1}-x_k). On note fnf_n la fonction continue, affine sur chaque [xk,xk+1][x_k,x_{k+1}], qui coïncide avec ff en chaque xkx_k.

  1. Si ff est continue, ∥f−fn∥∞→0\|f-f_n\|_\infty\to0 lorsque h→0h\to0 (convergence uniforme).
  2. Si ff est de classe C2\mathcal{C}^2 et M2=∥f′′∥∞M_2=\|f''\|_\infty, alors ∥f−fn∥∞≤M2 h28\|f-f_n\|_\infty\le\dfrac{M_2\,h^2}{8}.

La constante 18\frac18 est optimale : pour f(x)=x2f(x)=x^2 et une subdivision régulière, il y a égalité, atteinte au milieu de chaque intervalle.

Démonstration

Convergence uniforme. Sur [xk,xk+1][x_k,x_{k+1}], on écrit fn(x)=λf(xk)+(1−λ)f(xk+1)f_n(x)=\lambda f(x_k)+(1-\lambda)f(x_{k+1}) avec λ=xk+1−xxk+1−xk∈[0,1]\lambda=\frac{x_{k+1}-x}{x_{k+1}-x_k}\in[0,1], d'où

f(x)−fn(x)=λ(f(x)−f(xk))+(1−λ)(f(x)−f(xk+1)).f(x)-f_n(x)=\lambda\big(f(x)-f(x_k)\big)+(1-\lambda)\big(f(x)-f(x_{k+1})\big).

Soit ε>0\varepsilon>0. Par le théorème de Heine, ff est uniformément continue sur [a,b][a,b] : il existe η>0\eta>0 tel que ∣s−t∣≤η⇒∣f(s)−f(t)∣≤ε|s-t|\le\eta\Rightarrow|f(s)-f(t)|\le\varepsilon. Si h≤ηh\le\eta, alors ∣x−xk∣≤h|x-x_k|\le h et ∣x−xk+1∣≤h|x-x_{k+1}|\le h, donc ∣f(x)−fn(x)∣≤λε+(1−λ)ε=ε|f(x)-f_n(x)|\le\lambda\varepsilon+(1-\lambda)\varepsilon=\varepsilon.

Erreur pour ff de classe C2\mathcal{C}^2. Fixons kk, notons ℓ=xk+1−xk\ell=x_{k+1}-x_k et r=f−fnr=f-f_n sur [xk,xk+1][x_k,x_{k+1}]. Comme fnf_n y est affine, rr est de classe C2\mathcal{C}^2, r′′=f′′r''=f'' et r(xk)=r(xk+1)=0r(x_k)=r(x_{k+1})=0. Soit x∈ ]xk,xk+1[x\in\,]x_k,x_{k+1}[. Comme (x−xk)(x−xk+1)≠0(x-x_k)(x-x_{k+1})\neq0, on peut choisir le réel AA tel que la fonction

g(t)=r(t)−A (t−xk)(t−xk+1)g(t)=r(t)-A\,(t-x_k)(t-x_{k+1})

s'annule en xx. Alors gg s'annule en xk<x<xk+1x_k<x<x_{k+1}. Le théorème de Rolle donne c1∈ ]xk,x[c_1\in\,]x_k,x[ et c2∈ ]x,xk+1[c_2\in\,]x,x_{k+1}[ avec g′(c1)=g′(c2)=0g'(c_1)=g'(c_2)=0, puis c∈ ]c1,c2[c\in\,]c_1,c_2[ avec g′′(c)=0g''(c)=0, c'est-à-dire f′′(c)=2Af''(c)=2A. Ainsi

r(x)=f′′(c)2 (x−xk)(x−xk+1),∣r(x)∣≤M22 (x−xk)(xk+1−x)≤M22⋅ℓ24=M2 ℓ28,r(x)=\frac{f''(c)}{2}\,(x-x_k)(x-x_{k+1}),\qquad |r(x)|\le\frac{M_2}{2}\,(x-x_k)(x_{k+1}-x)\le\frac{M_2}{2}\cdot\frac{\ell^2}{4}=\frac{M_2\,\ell^2}{8},

car le produit de deux réels positifs de somme ℓ\ell est au plus ℓ24\frac{\ell^2}{4} (st≤(s+t2)2st\le(\frac{s+t}{2})^2). Comme ℓ≤h\ell\le h, on obtient la borne M2h28\frac{M_2h^2}{8}, valable aussi aux points xkx_k où l'erreur est nulle.

On peut aussi conclure par la formule de Taylor : en développant f(xk)f(x_k) et f(xk+1)f(x_{k+1}) au point xx à l'ordre 11 avec l'inégalité de Taylor-Lagrange, le terme en f′(x)f'(x) disparaît dans λf(xk)+(1−λ)f(xk+1)\lambda f(x_k)+(1-\lambda)f(x_{k+1}) et l'on retrouve ∣r(x)∣≤M22(x−xk)(xk+1−x)|r(x)|\le\frac{M_2}{2}(x-x_k)(x_{k+1}-x).

Exemples d'application

Valeur approchée de ln⁡1,5\ln 1{,}5

L'interpolation linéaire de ln⁡\ln entre 11 et 22 donne ln⁡1,5≈ln⁡1+ln⁡22=ln⁡22≈0,3466\ln1{,}5\approx\frac{\ln1+\ln2}{2}=\frac{\ln 2}{2}\approx0{,}3466, alors que ln⁡1,5≈0,4055\ln1{,}5\approx0{,}4055. D'après la preuve, avec f′′(t)=−1t2f''(t)=-\frac{1}{t^2}, l'erreur vaut ∣f′′(c)∣2⋅12⋅12=18c2\frac{|f''(c)|}{2}\cdot\frac12\cdot\frac12=\frac{1}{8c^2} pour un certain c∈ ]1,2[c\in\,]1,2[ : elle est comprise entre 132≈0,031\frac{1}{32}\approx0{,}031 et 18=0,125\frac18=0{,}125. L'erreur réelle, environ 0,05890{,}0589, est bien dans cet intervalle.

Nombre de points pour une précision donnée

Pour f=sin⁡f=\sin sur [0,π][0,\pi] et une subdivision régulière en nn intervalles, on a h=πnh=\frac{\pi}{n} et M2=1M_2=1, donc

∥f−fn∥∞≤π28n2.\|f-f_n\|_\infty\le\frac{\pi^2}{8n^2}.

Cette borne est inférieure à 10−410^{-4} dès que n2≥π28⋅104≈12337n^2\ge\frac{\pi^2}{8}\cdot10^4\approx12337, soit n≥112n\ge112.

Erreurs classiques

  • Confondre avec l'interpolation de Lagrange par un seul polynôme de haut degré : avec des points équidistants, celle-ci ne converge pas toujours uniformément (phénomène de Runge), alors que l'interpolation affine par morceaux converge pour toute fonction continue.

  • Annoncer une erreur en h2h^2 pour une fonction seulement continue : on a alors la convergence uniforme mais aucune vitesse. Pour ff KK-lipschitzienne, on obtient seulement ∥f−fn∥∞≤Kh2\|f-f_n\|_\infty\le\frac{Kh}{2}.

  • Majorer (x−xk)(xk+1−x)(x-x_k)(x_{k+1}-x) par h2h^2 au lieu de h24\frac{h^2}{4} : la borne reste juste mais devient quatre fois trop grande. Le maximum du produit est atteint au milieu de l'intervalle.

  • Oublier que le pas hh est le plus grand des écarts xk+1−xkx_{k+1}-x_k : pour une subdivision non régulière, c'est lui qui contrôle l'erreur.

Place dans le programme

Première année (MPSI, MP2I, PCSI) et deuxième année (MP, MPI, PSI), chapitre « Continuité uniforme ; approximation uniforme des fonctions ».

La construction de l'interpolée affine par morceaux et l'estimation d'erreur ne sont pas des théorèmes du programme : ce sont des exercices classiques (approximation uniforme, méthode des trapèzes). Il faut refaire la démonstration avant de les utiliser, en s'appuyant sur le théorème de Heine et le théorème de Rolle, qui sont au programme.

Dans les sujets de concours

Pour vous entraîner sur des sujets complets : Limites, continuité, dérivabilité et intégration (786 sujets), Suites et séries de fonctions (403 sujets).

Sujets où cette notion intervient explicitement :

Questions fréquentes

Quelle est la formule de l'interpolation linéaire ?

Entre (x0,y0)(x_0,y_0) et (x1,y1)(x_1,y_1) : y=y0+y1−y0x1−x0(x−x0)y=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0). C'est l'équation de la droite qui passe par les deux points.

Qu'est-ce que l'interpolation linéaire par morceaux ?

On relie les points (xk,f(xk))(x_k,f(x_k)) d'une subdivision par des segments. La fonction obtenue converge uniformément vers ff continue quand le pas tend vers 00, avec une erreur au plus M2h28\frac{M_2h^2}{8} si ff est de classe C2\mathcal{C}^2.

Qu'est-ce que l'interpolation bilinéaire ?

C'est l'analogue en deux variables sur un rectangle. Sur [0,1]2[0,1]^2 : f(x,y)≈(1−x)(1−y)f(0,0)+x(1−y)f(1,0)+(1−x)y f(0,1)+xy f(1,1)f(x,y)\approx(1-x)(1-y)f(0,0)+x(1-y)f(1,0)+(1-x)y\,f(0,1)+xy\,f(1,1), ce qui revient à interpoler linéairement en xx, puis en yy.

Exercices corrigés utilisant : Interpolation linéaire

3 exercices