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