La fonction diff() dans MATLAB

Ammar Ali 20 janvier 2022
La fonction diff() dans MATLAB

Ce tutoriel abordera la recherche de différences et de dérivées approximatives à l’aide de la fonction diff() dans Matlab.

Trouver des différences et des dérivés approximatifs à l’aide de la fonction diff() dans MATLAB

La fonction diff() est utilisée pour trouver les différences et les dérivées approximatives dans Matlab. La syntaxe : diff(x) est utilisée pour trouver les différences entre les éléments adjacents d’un vecteur ou d’une matrice. Si l’entrée est un vecteur, alors la différence sera la différence entre les valeurs adjacentes du vecteur d’entrée. La taille du vecteur de sortie sera un de moins que la taille du vecteur d’entrée. Par exemple, trouvons la différence entre les valeurs d’un vecteur. Voir le code ci-dessous.

clc
x = [1 3 6 9];
y = diff(x)

Production :

y =

     2     3     3

En sortie, la différence entre les deux premiers éléments du vecteur d’entrée 1 et 3 est de deux, ce qui est stocké dans la variable y. Si l’entrée est une matrice, alors la différence sera la différence entre les lignes de la matrice d’entrée, et la taille des lignes sera égale à la différence entre la longueur des lignes et l’ordre de la différence. Par exemple, trouvons la différence entre les valeurs d’un vecteur. Voir le code ci-dessous.

clc
x = [1 3 6 9; 1 2 3 4]
y = diff(x)

Production :

x =

     1     3     6     9
     1     2     3     4


y =

     0    -1    -3    -5

En sortie, la différence entre les deux premiers éléments des deux premières lignes de la matrice d’entrée est 0, qui est stockée dans la variable y. Si nous augmentons une ligne dans la matrice d’entrée, une ligne augmentera également dans la matrice de sortie. Nous pouvons également trouver la nième différence de temps entre les éléments vectoriels ou matriciels en utilisant le deuxième argument de la fonction diff(). Par exemple, la fonction diff(x,2) trouvera la différence de second ordre entre les valeurs du vecteur ou de la matrice d’entrée. L’instruction diff(x,2) est la même que l’instruction diff(diff(x)). Par exemple, trouvons la différence de 2ème ordre entre les valeurs du vecteur ci-dessus. Voir le code ci-dessous.

clc
x = [1 3 6 9]
y = diff(x,2)

Production :

x =

     1     3     6     9


y =

     1     0

En sortie, la taille du vecteur de sortie a également diminué car la taille sera égale à la différence entre la longueur du vecteur d’entrée et l’ordre de différence. Dans le cas d’ordre supérieur, la fonction diff() s’appelle récursivement pour trouver la différence. On peut aussi trouver la différence entre les colonnes d’une matrice au lieu de la ligne en utilisant le troisième argument de la fonction diff(). Par exemple, trouvons la différence entre les colonnes de la matrice ci-dessus. Voir le code ci-dessous.

clc
x = [1 3 6 9; 1 2 3 4]
y = diff(x,1,2)

Production :

x =

     1     3     6     9
     1     2     3     4


y =

     2     3     3
     1     1     1

En cas de différence entre les colonnes, la taille des colonnes sera égale à la différence entre la longueur des colonnes et l’ordre de différence, et la taille des lignes restera la même. On peut aussi trouver la dérivée partielle d’une fonction en utilisant la fonction diff(f)/h. Où f est la fonction donnée et h est la taille du pas. Par exemple, trouvons la dérivée partielle de sin(x) et traçons-la sur un graphique à l’aide de la fonction plot(). Voir le code ci-dessous.

h = 0.001;       
x = -2*pi:h:2*pi;    
f = sin(x);      
y = diff(f)/h;  
plot(x(:,1:length(y)),y,x,f)
legend('sin(x)','cos(x)')

Sortir:

dérivée de l’onde sinusoïdale

Dans la sortie, la ligne bleue est l’onde sinusoïdale et la ligne rouge est l’onde cosinusoïdale qui est la dérivée de l’onde sinusoïdale. La fonction legend() permet de tracer des légendes sur le graphe pour indiquer quel tracé appartient à quelle donnée.

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - MATLAB Vector