Activité
Modéliser les données d’un TP
Consigne
Ouvrez la page des scripts du chapitre pour consulter le code et télécharger les fichiers .py.
Au chapitre 19, Python simulait l’équation différentielle (méthode d’Euler). Ici, l’angle est celui de la capacité expérimentale : modéliser des mesures — superposer un modèle à des points expérimentaux et ajuster son paramètre .
Le script Ch21_temperature.py (dossier scripts/) contient les mesures de l’E.C.E. dans deux listes t_mes et T_mes, construit le modèle du cours, puis trace les deux sur le même graphique — listes et boucles, sans aucune bibliothèque de calcul. Il s’exécute tel quel, à une ligne près (# À COMPLÉTER).
Questions :
- Compléter la ligne du modèle : chaque élément de
T_moddoit valoir à la datetcorrespondante. - Exécuter le script pour
tau = 20,tau = 47puistau = 80(en minutes). Décrire ce que l’on observe dans chaque cas, et conclure sur la valeur de qui modélise les mesures. - Pour que le logarithme porte sur un nombre sans dimension, on note et on étudie . Montrer que la loi du cours implique Quelle courbe trace-t-on pour obtenir une droite, et que vaut sa pente ? Vérifier avec les points et min du tableau, puis en déduire une seconde estimation de . En Python, les écarts de température exprimés en °C ont la même valeur numérique qu’en K : la division par ne change donc pas la formule numérique
math.log(T_0 - T).
Fiche O5 — Python (listes, boucles, append) : tout y est rappelé.
Script élève
# Chapitre 21 -- Exploiter les donnees du TP : modeliser T(t)
# Une eau froide se rechauffe vers la temperature ambiante.
# Completer la ligne signalee, puis executer (EduPython : F5).
import math
import matplotlib.pyplot as plt
# mesures du TP : une eau froide se rechauffe vers l'ambiante
t_mes = [0, 1, 2, 3, 4, 6, 7.25, 10.75, 11.5, 13,
16, 17, 30, 33, 44, 58] # dates (min)
T_mes = [10.7, 10.9, 11.1, 11.3, 11.5, 11.9, 12.1, 12.8, 13.0, 13.2,
13.7, 13.9, 15.4, 15.8, 16.7, 17.6] # temperatures (degC)
T_0 = 20.7 # temperature du thermostat (degC)
T_i = 10.7 # temperature initiale de l'eau (degC)
tau = 20.0 # temps caracteristique (min) -- valeur d'essai, a ajuster
t_mod = []
for k in range(121):
t_mod.append(0.5 * k)
T_mod = []
for t in t_mod:
T_mod.append(0) # À COMPLÉTER : modèle du cours
plt.plot(t_mes, T_mes, "o", label="points mesurés")
plt.plot(t_mod, T_mod, "-", label="modèle du cours")
plt.xlabel("temps (min)")
plt.ylabel("température (°C)")
plt.legend()
plt.show()