Formules de dérivation numérique et instabilité

Objectifs d'apprentissage

À la fin de cette leçon, vous serez en mesure de :

  • Appliquer les formules de dérivation numérique (avant, arrière, centrée)
  • Reconstruire ces formules à partir des séries de Taylor
  • Comprendre le phénomène d'instabilité de la dérivation numérique
  • Interpréter la notation O(hn)O(h^n) pour l'ordre d'une approximation

Prérequis

  • Formule générale de dérivation de Newton-Gregory (leçon précédente)
  • Variable réduite ss et cas particuliers (s=0,1,1s = 0, 1, -1)
  • Développements de Taylor

Rappel et fil conducteur

Dans la leçon précédente, nous avons établi la formule générale de la dérivée du polynôme de Newton-Gregory, qui dépend du paramètre s=(xx0)/hs = (x - x_0)/h. En évaluant cette formule en s=0s = 0, nous avons obtenu la formule compacte avec les coefficients harmoniques alternés. Nous avons aussi vu que les formules classiques — différence avant, centrée, arrière — sont des cas particuliers de cette formule générale, évalués en différents ss et avec différents nombres de points.

Dans cette leçon, nous allons :

  1. Appliquer ces formules sur un exemple numérique concret
  2. Redériver la formule centrée par une approche alternative (séries de Taylor)
  3. Découvrir un problème fondamental : l'instabilité de la dérivation numérique

Exemple numérique complet

Mettons en pratique la formule de Newton-Gregory de la leçon précédente. Considérons f(x)=exf(x) = e^x et calculons sa dérivée en x0=1.7x_0 = 1.7 à partir de données tabulées avec un pas h=0.2h = 0.2.

Table des différences finies

xf(x)ΔfΔ²fΔ³fΔ⁴f
1.33.669
0.813
1.54.4820.179
0.9920.041
1.75.4740.2200.007
1.2120.048
1.96.6860.2680.012
1.4800.060
2.18.1660.3280.012
1.8080.072
2.39.9740.400
2.208
2.512.182

Calcul avec différents degrés

Valeur exacte : f(1.7)=e1.75.4739f'(1.7) = e^{1.7} \approx 5.4739

Avec le polynôme de degré 1 (différence avant, cas s=0s = 0 avec n=1n = 1) :

On applique directement la formule de la leçon précédente : P1(x0)=Δf0hP_1'(x_0) = \frac{\Delta f_0}{h}.

En x0=1.7x_0 = 1.7, nous avons Δf0=f(1.9)f(1.7)=6.6865.474=1.212\Delta f_0 = f(1.9) - f(1.7) = 6.686 - 5.474 = 1.212.

P1(1.7)=Δf0h=1.2120.2=6.06P_1'(1.7) = \frac{\Delta f_0}{h} = \frac{1.212}{0.2} = 6.06

Erreur : 6.065.47390.586|6.06 - 5.4739| \approx 0.586

Avec le polynôme de degré 2 (cas s=0s = 0 avec n=2n = 2) :

On utilise P2(x0)=1h[Δf012Δ2f0]P_2'(x_0) = \frac{1}{h}\left[\Delta f_0 - \frac{1}{2}\Delta^2 f_0\right]. Nous avons Δ2f0=Δf1Δf0=1.4801.212=0.268\Delta^2 f_0 = \Delta f_1 - \Delta f_0 = 1.480 - 1.212 = 0.268.

P2(1.7)=10.2[1.21212(0.268)]=1.0780.2=5.390P_2'(1.7) = \frac{1}{0.2}\left[1.212 - \frac{1}{2}(0.268)\right] = \frac{1.078}{0.2} = 5.390

Erreur : 5.3905.47390.084|5.390 - 5.4739| \approx 0.084

Observation

En ajoutant un seul terme (le Δ2\Delta^2), l'erreur passe de 0.586 à 0.084 — une amélioration d'un facteur 7 ! C'est conforme à la théorie : l'erreur passe de O(h)O(h) à O(h2)O(h^2).

Bornes d'erreur théoriques

Pour le polynôme de degré 1 :

E1(1.7)=h2f(ξ)=0.22eξ|E_1'(1.7)| = \frac{h}{2}|f''(\xi)| = \frac{0.2}{2}|e^\xi|

Comme ξ[1.7,1.9]\xi \in [1.7, 1.9], on a e1.7eξe1.9e^{1.7} \leq e^\xi \leq e^{1.9}, donc :

0.547E1(1.7)0.6690.547 \leq |E_1'(1.7)| \leq 0.669

Pour le polynôme de degré 2 :

E2(1.7)=h23f(ξ)=0.043eξ|E_2'(1.7)| = \frac{h^2}{3}|f'''(\xi)| = \frac{0.04}{3}|e^\xi|
0.073E2(1.7)0.1090.073 \leq |E_2'(1.7)| \leq 0.109

Formule centrée (différences centrées)

Lien avec la leçon précédente

Dans la leçon précédente, nous avons vu que la formule de Newton-Gregory évaluée en s=1s = 1 avec 3 points donne :

P2(x1)=f2f02hP_2'(x_1) = \frac{f_2 - f_0}{2h}

C'est la différence centrée ! Si on renomme les points pour centrer sur x0x_0 (en posant x1,x0,x1x_{-1}, x_0, x_1 au lieu de x0,x1,x2x_0, x_1, x_2), on obtient :

f(x0)f1f12hf'(x_0) \approx \frac{f_1 - f_{-1}}{2h}
💡

Formule centrée de dérivation

f(x0)=f(x0+h)f(x0h)2h+O(h2)f'(x_0) = \frac{f(x_0 + h) - f(x_0 - h)}{2h} + O(h^2)

Cette formule utilise des points de part et d'autre de x0x_0. Elle est d'ordre O(h2)O(h^2), soit un ordre de plus que la différence avant/arrière !

Pourquoi la formule centrée est-elle meilleure ?

Vérifions ce résultat par une approche indépendante : les séries de Taylor. Cette seconde dérivation est instructive car elle révèle pourquoi les termes impairs s'annulent.

La formule centrée bénéficie d'une annulation des termes d'erreur impairs. En développant par Taylor :

f(x0+h)=f0+hf0+h22f0+h36f0+O(h4)f(x_0 + h) = f_0 + hf'_0 + \frac{h^2}{2}f''_0 + \frac{h^3}{6}f'''_0 + O(h^4)
f(x0h)=f0hf0+h22f0h36f0+O(h4)f(x_0 - h) = f_0 - hf'_0 + \frac{h^2}{2}f''_0 - \frac{h^3}{6}f'''_0 + O(h^4)

En soustrayant :

f(x0+h)f(x0h)=2hf0+h33f0+O(h5)f(x_0 + h) - f(x_0 - h) = 2hf'_0 + \frac{h^3}{3}f'''_0 + O(h^5)

Donc :

f(x0+h)f(x0h)2h=f0+h26f0+O(h4)\frac{f(x_0 + h) - f(x_0 - h)}{2h} = f'_0 + \frac{h^2}{6}f'''_0 + O(h^4)

L'erreur est bien en O(h2)O(h^2).


Tableau récapitulatif des formules

Voici un résumé des principales formules de dérivation numérique. Elles sont toutes des cas particuliers de la formule de Newton-Gregory (leçon précédente), mais on les présente souvent sous leur forme explicite en termes de fif_i pour un usage direct.

Dérivée première

FormuleNomOrdre
f1f0h\frac{f_1 - f_0}{h}Différence avantO(h)O(h)
f0f1h\frac{f_0 - f_{-1}}{h}Différence arrièreO(h)O(h)
f1f12h\frac{f_1 - f_{-1}}{2h}Différence centréeO(h2)O(h^2)
f2+4f13f02h\frac{-f_2 + 4f_1 - 3f_0}{2h}3 points (avant)O(h2)O(h^2)
f2+8f18f1+f212h\frac{-f_2 + 8f_1 - 8f_{-1} + f_{-2}}{12h}5 points (centrée)O(h4)O(h^4)

Dérivée seconde

FormuleNomOrdre
f22f1+f0h2\frac{f_2 - 2f_1 + f_0}{h^2}3 points (avant)O(h)O(h)
f12f0+f1h2\frac{f_1 - 2f_0 + f_{-1}}{h^2}3 points (centrée)O(h2)O(h^2)
f3+4f25f1+2f0h2\frac{-f_3 + 4f_2 - 5f_1 + 2f_0}{h^2}4 points (avant)O(h2)O(h^2)
f2+16f130f0+16f1f212h2\frac{-f_2 + 16f_1 - 30f_0 + 16f_{-1} - f_{-2}}{12h^2}5 points (centrée)O(h4)O(h^4)

Instabilité de la dérivation numérique

🚨

Problème fondamental

Contrairement à l'intégration, la dérivation numérique est intrinsèquement instable : les erreurs d'arrondi sont amplifiées lors du calcul.

Intuition du problème

Considérons la différence avant f1f0h\frac{f_1 - f_0}{h}. Quand hh diminue, f1f_1 et f0f_0 deviennent de plus en plus proches. On soustrait deux nombres quasi-égaux, puis on divise par un nombre très petit. C'est une recette pour amplifier les erreurs d'arrondi.

Exemple concret : calculons f(1)f'(1) pour f(x)=exf(x) = e^x (valeur exacte : e2.718282e \approx 2.718282) avec la différence avant en double précision :

hApproximationErreur
10210^{-2}2.7319191.4×1021.4 \times 10^{-2}
10410^{-4}2.7184181.4×1041.4 \times 10^{-4}
10810^{-8}2.7182826.8×1096.8 \times 10^{-9}
101210^{-12}2.7182701.2×1051.2 \times 10^{-5}
101510^{-15}3.1086243.9×1013.9 \times 10^{-1}

L'erreur diminue d'abord (troncature), atteint un minimum vers h108h \approx 10^{-8}, puis remonte violemment ! À h=1015h = 10^{-15}, le résultat n'a plus aucun chiffre significatif correct.

Source mathématique du problème

Analysons formellement ce phénomène. En machine, on ne dispose pas des valeurs exactes f0f_0 et f1f_1, mais de valeurs arrondies :

f~0=f0+ϵ0,f~1=f1+ϵ1\tilde{f}_0 = f_0 + \epsilon_0, \quad \tilde{f}_1 = f_1 + \epsilon_1

ϵ0,ϵ1ϵ|\epsilon_0|, |\epsilon_1| \leq \epsilon avec ϵ\epsilon la précision machine. Le calcul effectif donne :

f~(x0)=f~1f~0h=(f1+ϵ1)(f0+ϵ0)h\tilde{f}'(x_0) = \frac{\tilde{f}_1 - \tilde{f}_0}{h} = \frac{(f_1 + \epsilon_1) - (f_0 + \epsilon_0)}{h}

En séparant la partie exacte et la partie erronée :

f~(x0)=f1f0happroximation exacte+ϵ1ϵ0herreur d’arrondi propageˊe\tilde{f}'(x_0) = \underbrace{\frac{f_1 - f_0}{h}}_{\text{approximation exacte}} + \underbrace{\frac{\epsilon_1 - \epsilon_0}{h}}_{\text{erreur d'arrondi propagée}}

L'erreur d'arrondi propagée est bornée par :

Earrondi=ϵ1ϵ0h2ϵh|E_{\text{arrondi}}| = \left|\frac{\epsilon_1 - \epsilon_0}{h}\right| \leq \frac{2\epsilon}{h}
⚠️

Amplification des erreurs

L'erreur d'arrondi est divisée par hh. Quand h0h \to 0, cette erreur tend vers l'infini. C'est le mécanisme d'instabilité.

Erreur totale et pas optimal

L'erreur totale comporte deux composantes qui évoluent en sens opposé :

  1. Erreur de troncature : EtroncC1hnE_{\text{tronc}} \approx C_1 h^n — due au fait qu'on remplace ff par un polynôme PnP_n (on tronque la série de Taylor). Elle décroît quand hh diminue.
  2. Erreur d'arrondi : Earrondi2ϵhE_{\text{arrondi}} \leq \frac{2\epsilon}{h} — due à la représentation finie des nombres en machine. Elle croît quand hh diminue.
Etotal(h)C1hn+2ϵhE_{\text{total}}(h) \leq C_1 h^n + \frac{2\epsilon}{h}

Pour trouver le pas optimal hh^*, on minimise cette borne en dérivant par rapport à hh :

ddhEtotal=nC1hn12ϵh2=0\frac{d}{dh}E_{\text{total}} = n C_1 h^{n-1} - \frac{2\epsilon}{h^2} = 0

On isole hh :

nC1hn1=2ϵh2hn+1=2ϵnC1n C_1 h^{n-1} = \frac{2\epsilon}{h^2} \quad \Rightarrow \quad h^{n+1} = \frac{2\epsilon}{n C_1}
h=(2ϵnC1)1/(n+1)h^* = \left(\frac{2\epsilon}{n C_1}\right)^{1/(n+1)}

En ordre de grandeur, le facteur 2nC1\frac{2}{nC_1} ne dépend pas de ϵ\epsilon et contribue peu face à la puissance 1/(n+1)1/(n+1). On retient donc :

💡

Pas optimal

hϵ1/(n+1)h^* \approx \epsilon^{1/(n+1)}

nn est l'ordre de la formule et ϵ\epsilon la précision sur les données.

Application en double précision (ϵ1016\epsilon \approx 10^{-16}) :

  • Différence avant (n=1n=1) : h(1016)1/2=108h^* \approx (10^{-16})^{1/2} = 10^{-8}
  • Différence centrée (n=2n=2) : h(1016)1/3105.3h^* \approx (10^{-16})^{1/3} \approx 10^{-5.3}

Cela explique le minimum observé dans le tableau ci-dessus : pour la différence avant, l'erreur minimale est atteinte vers h108h \approx 10^{-8}.

Double précision : utile ou non ?

Type d'erreur εDouble précision aide ?Explication
Erreur machine (arrondi)✅ Ouiε passe de 10⁻⁷ (simple) à 10⁻¹⁶ (double), donc h* diminue et l'erreur minimale aussi
Erreur de troncature (formule)✅ OuiLes calculs intermédiaires sont plus précis
Erreur sur les données (mesures, bruit)❌ NonSi les données ont 3 chiffres significatifs, ε ≈ 10⁻³ — la double précision ne change rien
⚠️

Attention aux données expérimentales

Si vos données proviennent de mesures physiques avec une incertitude δ\delta, c'est δ\delta qui joue le rôle de ϵ\epsilon dans la formule du pas optimal — pas la précision machine !

Par exemple, avec des données à 0.1% de précision (δ=103\delta = 10^{-3}) et une formule centrée :

h(103)1/30.1h^* \approx (10^{-3})^{1/3} \approx 0.1

Un pas plus petit qu'environ 0.1 dégraderait le résultat au lieu de l'améliorer.

Visualisation interactive


Notation O(hn)O(h^n)

Définition formelle

On dit que g(h)=O(hn)g(h) = O(h^n) quand h0h \to 0 s'il existe une constante C>0C > 0 et un seuil h0>0h_0 > 0 tels que :

g(h)Chnpour tout h<h0|g(h)| \leq C|h|^n \quad \text{pour tout } |h| < h_0

Exemple

limx0sin(x)x=1\lim_{x \to 0} \frac{\sin(x)}{x} = 1

Donc sin(x)=x+O(x3)\sin(x) = x + O(x^3), ou encore sin(x)=O(x)\sin(x) = O(x).

Propriétés

  • O(hm)+O(hn)=O(hmin(m,n))O(h^m) + O(h^n) = O(h^{\min(m,n)})
  • O(hm)O(hn)=O(hm+n)O(h^m) \cdot O(h^n) = O(h^{m+n})
  • O(1)O(h)O(h2)O(h3)O(1) \supseteq O(h) \supseteq O(h^2) \supseteq O(h^3) \supseteq \cdots

Interprétation pratique

Une méthode d'ordre O(hn)O(h^n) signifie que si on divise hh par 2, l'erreur est divisée par environ 2n2^n.

  • O(h)O(h) : diviser hh par 2 → erreur divisée par 2
  • O(h2)O(h^2) : diviser hh par 2 → erreur divisée par 4
  • O(h4)O(h^4) : diviser hh par 2 → erreur divisée par 16

Résumé

  • Les formules centrées sont généralement plus précises que les formules avant/arrière (un ordre de plus)
  • La dérivation numérique souffre d'un problème d'instabilité : les erreurs d'arrondi sont amplifiées par 1/h1/h
  • Il existe un pas optimal qui équilibre erreur de troncature et erreur d'arrondi
  • La notation O(hn)O(h^n) caractérise la vitesse de convergence d'une méthode

Pour aller plus loin

Dans la leçon suivante, nous verrons comment l'extrapolation de Richardson permet d'améliorer l'ordre de précision d'une formule de dérivation sans diminuer le pas hh.

Annexe A — Dérivation par Taylor

L'annexe A reprend toutes les formules de cette leçon par une approche alternative : au lieu de dériver Newton-Gregory, on manipule directement les développements de Taylor. Cette approche révèle pourquoi la différence centrée gagne un ordre « gratuitement » (principe de dualité soustraction/addition) et donne les expressions exactes des termes d'erreur. À lire pour consolider votre compréhension !