Évolution des énergies d’un système en mouvement dans un champ de pesanteur − Partie 2¶

  • Objectif : Représenter, à partir de données expérimentales variées, l’évolution des grandeurs énergétiques d’un système en mouvement dans un champ uniforme à l’aide d’un langage de programmation.
  • Ce second script analyse un fichier csv contenant les coordonnées de la boule de pétanque.
  • Coller le bloc suivant en premier. Il importe les librairies nécessaires aux analyses et définit une fonction.
In [ ]:
# Initialisations diverses
import matplotlib.pyplot as plt
import pandas as pd

# Fonction pratique
def taux_de_variation(abs_courante, abs_suivante, ord_courante, ord_suivante):
    return (ord_suivante - ord_courante)/(abs_suivante - abs_courante)
Le bloc suivant lit et traite le fichier csv « coordonnees.csv »
Ce fichier doit se trouver dans le même dossier que le script.
Ne tentez pas d'ouvrir ce fichier texte avec LibreOffice. Sinon, recommencez.
  • Coller le bloc suivant à la suite du précédent.
In [ ]:
# Lecture du fichier et création des variables

# Nom du fichier à traiter
fichier="coordonnees.csv"
# Lecture
Data = pd.read_csv(fichier, sep=',', header=0)
# Chaque variable se trouve dans un tableau à une dimension
t=Data['Temps']
x=Data['X']
y=Data['Y']
  • Coller le bloc suivant à la suite du précédent.
In [ ]:
# Caractéristiques du système

# Masse du système en kg
m=0.60
# Intensité de la pesanteur en m⋅s-2.
g=9.81
  • Coller et Compléter le bloc suivant pour calculer et tracer la composante horizontale du vecteur vitesse.
  • Renseigner l’étiquette « label » et préciser l’unité.
  • Justifier l’allure de la courbe.
In [ ]:
Vx=[]
for i in range(len(x)-1) :
    Vx.append(** ICI **) # Append ajoute en fin de liste

plt.plot(t[:len(Vx)],Vx,'ro',label='** ICI **')
plt.ylim([0,6]) # plot prend l’initiative de tracer seulement la faible variation de Vx, en modifiant l’échelle. On force ici l'affichage pleine échelle.
plt.legend()
plt.show() 
  • Coller et Compléter le bloc suivant pour calculer et tracer la composante verticale du vecteur vitesse.
  • Renseigner l’étiquette « label » et préciser l’unité.
  • Justifier l’allure de la courbe.
In [ ]:
Vy=[]
for i in range(len(x)-1) :
    Vy.append(** ICI **) # Append ajoute en fin de liste

plt.plot(t[:len(Vy)],Vy,'bo',label='** ICI **')
plt.legend()
plt.show()
  • Coller et Compléter le bloc suivant pour calculer et tracer la valeur du vecteur vitesse.
  • Renseigner l’étiquette « label » et préciser l’unité.
  • Justifier l’allure de la courbe.
In [ ]:
V=[]
for i in range(len(Vx)) :
    V.append(** ICI **) # Append ajoute en fin de liste

plt.plot(t[:len(V)],V,'go',label='** ICI **')
plt.legend()
plt.show()
  • Coller et Compléter le bloc suivant en nommant les différentes énergies qui y sont calculées.
  • Renseigner les étiquettes « label » et préciser l’unité.
  • Justifier l’allure de la courbe.
In [ ]:
E1, E2, E3 = [], [], [] # Listes vides

for i in range(len(V)) :
    E1.append(0.5*m*V[i]*V[i])
    E2.append(m*g*y[i])
    E3.append(E1[i]+E2[i])

#Parametres de la grille
ax = plt.gca()
ax.minorticks_on()
ax.grid(which='major', linestyle='-', linewidth='0.5', color='black')
ax.grid(which='minor', linestyle='-', linewidth='0.5', color='black')

# Tracé des énergies
plt.plot(t[:len(V)],E1,'ro',label='Courbe rouge')
plt.plot(t[:len(V)],E2,'ko',label='Courbe noire')
plt.plot(t[:len(V)],E3,'go',label='Courbe verte')

plt.legend()
plt.show()