Vous êtes sur la page 1sur 3

1

Ecole Supérieure privée A.U. 2019/2020 - Semestre 2


de l’Aéronautique et des Technologies Maths Appliquées - Niveau 3GT et 3GA
Enseignante : Marwa Bouali

TP : Différentiation Numérique

Objectif
Dans ce TP, nous allons approximer, sous Matlab, la dérivée première f 0 (x) et la dérivée seconde
f 00 (x). Notons que l’expression analytique de f (x) peut être connue comme elle peut être inconnue.

Compte rendu
Vous devez rédiger un compte-rendu dans lequel vous répondrez à toutes les questions de ce TP. La
qualité de la rédaction, de la synthèse, de l’analyse des résultats obtenus sont des critères importants
pour la note.

Principe
On considère une fonction f : [a, b] → R de classe suffisamment élevée, x ∈]a, b[ fixé. On veut
approcher (au mieux !) les dérivées de la fonction f au point x. Or

f (x + h) − f (x)
f 0 (x) = lim
h→0 h
avec h > 0 (petit), on obtient
f (x + h) − f (x)
f 0 (x) ' .
h
Nous constatons que cette approximation de f 0 (x) fait intervenir la valeur de f en x et x + h, ce
qui nous conduit à approcher les nombres f 0 (x), f 00 (x), · · · , f (n) (x) en utilisant un ensemble discret de
points. Une des méthodes les plus anciennes utilisées pour obtenir des formules de dérivation numérique
consiste à construire des quotients différentiels à l’aide des développements de Taylor.

1. Approximation de la dérivée première


Effectuons un premier développement de Taylor d’ordre 1 de f autour de x :

h2 00
f (x + h) = f (x) + h f 0 (x) + f (ξ), ξ ∈ [x, x + h].
2!
On obtient

 f 0 (x) ' f 0 (x) = f (x + h) − f (x) ,

c’est la formule de différences finies progressives.
d
h
h
 Ed = − f 00 (ξ), ξ ∈ [x, x + h],
 c’est l’erreur commise.
2
2

Effectuons un deuxième développement de Taylor d’ordre 1 de f autour de x :


h2 00
f (x − h) = f (x) − h f 0 (x) + f (ξ), ξ ∈ [x − h, x].
2!
On obtient

 f 0 (x) ' fg0 (x) = f (x) − f (x − h) , c’est la formule de différences finies régressive.

h
 Eg = h f 00 (ξ), ξ ∈ [x − h, x], c’est l’erreur commise.

2
Les formules obtenues sont donc deux approximations d’ordre 1 de la dérivée première et l’erreur à
chaque fois tend vers 0 quand h tend vers 0.
Augmentons l’ordre du développement de Taylor de f autour de x :
h2 00 h3 000
f (x + h) = f (x) + h f 0 (x) + f (x) + f (ξ1 ), ξ1 ∈ [x, x + h],
2! 3!
h2 00 h3 000
f (x − h) = f (x) − h f 0 (x) +
f (x) − f (ξ2 ), ξ2 ∈ [x − h, x].
2! 3!
En soustrayant membre à membre, on obtient
h3 000
f (x + h) − f (x − h) = 2hf 0 (x) + f (ξ1 ) + f 000 (ξ2 ) .

6
Ce qui donne
f (x + h) − f (x − h)

 f 0 (x) ' fc0 (x) =
 , c’est la formule de différences finies centrées.
2
2h 2
 Ec = − h f 000 (ξ1 ) + f 000 (ξ2 ) = − h f 000 (ξ), ξ ∈ [x − h, x + h], c’est l’erreur commise.
 
12 6
b−a
Supposons que l’intervalle [a, b] est découpé en N intervalles, on pose h = et on introduit les
N
points de grille xi de sorte que xi = a + ih, i = 0, · · · , N . Supposons que f est connue uniquement en
les points de grille xi . Alors pour approcher f 0 (xi ), i = 0, · · · , N :
1. La formule de différences finies progressive donne :

f (xi+1 ) − f (xi )
f 0 (xi ) ' fd0 (xi ) = , i = 0, · · · , N − 1. (1)
h
On remarque que la relation (1) n’est pas définie pour i = N , on perd donc le dernier point de
grille quand on utilise cette relation pour approcher f 0 (xi ).
2. La formule de différences finies régressive donne :

f (xi ) − f (xi−1 )
f 0 (xi ) ' fg0 (xi ) = , i = 1, · · · , N. (2)
h
On remarque que la relation (2) n’est pas définie pour i = 0, on perd donc le premier point de
grille quand on utilise cette relation pour approcher f 0 (xi ).
3. La formule de différences finies centrées donne :
f (xi+1 ) − f (xi−1 )
f 0 (xi ) ' fc0 (xi ) = , i = 1, · · · , N − 1. (3)
2h
On remarque que la relation (3) n’est pas définie pour i = 0 et i = N , on perd donc le premier
et le dernier point de grille quand on utilise cette relation pour approcher f 0 (xi ). Constatons
aussi que
fg0 (xi ) + fd0 (xi )
fc0 (xi ) = , i = 1, · · · , N − 1.
2
3

Soient la fonction f : x → sin(x) et le segment [0, π/2] que l’on divise en 10 intervalles.
1. Représenter les dérivées fd0 , fc0 , fg0 en chacun des points de la subdivision.
2. Ajoutez le traçage de graphe de la fonction dérivée f 0 sur une même figure avec une couleur
différente et une légende. Que remarquez-vous ?
3. Quelle est la méthode la plus performante pour le calcul de la dérivée numérique ?
4. Matlab dispose d’une fonction prédéfinie de calcul de la dérivée appelée diff. Pour trouver la
dérivée de la fonction f (x) = sin(x), on écrira :
 syms x ;
 f = sin(5 ∗ x) ;
 df = dif f (f )
Ici la commande syms crée des variables et des fonctions symboliques.
5. Matlab propose la fonction polyder pour calculer la dérivée d’un polynôme telle que :
dP
= n an xn−1 + (n − 1) an−1 xn−2 + . . . + a1 .
dx
Parce que la dérivée du polynôme est obtenue à partir de la formule précédent, la fonction
polyder n’est pas une opération de différentiation numérique. Sa syntaxe peut prendre la
forme suivante b = polyder(P ), renvoie un vecteur b contenant les coefficients de la dérivée du
polynôme P . Adapter cette fonction en utilisant le polynôme P (x) = 3x5 − 2x3 + x + 5.

2. Approximation de la dérivée seconde


Pour obtenir une approximation de la dérivée seconde, nous procédons de la même façon, mais à
partir de développements de Taylor d’ordre 4 :
h2 00 h3 000 h4 (4)
f (x + h) = f (x) + h f 0 (x) + f (x) + f (x) + f (ξ1 ), ξ1 ∈ [x, x + h].
2! 3! 4!
h2 00 h3 000 h4 (4)
f (x − h) = f (x) − h f 0 (x) + f (x) − f (x) + f (ξ2 ), ξ2 ∈ [x − h, x].
2! 3! 4!
Après addition, on obtient la formule de différence centrée pour f 00 (une approximation de la dérivée
seconde de f en x)
f (x + h) − 2 f (x) + f (x − h)
fc00 (x) = .
h2
Basant sur les Approximations de la dérivée première, on obtient la formule de différence pro-
gressive pour f 00
f (x + 2h) − 2f (x + h) + f (x)
fd00 (x) '
h2
et la formule de différence regressive pour f 00
f (x) − 2f (x − h) + f (x − 2h)
fg00 (x) ' .
h2
Si on fait la moyenne des deux dérivées décentrée à gauche et à droite on obtient formule de différence
centrée pour f 00 .
Soient la fonction f : x → sin(x) et le segment [0, π/2] que l’on divise en 10 intervalles.
1. Représenter les dérivées secondes fd00 , fc00 , fg00 en chacun des points de la subdivision.
2. Ajoutez le traçage de graphe de la fonction dérivée seconde f 00 sur une même figure avec une
couleur différente et une légende. Que remarquez-vous ?
3. Quelle est la méthode la plus performante pour le calcul de la dérivée seconde numérique ?

Vous aimerez peut-être aussi