Act5.2 - Rétrogration

  • Copier le programme dans le menu ci-dessous.

  • Coller le programme de Edupython.

  • Modifier la ligne 4 pour effectuer le suivi des positions de Mars et de la Terre dans le référentiel héliocentrique pendant 3 années terrestres,

  • Compléter le programme, lignes 14 à 22, avec les données obtenues au document 3.

  • Exécuter le programme.

Programme python 🐍
🐍 Script Python
import matplotlib.pyplot as plt
import math
Delta_t = 10 #la position des planètes est enregistrée tous les 10 jours
Suivi = #le suivi sera effectué pendant cette durée exprimée en année
i = 0
#toutes les distances sont exprimées en mètre

######################################################################################
###############          A COMPLETER                     #############################
######################################################################################

#pour la Terre

a_3 =  # demi grand axe
e_3 =      #excentricité sans unité
T_3 =     #période de révolution en jours terrestres

#pour Mars

a_4 = # demi grand axe
e_4 = #excentricité sans unité
T_4 = #période de révolution en jours terrestres

#####################################################################################
#####################################################################################

#les variables de position sont définies comme des listes
#dans le référentiel héliocentrique
X_T_helio = []
Y_T_helio = []
X_M_helio = []
Y_M_helio = []
#dans le référentiel géocentrique
X_M_geo = []
Y_M_geo = []
X_S_geo = []
Y_S_geo = []

n_3 = math.floor(T_3/Delta_t)
while i <= Suivi*n_3:
    #positions successives de la Terre et de Mars dans le référentiel héliocentrique
    x_t_i = -a_3*e_3+a_3*math.cos(2*math.pi*Delta_t*i/T_3)
    y_t_i = a_3*math.sqrt(1-e_3*e_3)*math.sin(2*math.pi*Delta_t*i/T_3)
    x_m_i = -a_4*e_4+a_4*math.cos(2*math.pi*Delta_t*i/T_4+math.pi/4)
    y_m_i = a_4*math.sqrt(1-e_4*e_4)*math.sin(2*math.pi*Delta_t*i/T_4+math.pi/4)
    #définir les coordonnées de Mars dans le référentiel géocentrique
    xm=x_m_i - x_t_i
    ym=y_m_i - y_t_i

    xs=x_t_i
    ys=y_t_i
    #ajouter les positions calculées aux listes qui les contiennent toutes
    X_T_helio.append(x_t_i)
    Y_T_helio.append(y_t_i)
    X_M_helio.append(x_m_i)
    Y_M_helio.append(y_m_i)
    X_M_geo.append(xm)
    Y_M_geo.append(ym)
    X_S_geo.append(xs)
    Y_S_geo.append(ys)

    i += 1


#Tracés des positions de Mars et du Soleil dans le référentiel géocentrique
plt.annotate('Terre', xy=(0,0))
for j in range(Suivi*n_3):
    plt.title("Mouvements de Mars et du Soleil dans le référentiel géocentrique")
    plt.xlim(-5e11, 5e11)
    plt.ylim(-5e11, 5e11)
    plt.scatter(X_M_geo[j], Y_M_geo[j],s=5, c='red', label="Mars")
    plt.scatter(X_S_geo[j], Y_S_geo[j],s=5, c='yellow', label="Soleil")
    plt.scatter(0, 0,s=5, c="blue",label='Terre')
    plt.pause(0.05)
    plt.grid(True)
    plt.axis('equal')
plt.annotate('    Mars', xy=(X_M_geo[0], Y_M_geo[0]))

plt.annotate('    Soleil', xy=(X_S_geo[0], Y_S_geo[0]))
plt.show()
plt.close()