next up previous index
suivant: Séries entières. monter: Développement de Taylor, séries précédent: Développement de Taylor, séries   Index


La fonction exponentielle

Soit f (x) = exp(x) et x0 = 0, la dérivée n-ième de f est exp(x), donc Rn(x) = exp($ \theta$)xn+1/(n + 1)! avec $ \theta$ compris entre 0 et x, ainsi si x est positif | Rn(x)| $ \leq$ exxn+1/(n + 1)! et si x est négatif, | Rn(x)| $ \leq$ xn+1/(n + 1)!. Dans les deux cas, la limite de Rn est 0 lorsque n tend vers l'infini, car pour n $ \geq$ 2x, on a

$\displaystyle {\frac{{x^{n+1}}}{{(n+1)!}}}$ = $\displaystyle {\frac{{x^n}}{{n!}}}$$\displaystyle {\frac{{x}}{{n+1}}}$ $\displaystyle \leq$ $\displaystyle {\frac{{1}}{{2}}}$$\displaystyle {\frac{{x^n}}{{n!}}}$

on a donc pour tout x réel

ex = $\displaystyle \lim_{{n \rightarrow +\infty}}^{}$Tn(f )(x) = $\displaystyle \lim_{{n \rightarrow +\infty}}^{}$$\displaystyle \sum_{{k=0}}^{n}$$\displaystyle {\frac{{x^k}}{{k!}}}$ = $\displaystyle \sum_{{k=0}}^{\infty}$$\displaystyle {\frac{{x^k}}{{k!}}}$

Comment en déduire une valeur approchée de ex? Il suffira d'arrêter la sommation lorsque R : = xn+1/(n + 1)! si x < 0 ou lorsque R : = exxn+1/(n + 1)! si x > 0 est inférieur à l'erreur absolue souhaitée, le plus tôt étant le mieux pour des raisons d'efficacité et pour éviter l'accumulation d'erreurs d'arrondi. Si on veut connaitre ex à une erreur relative $ \varepsilon$ donnée (par exemple $ \varepsilon$ = 2-53 pour stocker le résultat dans un double) il suffit que R/ex < $ \varepsilon$, donc si x est positif, il suffit que xn+1/(n + 1)! < $ \varepsilon$, on peut donc arrêter la sommation lorsque le terme suivant est plus petit que $ \varepsilon$. On observe que plus x est grand, plus n devra être grand pour réaliser le test d'arrêt, ce qui est facheux. On peut utiliser les propriétés de la fonction exponentielle pour éviter ce problème, si on connait une valeur approchée de ln(2) on effectue la division euclidienne de x par ln(2) avec reste symétrique :

x = a ln(2) + r,    a $\displaystyle \in$ $\displaystyle \mathbb {Z}$,| r| $\displaystyle \leq$ $\displaystyle {\frac{{ln(2)}}{{2}}}$

puis si r est positif, on somme la série de T(f )(r), si r est négatif, on calcule T(f )(- r) et on inverse, on applique alors :

ex = 2aer

Il faut toutefois noter que ln(2) n'étant pas connu exactement, on commet une erreur d'arrondi absolu sur r d'ordre a$ \eta$, où $ \eta$ est l'erreur relative sur ln(2), il faut donc ajouter une erreur d'arrondi relative de x/ln(2)$ \eta$ qui peut devenir grande si x est grand. Puis il faut ajouter la somme des erreurs d'arrondi due au calcul de er, que l'on peut minimiser en utilisant la méthode de Horner pour évaluer Tn(f )(r) (car elle commence par sommer les termes de plus haut degré qui sont justement les plus petits termes de la somme). Les coprocesseurs arithmétiques qui implémentent la fonction exponentielle ont un format de représentation interne des double avec une mantisse plus grande que celle des double (par exemple 80 bits au lieu de 52), et une table contenant des constantes dont ln(2) avec cette précision, le calcul de ex par cette méthode entraine donc seulement une erreur relative d'arrondi au plus proche sur le résultat converti en double (donc de 2-53).

Notons que en général x lui-même a déjà été arrondi ou n'est connu qu'avec une précision relative. Or si x > 0 est connu avec une erreur relative de $ \varepsilon$ (donc une erreur absolue de $ \varepsilon$| x|, alors

ex+$\scriptstyle \varepsilon$| x| = exe$\scriptstyle \varepsilon$| x|

donc on ne peut pas espérer mieux qu'une erreur relative de e$\scriptstyle \varepsilon$| x| - 1 sur l'exponentielle de x. Si $ \varepsilon$x est petit cette erreur relative (impossible à éviter, quel que soit l'algorithme utilisé pour calculer l'exponentielle) est d'ordre $ \varepsilon$| x|. Si $ \varepsilon$x est grand alors l'erreur relative devient de l'ordre de 1, et la valeur de l'exponentielle calculée peut être très éloignée de la valeur réelle! Notons que pour les double, il y aura dans ce cas débordement soit vers l'infini soit vers 0 (par exemple si x est supérieur à 709, l'exponentielle renvoie infini).

Exercice : refaire les mêmes calculs pour les fonction sinus ou cosinus. On utilise par exemple sin(x + $ \pi$) = - sin(x), sin(- x) = - sin(x), sin(x) = cos($ \pi$/2 - x) pour se ramener au calcul de sin(x) ou de cos(x) sur [0,$ \pi$/4].

sin(x) = $\displaystyle \sum_{{n=0}}^{\infty}$(- 1)n$\displaystyle {\frac{{x^{2n+1}}}{{(2n+1)!}}}$,    cos(x) = $\displaystyle \sum_{{n=0}}^{\infty}$(- 1)n$\displaystyle {\frac{{x^{2n}}}{{(2n)!}}}$

Cette méthode a toutefois ces limites, car il peut devenir impraticable de calculer la dérivée n-ième d'une fonction (par exemple avec tan(x)), et encore plus de la majorer. D'où l'intérêt de développer une théorie des fonctions qui sont égales à leur développement de Taylor à l'infini d'une part, et d'avoir d'autres méthodes pour majorer le reste, nous présentons ici le cas des séries alternées.


next up previous index
suivant: Séries entières. monter: Développement de Taylor, séries précédent: Développement de Taylor, séries   Index
Retour à la page principale de mat249