Bonjour, je dois résoudre un problème de mécanique grâce à la méthode d'Euler et avec python.
Il s'agit d'une masse m qui subit comme force seulement l'attraction gravitationnelle.
J'ai précédemment trouvé l'équation différentielle du mouvement :
avec r'=r/R, r représentant le distance entre le centre de masse de l'objet et le centre de la Terre et R le rayon de la Terre
et t'=t/Tr, Tr étant la période
en posant x= et dx/dt'=
il faut que je crée une fonction qui a pour arguments(r'0,v'0,alpha,t'f,nb) et qui renvoie les positions du boulet aux dates t'k=k*t'f/nb, en posant v'0=v0/vr avec vr=7911.4, par la méthode d'Euler.
J'ai écrit un programme qui ne fonctionne pas, je ne comprends pas, pourriez vous m'aider s'il vous plat?
voici le programme que j'ai écrit :
def Euler(pr0,pV0,alpha,ptf,nb):
g0=9.81
pr=r/R
pt=t/Tr
r0=pr*R
v0=pV0*vr
C=v0*r0*m.cos(alpha)
print(C)
lpt=[]
position=[]
pos=[]
def y(pr,pt):
x=misc.derivative(pr,pt)
def f(pr,pt):
dx=((((C**2)*(Tr**2)/R)*(1/(pr**3)))-((g0*(Tr**2))/R*(1/(pr**2))))*pt
for k in range(1,nb+1):
pt=k*ptf/nb
lpt.append(pt)
pr=pr+((((C**2)*(Tr**2)/R)*(1/(pr**3)))-((g0*(Tr**2))/R*(1/(pr**2))))*ptf/nb #ou juste nb
theta=pt*r*(m.sqrt(g0/R))
pos.append(pr)
position.append((pr,theta))
print(position,lpt)
Merci.
PS : la première équation écrite est la dérivée seconde de r' par rapport à t'
et la seconde est une équation simplifiée pour avoir une équation du premier ordre.
Bonjour
Ce problème se résout très facilement en utilisant les coordonnées cartésiennes comme j'ai pu le faire dans un cas simple avec un simple tableur sur ce document, paragraphe IV, pages 6 et suivantes.
Ce n'est pas la méthode demandée ici... Je n'ai pas de connaissances particulières en langage Python. Je me contente donc de quelques généralités.
C désigne bien la constante des aires ? Si oui, son expression à la date t = 0 est :
La masse n'intervient pas. Ensuite dans ton programme, une fois obtenue la valeur de r à la date t, la constante des aires te fournit la vitesse angulaire à la même date :
Tu intègres alors par la méthode d'Euler pour obtenir l'angle polaire.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :