Interpolation polynomiale
de Lagrange

L’idée est d’approximer une fonction
par un polynôme passant par un ensemble de points $\{(x_i,f(x_i))\}$ sur la courbe de la fonction.

Pur ça, on utilise cette formule :

$$ P(x) = \sum_{j=1}^n f(x_j)\left(\color{purple}\prod_{i=1,i≠j}^n \frac{x-x_i}{x_j-x_i}\color{black}\right) $$

Pour notre exemple à 3 points, on obtient : $$ \begin{aligned} P(x) = &&y_1\color{purple}\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)}\color{black}\\&+&y_2\color{purple}\frac{(x-x_1)(x-x_3)}{(x_2-x_1)(x_2-x_3)}\color{black}\\&+&y_3\color{purple}\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)} \end{aligned} $$

Que vaut $P(x_1)$, $P(x_2)$, $P(x_3)$ ?

Problème : augmenter le nombre de points
afin d’améliorer la fidélité de l’interpolation
peut générer des instabilités !

L’idée est alors utiliser
une interpolation par morceaux.

On découpe l’intervalle $I$ de départ
en $N$ morceaux et on interpole la fonction
pour chaque intervalle de taille $I/N$
sur les nœuds qu’il contient.

Choisissons 15 nœuds sur la courbe
et découpons l’intervalle en 14.

On peut considérer :

  • soit que chaque intervalle contient un seul nœud : on interpole alors par un polynôme
    de degré 0.
  • soit que chaque intervalle contient deux nœuds : on interpole alors par un polynôme de degré 1.

Si on veut interpoler à l’ordre supérieur,
il faut garder 3 nœuds par intervalle, ce qui oblige, pour le même nombre de nœuds,
à grandir les intervalles.

Suite à une mise-à-jour de Colab,
il faut exécuter la commande suivante
(à écrire dans une cellule seule)

!apt-get update

avant d’éxécuter

!sudo apt install cm-super dvipng texlive-latex-extra texlive-latex-recommended

Retour site