Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Taux de variation et dérivée numérique

Après cette leçon: Je peux estimer à partir de nombres la vitesse à laquelle une grandeur change.

Leçon de 55 min3 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Combien de locations en plus par degré ?

Un taux de variation dit de combien une quantité change quand une autre change d’une unité. La dérivée numérique est ce taux estimé avec un tout petit pas.

Un loueur de vélos voit la température monter de 3,3 degrés entre deux jours. Il veut savoir combien de locations cela ajoute, par degré.

À la fin de cette leçon

Remarque

Je peux estimer à partir de nombres la vitesse à laquelle une grandeur change.

Mots clés

MotCe que ça veut dire
Taux de variationle changement de y divisé par le changement de x
Pentele taux de variation d’une droite
Pasle petit écart h que l’on ajoute à x
Dérivéela pente d’une courbe en un point
Différence centréela pente mesurée de part et d’autre du point

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un taux de variation est une division

On compare deux changements. D’abord le changement de la grandeur qui nous intéresse, appelons-la y. Puis le changement de la grandeur qui la fait bouger, appelons-la x.

Le taux de variation est le premier divisé par le second. Si le prix d’un abonnement passe de 20 à 26 euros pour 3 mois de plus, le taux est de 2 euros par mois.

Exemple travaillé : température et locations

GrandeurLe 1er janvierLe 2 janvierChangement
Température en degrés0,94,2+3,3
Locations de vélos137212+75
Taux de variation75 divisé par 3,3, soit environ 22,7 locations par degré

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Lire la température des deux premiers jours

Commande
docker exec jupyter python3 -c "import csv; t = [float(r['temp_c']) for r in csv.DictReader(open('hires.csv'))]; print(t[0], t[1], round(t[1] - t[0], 1))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire les locations des deux premiers jours

Commande
docker exec jupyter python3 -c "import csv; h = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))]; print(h[0], h[1], h[1] - h[0])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Réduire le pas rapproche de la dérivée

Entre deux jours, le taux est une moyenne. Il décrit un trajet et non un instant. Pour connaître la pente en un point précis, on réduit le pas h.

On calcule la pente entre x et x + h, puis on rend h de plus en plus petit. Les résultats se rapprochent d’une valeur : c’est la dérivée.

Exemple : la pente de x au carré

Pas hf(3 + h) moins f(3)Divisé par h
116 moins 9 = 77
0,19,61 moins 9 = 0,616,1
0,019,0601 moins 9 = 0,06016,01
0,0019,006001 moins 9 = 0,0060016,001

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Réduire le pas et voir la pente

Commande
docker exec jupyter python3 -c "f = lambda x: x ** 2; print([round((f(3 + h) - f(3)) / h, 4) for h in (1, 0.1, 0.01, 0.001)])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La différence centrée est plus exacte

Le calcul précédent regarde seulement vers l’avant. Il se trompe un peu, car la courbe tourne. Une différence centrée regarde des deux côtés : de x moins h à x plus h.

Le résultat est divisé par 2h. Pour le même pas, l’erreur est bien plus petite. C’est la méthode que nous garderons pour le reste du module.

Comparer les deux estimations

Code: python
# Une fonction et sa pente en x = 2, estimée de deux façons.
def cube(x):
    return x ** 3

x = 2
h = 0.1
vers_l_avant = (cube(x + h) - cube(x)) / h
centree = (cube(x + h) - cube(x - h)) / (2 * h)
print("pas vers l’avant :", round(vers_l_avant, 2))
print("pas centré :", round(centree, 2))
# La vraie pente vaut 12. Remplacez h par 0.01, puis relancez.

Une erreur fréquente

Attention

Beaucoup pensent qu’il faut prendre le pas le plus petit possible. Un pas minuscule, comme 0,0000000001, soustrait deux nombres presque égaux et l’ordinateur perd des chiffres. Un pas autour de 0,001 ou 0,0001 est un bon compromis.

Pour aller plus loin

Dans un carnet du labo, chargez hires.csv avec pandas et calculez la variation des locations d’un jour au suivant avec diff(). Cherchez le jour de la plus forte hausse.

La leçon suivante remplace le calcul par des règles qui donnent la dérivée exacte, sans aucun pas.

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.