Bonjour à tous,
je cherche à tracer la trajectoire d'un objet de masse quelconque aux abords d'un point de lagrange L4.
Je connais les équations de la trajectoire. Donc mon programme est très simple, une boucle for suffit, avec un pas noté h.
Cependant en lançant mon programme dans la console, il n'y a aucun problème. Ensuite quand j'applique ma fonction avec des données, j'ai deux messages d'erreur: - concernant le module appelé
- et ensuite par une division par zéro que je ne trouve nul part
Voici l'algo et le message d'erreur:
import math
def stabL4 (h,x0,y0,a,M0,M,Vx0,Vy0): #M0 étant la masse la plus élevée
liste_x=[x0]
liste_y=[y0]
G=6.67*10**-11
omega=math.sqrt(G*(M0+M)/a**3)
a1=-0.75*x0-1.299*y0-2*Vy0/omega
A1=-2.598*x0-4.5*y0+3.25*Vx0/omega-1.299*Vy0/omega
a2=1.75*x0+1.299*y0+2*Vy0/omega
A2=(5.19*x0+9*y0-4.5*Vx0/omega+2.5981*Vy0/omega)/math.sqrt(27*M/M0)
w1=omega
w2=0.5*omega*math.sqrt(27*M/M0)
k=M/M0
K=3/4*math.sqrt(3)*(1-k)/(1+k)
A=K*(w1**2+3/4*omega**2)/(K**2*omega**2+4*w1**2)
B=2*w1*(w1**2+3/4*omega**2)/(omega*(K**2*omega**2+4*w1**2))
C=K*(w2**2+3/4*omega**2)/(K**2*omega**2+4*w2**2)
D=2*w2*(w2**2+3/4*omega**2)/(omega*(K**2*omega**2+4*w2**2))
L=1
for L in range (1,(3600*24*365.25)//h):
t=h*L
liste_x.append(a1*math.cos(w1*t)+a2*math.cos(w2*t)+A1*math.sin(w1*t)+A2*math.sin(w2*t))
liste_y.append((B*A1-A*a1)*math.cos(w1*t)-(B*a1+A*A1)*math.sin(w1*t)-(C*a2-D*A2)*math.cos(w2*t)-(C*A2+D*a2)*math.sin(w2*t))
return (liste_x,liste_y)
# a=1.5 * 10^11m pour Terre/Soleil
# G=6.67* 10^-11 SI
#M(Terre)=6*10^24 kg
#M(Soleil)= 2*10^30 kg
stabL4(1,-5*10**8,9.23*10**7,1.5*10**11,2*10**30,6*10**24,2,136)
Pouvez vous me dire ce qui ne va pas ?
merci beaucoup
Bonsoir,
Je ne suis pas compétent en langage Python. Juste quelques remarques.
S'il s'agit, comme tu l'as écrit, de préparer un TIPE, je ne crois pas que chercher juste à imiter le contenu du site de Gilbert Gastebois sur le sujet soit un bon plan. Ce site sera sûrement connu du jury. Il vaut mieux un sujet peu ambitieux mais bien maîtrisé qu'un sujet mal maîtrisé sur le plan théorique.
Tu pourrais commencer par programmer des courbes de niveau, c'est à dire des courbes de même potentiel. Voici l'exemple du système soleil -Jupiter où le niveau U = 0 est arbitrairement fixé aux points L4 et L5 (croix rouges) les centres du soleil et de Jupiter correspondent aux croix vertes. Le potentiel décroit à partir de ces points dans toutes les directions (positions d'équilibre instable) mais pas aussi rapidement dans toutes les directions, d'où la forme allongée des équipotentielles au voisinage des points L4 et L5. Le second schéma est un "zoom" du premier au voisinage de L4. Il y aurait beaucoup à dire sur les allures de ces équipotentielles. Pourrais-tu, par exemple, en déduire des indications sur la direction, le sens et la norme de la résultante (forces de gravitation + force d'inertie) ?
Pour la trajectoire autour de L4, au lieu de chercher seulement à tracer les courbes dont les équations sont fournies par Gilbert Gastebois, tu pourrais écrire les équations différentielles du mouvement puis chercher à les intégrer numériquement avec un moyen informatique.Les forces sont très peu intenses, le mouvement est toujours relativement lent. Voici un exemple étudié sur une durée de 300ans. Les trajectoires sont extrêmement variables selon les conditions initiales mais l'objet ne s'éloigne jamais définitivement du point L4 même s'il peut, à certaines dates, en être très éloigné. C'est pour cette raison que L4 et L5 sont parfois qualifiés, de façon à mon avis un peu abusive, de positions stables.
Bonjour
Je comprends votre point de vu... Je ne compte pas faire un copier coller bien évidemment mais je comptais juste vérifier mes si tout marchait comme je le voulais.
Mais en tout cas merci, je compte etudier vos pistes.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :