Vous êtes sur la page 1sur 9

2NDE AD PYTHON CHAP.

3 (9)

A.D. SUR PYTHON


EXERCICE 1 :
Le code source Python suivant permet de représenter les positions successives d’un système modélisé par un point
lors de son mouvement.

1 import numpy as np
2 from matplotlib import pyplot as plt
3
4 t = np.linspace(0.0,2.8,15) # Domaines des dates (en s)
5 x = 2*t # Domaines des abscisses (en m)
6 y = 0*t # Domaines des ordonnées (en m)
7
8 # figure représentant la trajectoire y=f(x)
9 plt.figure(‘’Positions successives d’un point en mouvement’’)
10 plt.xlabel(‘x(en m)’)
11 plt.ylabel(‘y(en m)’)
12 plt.plot(x,y,‘ro’,ms=8)
13 plt.show()

Travail à effectuer
1) Déterminer le nombre de positions successives du point représentées et l’intervalle de temps t les
séparant.
………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………
2) Caractériser la trajectoire.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
3) Que représente la ligne 8 ? Est-elle nécessaire ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
4) Quel caractère impose la forme des points dans le graphique dans la ligne 12?
Modifier ce caractère (- ; * ; + ), observer et noter les changements dans le graphique.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
5) Quel caractère impose la couleur des points dans le graphique dans la ligne 12?
Modifier ce caractère par (m, g, b, c …), observer et noter les changements dans le graphique.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………….………………………………………
1
2NDE AD PYTHON CHAP.3 (9)

6) Dans la ligne 12, si on modifie « ms=8 » par « ms=2 ou ms=14 », quel changement se produit dans le
graphique ? Noter vos observations.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………….

EXERCICE 2 : p.165 n°30


Le programme ci-dessous permet de représenter le vecteur en différents points d’une trajectoire. Les positions du
système, ainsi que les instants t ont été extraits d’un pointage.

1 import matplotlib.pyplot as plt


2 x=[0.0257,0.2877,0.5549,0.8118,1.0842,1.3256,1.6031]
3 y=[1.0944,1.4187,1.5980,1.6133,1.4849,1.2177,0.7810]
4 t=[0,0.125,0.25,0.375,0.5,0.625,0.75]
5 #calcul des coordonnées Vx et Vy
6 Vx=[]
7 for i in range(len(x)-1) :
8 Vxi=[(x[i+1]-x[i])/(t[i+1]-t[i])]
9 Vx=Vx+Vxi
10 Vy=[]
11 for i in range(len(y)-1) :
12 Vyi=[(y[i+1]-y[i])/(t[i+1]-t[i])]
13 Vy=Vy+Vyi
14 #préparation de la zone de graphique
15 plt.grid()
16 plt.title('Représentation du vecteur vitesse')
17 plt.xlabel('$x$ (m)')
18 plt.ylabel('$y$ (m)')
19 # tracé des points de la trajectoire
20 plt.plot(x,y,'ro')
21 'tracé des vecteurs vitesse avec un facteur déchelle'
22 for i in range(len(t)-1):
23 plt.arrow(x[i],y[i],Vx[i]/10,Vy[i]/10,head_width=0.03, head_length=0.03,color='b')
24 plt.text(x[i]+0.05,y[i],r'$\vec{v}$'+str(i+1),color='b')
25 #légende
26 plt.text(0.1,0.8,'Echelle 1 cm$\leftrightarrow$ 10cm/s',color='b')
27 plt.show()
1) Repérer dans le programme les lignes correspondant aux données extraites du pointage.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
2) Repérer de même la (ou les) ligne(s) permettant de représenter les vecteurs vitesse.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………

2
2NDE AD PYTHON CHAP.3 (9)

3) Extraire de cette (ou ces) ligne(s) le facteur de représentation des vecteurs vitesse.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
4) Proposer une modification du programme pour avoir un facteur de représentation des vecteurs vitesse de 1/15.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………

EXERCICE 3 :
L’objectif de l’exercice est d’utiliser le langage Python pour représenter la trajectoire d’un projectile et la comparer à
un modèle théorique.

Doc.1 Doc.2 Résultat du pointage des positions successives occupées par le


Chronophotographie ballon.
d’un lancer de ballon Position 0,00 0,74 1,47 2,23 2,96 3,69 4,42 5,15
x en m
Position 0,00 0,84 1,51 2,01 2,33 2,48 2,45 2,24
y en m
Il est possible de réaliser la vidéo du mouvement d’un projectile de son
choix. Il faut alors exporter les résultats de pointage dans un tableau et
modifier les lignes 4 et 5 du code du doc.3.

Doc.3 Code Python traçant la variation de la température sur une journée


1 import matplotlib.pyplot as plt
2 import numpy as np
3 # Données expérimentales
4 x = [0, 4, 8, 12, 16, 20, 24] # Liste des heures de la journée
5 y = [18.2, 15.3, 13.9, 20.3, 24.6, 25.5, 24.2] # Liste des températures en °C
6 # Affichage
7 plt.plot(x, y, ‘go-‘) # g : green, o : forme des points, - : relié par une ligne continue
8 plt.xlabel(‘’ Heure de la journée (h)’’)
9 plt.ylabel(‘’Température (°C)’’)
10 plt.title(‘’Evolution de la température sur une journée’’)
11 plt.show()

Doc.4 Code permettant d’ajouter le tracé du modèle théorique d’un lancer


12 # Modèle théorique
13 v0 = 40 #vitesse initiale (m/s)
14 ang = 52 # Angle initial du lancer par rapport à l’horizontale (°)
15 x2 = np.linspace(0, 5, 100)
16 y2 = np.tan(ang*3.14/180)*x2 – 9.81/(2*v0*np.cos(ang*3.14/180))*x2**2
17 plt.plot(x2, y2, ‘r-’)

3
2NDE AD PYTHON CHAP.3 (9)

Travail à effectuer
1) Recopier le script du doc.3 dans un EDI tel que EduPython.
2) a- Comment sont saisis les nombres décimaux en Python : à la française avec une virgule ou à l’anglo-
saxonne avec un point ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
b- Préciser quelle instruction du script du doc.3 réalise le tracer de la liste y en fonction de la liste x ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
c- Expliquer à quoi servent les instructions des lignes 9, 10 et 11 du script du doc.3 ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
3) Adapter le script du doc.3, afin de tracer la trajectoire du ballon pointée dans le doc.2.
4) a- On souhaite comparer la trajectoire réelle du ballon à une trajectoire théorique (parabole). Ajouter les
instructions du doc.4 juste avant la dernière instruction (plt.show()) du doc.3.
b- De quelle couleur la trajectoire théorique apparaît-elle sur le graphique ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
c- Adapter la valeur de la vitesse initiale notée v0 afin de faire correspondre aux mieux le modèle théorique
avec les points expérimentaux.
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
5) Qu’a permis de déterminer la comparaison du modèle théorique avec les points expérimentaux ?
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………

4
2NDE AD PYTHON CHAP.3 (9)

CORRECTION DE L’AD
I-
import numpy as np
from matplotlib import pyplot as plt
t = np.linspace(0.0,2.8,15) # Domaines des dates (en s)
x = 2*t # Domaines des abscisses (en m)
y = 0*t # Domaines des ordonnées (en m)
# figure représentant la trajectoire y=f(x)
plt.figure('positions successives d\'un point en mouvement')
plt.xlabel('x(en m)')
plt.ylabel('y(en m)')
plt.plot(x,y,'ro',ms=2)
plt.show()

5
2NDE AD PYTHON CHAP.3 (9)

II-
import matplotlib.pyplot as plt
x=[0.0257,0.2877,0.5549,0.8118,1.0842,1.3256,1.6031]
y=[1.0944,1.4187,1.5980,1.6133,1.4849,1.2177,0.7810]
t=[0,0.125,0.25,0.375,0.5,0.625,0.75]
#calcul des coordonnées Vx et Vy
Vx=[]
for i in range(len(x)-1) :
Vxi=[(x[i+1]-x[i-1])/(t[i+1]-t[i-1])]
Vx=Vx+Vxi
Vy=[]
for i in range(len(y)-1) :
Vyi=[(y[i+1]-y[i-1])/(t[i+1]-t[i-1])]
Vy=Vy+Vyi
#préparation de la zone de graphique
plt.grid()
plt.title('Représentation du vecteur vitesse')
plt.xlabel('$x$ (m)')
plt.ylabel('$y$ (m)')
# tracé des points de la trajectoire
plt.plot(x,y,'ro')
'tracé des vecteurs vitesse avec un facteur d’échelle'
for i in range(len(t)-1):
plt.arrow(x[i],y[i],Vx[i]/10,Vy[i]/10,head_width=0.03, head_length=0.03,color='b')
plt.text(x[i]+0.05,y[i],r'$\vec{v}$'+str(i+1),color='b')
#légende
plt.text(0.1,0.8,'Echelle 1 cm$\leftrightarrow$ 10cm/s',color='b')
plt.show()

6
2NDE AD PYTHON CHAP.3 (9)

III- Partie1
import matplotlib.pyplot as plt
import numpy as np
# Données expérimentales
x = [0, 4, 8, 12, 16, 20, 24] # Liste des heures de la journée
y = [18.2, 15.3, 13.9, 20.3, 24.6, 25.5, 24.2] # Liste des températures en °C
# Affichage
plt.plot(x, y, 'go-') # g : green, o: forme des points, - : relié par une ligne continue
plt.xlabel('Heure de la journée (h)')
plt.ylabel('Température (°C)')
plt.title('Evolution de la température sur une journée')
plt.show()

7
2NDE AD PYTHON CHAP.3 (9)

Partie 2
import matplotlib.pyplot as plt
import numpy as np
# Données expérimentales
x = [0,0.74,1.47,2.23,2.96,3.69,4.42,5.15] # Liste des positions x en m
y = [0, 0.84,1.51,2.01,2.33,2.48,2.45,2.24] # Liste des positions y en m
# Affichage
plt.plot(x, y, 'go-') # g : green, o : forme des points, - : relié par une ligne continue
plt.xlabel(' positions x (m)')
plt.ylabel('position y (°C)')
plt.title('Evolution de la trajectoire du ballon')
# Modèle théorique
v0 = 40 #vitesse initiale (m/s)
ang = 52 # Angle initial du lancer par rapport à l’horizontale (°)
8
2NDE AD PYTHON CHAP.3 (9)

x2 = np.linspace(0, 5, 100)
y2 = np.tan(ang*3.14/180)*x2 - 9.81/(2*v0*np.cos(ang*3.14/180))*x2**2
plt.plot(x2, y2, 'r-')
plt.show()

Vous aimerez peut-être aussi