Livre_silo 30 août 2013 16:32 Page 208
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
208
Informatique pour tous
Toutefois, on peut gagner très facilement un ordre : si f est de classe C
3 et f
(3) (x 0 ) ̸ = 0,
alors :
f (x 0 + h) − f (x 0 − h)
2h
− f
′ (x 0 ) ∼
f
(3) (x 0 )
12
h
2 .
Si f
(3) (x 0 ) = 0 on gagne évidemment encore un ordre. Ceci nous invite à approcher f
′ (x 0 ) via le programme suivant :
def derivee(f, x0, h):
return (f(x0+h) - f(x0-h)) / (2*h)
Dans l’exemple qui suit, on prend pour f la fonction exponentielle et on s’intéresse à des approximations de sa dérivée en 0, pour des valeurs de h allant de 1 à 2
−30 . On représente figure 8.5 l’erreur |∆ 0 (h) − 1| avec ∆ 0 (h) =
f (h) − f (0)
h
, puis ∆ 0 (h) =
f (h) − f (−h)
2h
·
Les pentes sont bien celles espérées !
precision-derivees.pdf
Figure 8.5
Comparaison entre les deux formules de dérivation discrète.
Exercice 8.5 À partir de n = 26 (respectivement 18), la méthode d’ordre 1 (respectivement 2) appliquée
à h = 2 −n renvoie le résultat « exact » 1. jusqu’à n = 52 inclus, puis renvoie 0. ; pourquoi ?
Avec la méthode symétrique d’ordre 2, on peut montrer que le pas optimal est de l’ordre de δ 1/3 , avec
δ l’erreur relative dans l’évaluation de f (typiquement : de l’ordre de 2 −b , avec b le nombre de bits
significatifs).
Précédent

- 221/402

Suivant