Physique-chimie · 1re · Enseignement de spécialité · Fiche n°5

Deviner une force
qu'on ne voit pas.

Une bille tombe dans un liquide visqueux et finit par atteindre une vitesse limite : preuve que les forces qui s'exercent sur elle se compensent. En étudiant comment son accélération varie avec sa vitesse, tu vas remonter jusqu'à une expression mathématique plausible pour la force de frottement — invisible, mais pas indétectable.

vitesse_limite.py — aperçut = 0.00 s

Objectif de la fiche : étudier la chute d'une bille dans un liquide visqueux pour proposer une expression modélisant la force de frottement exercée par le fluide sur la bille.

Cette fiche est autonome : tu n'as besoin d'aucun autre document, les valeurs de vitesse (déjà extraites d'une chronophotographie) sont recopiées directement dans le script. Chaque étape contient un script incomplet à compléter, puis à copier-coller dans Thonny (ou dans la console Basthon tout en bas de la page si tu n'as pas Thonny sous la main).

00

La chute dans le liquide visqueux

À savoir
  • Une bille est lâchée dans un liquide visqueux. Une chronophotographie de sa chute a déjà été exploitée (comme dans les toutes premières fiches de cette série) pour en extraire, à chaque position, la vitesse de la bille.
  • Ces 18 valeurs de vitesse sont directement recopiées ci-dessous, avec les instants associés (espacés de 20 unités de temps).
  • Le script ci-dessous est déjà complet : copie-le tel quel dans Thonny (ou dans Basthon) pour commencer.
etape0_donnees.py
import numpy as np
import matplotlib.pyplot as plt

t = 20 * np.arange(18)
v = np.array([0, 14, 23, 29, 34, 37, 39, 40, 41, 42, 43, 43, 43, 43, 43, 43, 43, 43])
01

Tracer la vitesse au cours du temps

Consigne
  • Trace v en fonction de t, en points bleus ('bo').
  • Ajoute une grille, les étiquettes "temps" / "vitesse", et le titre "Vitesse de la bille en fonction du temps".
etape1_vitesse.py
# TODO : trace v en fonction de t, points bleus
plt.plot(_, _, '__')
plt.grid()
plt.xlabel("______")
plt.ylabel("_______")
plt.title("________________________________________")
plt.show()
Résultat attendu

Une courbe qui monte rapidement au début, puis dont la pente s'adoucit de plus en plus, jusqu'à devenir totalement plate à partir d'environ t = 200 : la vitesse se stabilise autour de 43.

+

Analyse qualitative

À observer
  • Le plateau observé sur le graphe correspond à une vitesse limite : la situation dans laquelle toutes les forces qui s'exercent sur la bille se compensent exactement, si bien que son accélération s'annule.
  • La deuxième loi de Newton s'écrit ici : m · dv/dt = m·g − mf·g − Ff, où m·g est le poids, mf·g la poussée d'Archimède (le fluide déplacé), et Ff la force de frottement exercée par le fluide.
  • Le poids et la poussée d'Archimède restent constants pendant toute la chute. Si l'accélération diminue au cours du temps (la pente de la courbe v(t) s'adoucit), c'est donc forcément la force de frottement qui varie — et elle ne peut varier que si elle dépend elle-même de la vitesse, puisque c'est la seule autre grandeur qui change.
  • Comme l'accélération diminue à mesure que la vitesse augmente, on peut en déduire que la norme de la force de frottement est une fonction croissante de la vitesse : plus la bille va vite, plus le fluide la freine.
02

Calculer l'accélération

Consigne
  • Comme dans les fiches précédentes, construis la liste al des accélérations successives par différence centrée : a = (v[i+2]-v[i]) / (t[i+2]-t[i]), pour i parcourant m = np.arange(len(t)-2).
etape2_acceleration.py
al = []
m = np.arange(len(t) - _)
for i in m :
    a = (v[i+_] - v[_]) / (t[i+_] - t[_])
    al.append(_)
Résultat attendu

Aucun affichage, mais al contient désormais 16 valeurs, décroissantes puis proches de 0 vers la fin — cohérent avec la vitesse limite observée à l'étape 1.

03

Modéliser la force de frottement

Consigne
  • Pour tester une loi de type ‖Ff(v)‖ = k·v, il faut tracer l'accélération en fonction de la vitesse (et non plus du temps). Une droite de pente négative confirmerait cette hypothèse ; une branche de parabole orienterait plutôt vers ‖Ff(v)‖ = k·v².
  • Un souci se pose : al contient 16 valeurs, mais v en contient 18. Il faut donc redimensionner v pour que les deux listes se correspondent : v0 = v[1:-1] retire le premier et le dernier terme de v, exactement les deux valeurs qui n'ont pas d'accélération associée avec la méthode des différences centrées.
  • Modélise al en fonction de v0 par une droite avec np.polyfit(v0, al, 1) (degré 1, contrairement au degré 0 utilisé dans d'autres fiches), affiche le résultat, puis superpose le modèle aux points expérimentaux.
etape3_modelisation.py
# TODO : redimensionne v pour qu'elle corresponde à al
v0 = v[_:__]

# TODO : modélise l'accélération par une droite en fonction de v0
mod = np.polyfit(__, __, _)
model = mod[_]*v0 + mod[_]
print(mod)

plt.plot(v0, al, '__')
plt.plot(v0, model, '__')
plt.grid()
plt.xlabel("_______")
plt.ylabel("____________")
plt.title("___________________________")
plt.show()
Indice

np.polyfit(v0, al, 1) renvoie deux coefficients : mod[0], le coefficient directeur de la droite (sa pente), et mod[1], son ordonnée à l'origine — exactement comme dans l'équation y = a·x + b vue en mathématiques.

Résultat attendu

Un nuage de points qui s'aligne raisonnablement bien sur une droite de pente négative : l'accélération diminue linéairement quand la vitesse augmente. C'est la signature d'une force de frottement proportionnelle à la vitesse.

+

Conclusion

À retenir
  • La modélisation affine (une droite) de l'accélération en fonction de la vitesse est cohérente avec les données : cela permet de proposer une force de frottement linéaire avec la vitesse, du type Ff = k·v — la forme caractéristique de la loi de Stokes, valable pour une petite bille sphérique se déplaçant lentement dans un fluide visqueux.
  • Si l'on connaît par ailleurs la masse et le rayon de la bille, la loi de Stokes permettrait d'aller plus loin encore : en déduire une estimation de la viscosité du liquide dans lequel elle est tombée.

Pense-bête — modéliser une force par sa pente

v[1:-1]retire le 1er et le dernier élément
np.polyfit(x,y,1)modélise par une droite y = a·x + b
mod[0], mod[1]pente puis ordonnée à l'origine
pente négative en vindice d'une force en k·v (Stokes)
branche de paraboleindice d'une force en k·v²
vitesse limiteaccélération nulle, forces compensées

Pas de Thonny sous la main ? Utilise Basthon

Ouvrir dans un nouvel onglet ↗
Basthon est une console Python qui tourne directement dans le navigateur, sans rien installer. Colle ici (avec Ctrl+V ou Cmd+V) le code copié avec les boutons « Copier le code » ci-dessus, puis appuie sur Entrée pour l'exécuter.