Dérivée d'une fonction définie par un tableau de valeurs

Méthode 1

Cette page présente le calcul numérique de la dérivée d'une fonction :\(y_i\) dont on connaît les valeurs pour des abscisses\(x_i\) .

Une approximation numérique de la dérivée est obtenue en calculant la pente entre deux points de coordonnées\((x_i , y_i)\) et\((x_{i+1} , y_{i+1})\)

La pente correspond au coefficient directeur de la droite qui passe par ces deux points.

Comme la pente est calculée entre deux abscisses\(x_i\) et\(x_{i+1}\) , on associera cette dérivée à l'abscisse située au milieu.

On stocke les valeurs des nouvelles abscisses dans un tableau\(xnew\) avec\(xnew_i= \frac{x_i+x_{i+1}}{2} \).

Il est important de noter qu'il y aura seulement\(len(x)-1\) valeurs pour\(xnew\).

On utilise une boucle pour calculer les valeurs de la dérivée qui seront stockées dans un tableau\(dy\) (d pour la dérivée) avec\(dy_i= \frac{y_{i+1}-y_i}{x_{i+1}-x_i}\)

## Définition de la fonction dérivation

def derivation(x,y):

# x et y des listes ou des tableaux de valeurs, de même dimension

# xnew et dy les tableaux de valeurs de la nouvelle abscisse et de la dérivée

xnew=np.zeros(len(x)-1)

dy=np.zeros(len(x)-1) # tableau de zéros pour la dérivée dy

for i in range(len(x)-1):

xnew[i] = (x[i] + x[i+1]) / 2

dy[i] = (y[i+1] - y[i]) / (x[i+1] - x[i])

return (xnew,dy)

Exemple d'utilisation de cette fonction :

# t, x sont les tableaux des valeurs brutes de même dimension

# v est le tableau des valeurs dérivées

(tnew,v)=derivation(t,x)

Méthode 2 (afin d'obtenir le même nombre de points que les tableaux initiaux)

## Définition de la fonction dérivation

def derivation(x,y):

# x et y des listes ou des tableaux de valeurs, de même dimension

# dy le tableau de valeurs de la dérivée

n=len(x)

dy=np.zeros(n) # tableau de n zéros pour la dérivée dy

# premier point : dérivée à droite -> : f'(xi)=(f(xi+h)-f(xi))/h)

dy[0]=(y[1]-y[0])/(x[1]-x[0])

# dérivée centrée pour les autres points -> : f'(xi)=(f(xi+h)-f(xi-h))/(2*h)

for i in range(1,n-1):

dy[i]=(y[i+1]-y[i-1])/(x[i+1]-x[i-1])

#dernier point : dérivée à gauche -> : f'(xi)=(f(xi)-f(xi-h))/h

dy[n-1]=(y[n-1]-y[n-2])/(x[n-1]-x[n-2])

return dy

Exemple d'utilisation de cette fonction :

# t, x sont les tableaux des valeurs brutes de même dimension

# v est le tableau des valeurs dérivées

v=derivation(t,x)