Matlab – Graphe de la dérivée d’une fonction f ’(x)

Voici "ma" méthode :

Commençons par créer le fichier .m de la fonction :

 

>> [ x y ] = fplot ( 'f2' , [ 0 2*pi ] )

x =

0

0.0126

0.0251

6.2455

6.2643

6.2832

y =

0.5000

0.4997

0.4986

0.4966

0.4992

0.5000

 

Une approximation de la dérivée est donnée par :

>> dy = diff(y)./diff(x)

dy =

-0.0276

-0.0804

-0.1292

0.1370

0.0438

 

>> plot (x , dy)

??? Error using ==> plot

Vectors must be the same lengths.

 >> length(x)

ans =

307

>> length(dy)

ans =

306

 

Problème !

Le vecteur dy a un élément de moins que le vecteur x, ce que n'apprécie pas la fonction plot.

Nous allons contourner la difficulté en ignorant le dernier élément du vecteur x :

>> plot ( x (1 : length(x)-1 , : ) , dy , '. ')

>> grid on

 

Comparons avec la dérivée exacte (couleur bleue) :

>> hold on

>> fplot ( 'cos(x) - 1.5*sin(3*x) - cos(5*x)' , [ 0 2*pi ] , 'b.' )

 

En vert, la fonction f2(x) :

>> fplot ( 'f2' , [ 0 2*pi ] , 'g.' )

 

© Fabrice Sincère

http://perso.orange.fr/fabrice.sincere/