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
| Mot | Ce que ça veut dire |
|---|---|
| Taux de variation | le changement de y divisé par le changement de x |
| Pente | le taux de variation d’une droite |
| Pas | le petit écart h que l’on ajoute à x |
| Dérivée | la pente d’une courbe en un point |
| Différence centrée | la 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
| Grandeur | Le 1er janvier | Le 2 janvier | Changement |
|---|---|---|---|
| Température en degrés | 0,9 | 4,2 | +3,3 |
| Locations de vélos | 137 | 212 | +75 |
| Taux de variation | 75 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
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
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 h | f(3 + h) moins f(3) | Divisé par h |
|---|---|---|
| 1 | 16 moins 9 = 7 | 7 |
| 0,1 | 9,61 moins 9 = 0,61 | 6,1 |
| 0,01 | 9,0601 moins 9 = 0,0601 | 6,01 |
| 0,001 | 9,006001 moins 9 = 0,006001 | 6,001 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Réduire le pas et voir la pente
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
# 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.