1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
c = 3e8 ### vitesse de la lumière (m/s)
G = 6.67e-11 ### constante gravitationnelle
M = 1.989e30 ### masse du soleil (Kg)
m = 5.972e24 ### masse de la terre (Kg)
def derivee_systeme(S,t):
r, theta, v, w = S
dv = - G*M / r**2 + r*w**2
dw = - 2*v*w/r
return [v,w,dv,dw]
# Discrétisation temporelle
t0 = 0
tmax=365*24*3600 ## 1 an en secondes
npoint = 1000
t = np.linspace(t0, tmax, npoint)
# Conditions initiales
r0= 1.496e11 ## distance terre soleil (en mètres)
theta0 = 0 ## l'angle de la position départ importe peu
omega0 = 1.99e-7 ## vitesse angulaire terrestre (en radian par seconde)
v0 = 0 ## vitesse radiale
syst_CI=np.array([r0,theta0,v0,omega0]) # Vecteur des CI
# Résolution du système différentiel
Sols=odeint(derivee_systeme,syst_CI,t) # Résolution numérique des équations différentielles
# Récupération des solutions
r = Sols[:, 0]
theta = Sols[:, 1]
# Visualisation du réultat
plt.plot(r*np.cos(theta),r*np.sin(theta), '.')
plt.show() |
Partager