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 :
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