0/5 (6 avis)
Vue 6 321 fois - Téléchargée 342 fois
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
1 déc. 2005 à 00:33
5 déc. 2002 à 17:44
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 !!
5 déc. 2002 à 09:13
Gravity.Net : l'écran de veille chaotique en VB.Net (Gravity2.scr) :
www.vbfrance.com/article.aspx?Val=5646
5 déc. 2002 à 07:26
4 déc. 2002 à 22:16
nix va lui retirer 2m1 normalement .
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.