Dérivation ========== Soit une fonction :math:`f:\mathbb{R}\rightarrow\mathbb{R}` et :math:`f'` sa dérivée. Si les expressions de :math:`f(x)` et de :math:`f'(x)` sont connues, le calcul numérique de :math:`f'(x)` consiste simplement à évaluer une expression. Nous nous intéressons aux cas où l'expression de la dérivée n'est pas connue, ce qui se présente dans les situations suivantes : 1. L'expression de :math:`f(x)` est connue mais celle de :math:`f'(x)` est trop complexe à déterminer. 2. Le calcul de :math:`f(x)` se fait par une simulation et :math:`f'(x)` n'est pas connue. 3. Seules les valeurs de :math:`f` pour un échantillonnage d'un intervalle :math:`[a,b]` sont connues, par exemple des valeurs expérimentales. Différence finie ---------------- Considérons la définition de la dérivée, pour une fonction dérivable en :math:`x` : .. math:: f'(x)=\lim_{h\rightarrow 0}\frac{f(x+h)-f(x)}{h} Si :math:`h` est un nombre réel assez petit, on peut obtenir une approximation de la dérivée par la relation suivante : .. math:: f'(x)\approx \frac{f(x+h)-f(x)}{h} :label: derivA Cette relation est nommée **différence finie**, car elle consiste à calculer la différence entre deux points séparés d'une distance finie. La question se pose de savoir ce que signifie :math:`h` assez petit et de la précision de la différence finie. Pour répondre à cette question, considérons le développement de Taylor suivant : .. math:: f(x+h)=f(x)+f'(x)h+f''(x)\frac{h^2}{2}+f'''(x)\frac{h^3}{6}+O(h^4) où :math:`O(h^4)` désigne un terme dont la valeur absolue est inférieure à une constante multipliée par :math:`h^4` lorsque :math:`h` est assez petit (terme d'ordre 4). On en déduit l'expression suivante de la dérivée : .. math:: f'(x)=&\frac{f(x+h)-f(x)}{h}-f''(x)\frac{h}{2}-f'''(x)\frac{h^2}{6}+O(h^3)\\f'(x)=&\frac{f(x+h)-f(x)}{h}+O(h) Cette relation montre que **l'erreur de troncature**, c'est-à-dire l'erreur commise en utilisant la différence finie :eq:`derivA`, est :math:`O(h)` (grand O de h). Cela signifie qu'il existe une constante :math:`K_1` telle que, pour :math:`h` assez petit, la valeur absolue de l'erreur est inférieure ou égale à :math:`K_1|h|`. La relation :eq:`derivA` constitue donc un **schéma numérique** d'ordre 1. Un résultat plus précis peut être obtenu en utilisant les développements de Taylor de :math:`f(x+h)` et :math:`f(x-h)`, qui conduisent à : .. math:: f'(x)&=\frac{f(x+h)-f(x-h)}{2h}-f'''(x)\frac{h^2}{6}+O(h^3)\\f'(x)&=\frac{f(x+h)-f(x-h)}{2h}+O(h^2) Nous obtenons alors la différence finie suivante comme approximation de la dérivée : .. math:: f'(x)\approx \frac{f(x+h)-f(x-h)}{2h} :label: derivB Cette différence finie est qualifiée de **différence centrée** car elle utilise la valeur de la fonction de part et d'autre du point où l'on cherche la dérivée. Pour la différence finie :eq:`derivB`, l'erreur de troncature est :math:`O(h^2)`, soit une erreur d'ordre 2 alors qu'elle est d'ordre 1 pour la différence finie :eq:`derivA`. Les erreurs de troncature des différences finies :eq:`derivA` et :eq:`derivB` vérifient, pour :math:`h` assez petit, les inégalités suivantes : .. math:: \begin{align} &|e_1|