Bonjour bonjour, je suis étudiant, depuis le début de ce semestre (environ 1 mois) nous avons appris les bases du F90, et nous avons un sujet à rendre pour dans 3 semaines.

Je voulais savoir si vous auriez la gentillesse de m'aider à le faire ?
Je dis bien aider ... et non macher le boulot.

Je vais poster question par question ce que l'on doit faire :

1) Dans un premier temps, on se propose d'écrire un SOUS-PROGRAMME GENERAL permettant de calculer un pas RK4 qui détermine la position des N corps au temps t+h a partir de la donnée position et de la vitesse au temps t en transformant le système d'équations différentielles d'ordre 2 en un système d'équations d'ordre 1.
Pour ce faire, on suppose avoir déjà écrit un sous-programme FORCE(Fx, Fy, x, y, Vx, Vy, m, N, t) qui détermine la force totale agissant sur chaque corps et qui admet comme arguments :
Fx, Fy : tableaux de dim N qui contient les composantes x et y de la force
x,y : idem avec x et y de la position des corps
Vx, Vy : idem avec x et y de la vitesse des corps
m : tableaux de dim N qui contient la masse des corps
N : nbe de corps
t : le tps

Voilà la question : Le sous-programme RK4( x, y, Vx, Vy, m, N, t, h) devra être écrit de telle sorte que les tableaux x, y Vx et Vy contiennent les valeurs à l'instant t à l'entrée et qu'il contienne les valeurs t+h à la sortie.(variable t à la sortie valant elle t+h).


Concrètement, je pense savoir écrire le RK4 (du moins je l'avais fait pour un TD en cours, on avait vu dans un autre TD comment faire un tableau ...
Youhou ! Donc normalement, je devrais être apte à le faire tout seul comme un grand.. M'enfin, j'y arrive pas ..

Voila comment j'avais écrit mon Runge Kutta 4 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
   k1 = f(theta, m, d, l, q, qprime, g)*h/(2.0d0)
   beta = (thetaprime + k1/(2.0d0))*h/(2.0d0)
   k2 = f(theta + beta, m, d,  l, q, qprime, g)*h/(2.0d0)
   k3 = f(theta  + beta, m, d, l, q, qprime, g)*h/(2.0d0)
   delta = h*(thetaprime + k3)
   k4 = f(theta + delta, m, d, l, q, qprime, g)*h/(2.0d0)
 
   theta = theta + h*(thetaprime + (k1 + k2 + k3)/(3.0d0))
   thetaprime = thetaprime + (k1 + 2*k2 + 2*k3 + k4)/(3.0d0)
 
   t = t + h
Cependant, je ne vois pas trop comment ça fonctionnera dans le cadre de mon énoncé ..
Et encore moins (c'est surtout la que j'ai besoin d'aide) comment faire sortir les données sous forme de tableau ...

Cordialement,