Physique: problème de gravité

0/5 (6 avis)

Vue 6 321 fois - Téléchargée 342 fois

Description

prenez deux corps inertes et attendez que la gravitation les fasse se fracasser: vous risquez peut-être d'attendre longtemps... ou peut-être pas ! gravité.exe va répondre à cette question qui vous fait cauchemarder: si la lune s'arrêtait de tourner, combien de temps mettrait-elle à venir détruire notre civilisation? Faites vos prières car c'est une question de quelques jours!

Source / Exemple :


Dim rp, rg, g, gmp, d, mp, mg, gamma, x, xp, xpp, gdk1, gdk2, k1, k2, k3, k4, beta1, beta2 As Double
Dim xchoc, tchoc, t, delta, delta2 As Double

Private Sub Aide_Click()
MsgBox "    Bienvenue sur mon deuxième programme. il permet d'estimer le temps que mettent deux objets sphériques pour rentrer en contact sous le seul effet de la gravité ! ", vbOKOnly
MsgBox " Conseil : utilisez la méthode d'Euler pour obtenir un ordre de grandeur du résultat et adapter delta. Utilisez ensuite la méthode de Runge-Kutta-nystrom", vbOKOnly
MsgBox " Attention ! ces méthodes sont des approximations, SURTOUT LA METHODE D'EULER ! n'hésitez donc pas a mettre un delta très grand (1000 secondes)", vbOKOnly
MsgBox " Petit exercice : si la lune s'arrêtait de tourner et n'était plus soumise qu'à l'attraction de la Terre, combien de temps mettrait-elle pour s'écraser sur nous, pauvres terriens ? suggéestions, questions, réponses: zegratman@caramail.com !", vbOKOnly
End Sub

Private Sub Command1_Click()

mp = Text1.Text
mg = Text2.Text
rp = Text3.Text
rg = Text4.Text
d = Text5.Text
delta = Text6.Text

If Text1.Text = "" Then GoTo break
If Text2.Text = "" Then GoTo break
If Text3.Text = "" Then GoTo break
If Text4.Text = "" Then GoTo break
If Text5.Text = "" Then GoTo break
If Text6.Text = "" Then GoTo break

g = 6.67259E-11
x = 0
xp = 0
t = 0
gmp = g * mp
delta2 = delta / 2
gamma = 1 + mp / mg
Text7.Text = gamma
xchoc = (d - rp - rg) / gamma
Text8.Text = xchoc

If Option1.Value = True Then

Do While x <= xchoc
xpp = g * mg / ((d - gamma * x) * (d - gamma * x))
x = x + xp * delta + xpp * ((t + delta) * (t + delta) - t * t) / 2
xp = xp + delta * xpp
t = t + delta
Loop

Else

Do While x <= xchoc
xpp = g * mg / ((d - gamma * x) * (d - gamma * x))

k1 = delta * xpp
beta1 = delta * (xp + k1 / 2)
k2 = delta * g * mg / ((d - gamma * (x + beta1)) * (d - gamma * (x + beta1)))
k3 = k2
beta2 = delta * (xp + k3)
k4 = delta * g * mg / ((d - gamma * (x + beta2)) * (d - gamma * (x + beta2)))

gdk1 = (k1 + k2 + k3) / 3
gdk2 = (k1 + 2 * k2 + 2 * k3 + k4) / 3

x = x + delta * (xp + gdk1)
xp = xp + gdk2

t = t + delta
Loop

End If

tchoc = t - delta
MsgBox "fini !!!", vbOKOnly
Text9.Text = tchoc
Text10.Text = xp

break:
End Sub

Private Sub Form_Load()
Option1.Value = True
Text10.Enabled = False
End Sub

Private Sub Option1_Click()
Option2.Value = False
End Sub

Private Sub Option2_Click()
Option1.Value = False
End Sub

Conclusion :


Et bien je remercie mon professeur d'analyse nuérique, M. Baylaucq (UPPA), sans qui la méthode de Runge-Kutta-Nystrom serait pour moi un mystère!
e-mail:zegratman@caramail.com

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_luchof
Messages postés
1
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
1 décembre 2005

1 déc. 2005 à 00:33
agentes pedagogicos en VB
cs_joker
Messages postés
49
Date d'inscription
vendredi 11 janvier 2002
Statut
Membre
Dernière intervention
20 juillet 2004

5 déc. 2002 à 17:44
Patrice99 >>
Méthode de Nystrom = résolution des équations intégrales
Méthode de Runge-Kutta (à l'ordre 4) = Méthode numérique de prédiction/correction pour les équations différentielles, d'où on résout les équations du mouvement des corps célestes.
Ce sont des méthodes utilisées en mécanique (corps céleste ou pas), comme pour calculer le balancement d'un pendule en fonction du point de rotation et du frottement de l'air ... par exemple http://ccp14.sims.nrc.ca/ccp/web-mirrors/j-j-rousseau/enseignements/physique/02/meca/pendcomp.html

A par ca, faut mettre les sources, sinon faut pas mettre ici !!
cs_Patrice99
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

5 déc. 2002 à 09:13
En tout cas, ça m'étonnerai bcp que Runge-Kutta-Nystrom ait qqch à voir avec une simulation de gravité. Voir aussi (avec code src) :
Gravity.Net : l'écran de veille chaotique en VB.Net (Gravity2.scr) :
www.vbfrance.com/article.aspx?Val=5646
DragonDracGrrr
Messages postés
31
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 décembre 2004

5 déc. 2002 à 07:26
C'est pas un virus mais j'y comprends rien !
cs_blabla
Messages postés
112
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
13 mars 2004

4 déc. 2002 à 22:16
jpensai ke c t 1 site ou on deposai des sources nan ? ptdr !
nix va lui retirer 2m1 normalement .
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.