Bonjour,
J'utilise la version 3.3 64 bits de Python sous windows 7, module mis en jeu : [SCIPY]
J'ai cherché à programmer les équations du mouvement d'un corps à partir d'un potentiel de la forme -G*M/r, et donc à partir d'un système d'équations différentielles du second ordre qui met en jeu une égalité entre accélération et -gradient du potentiel.
Pour ce faire, j'ai chercher à résoudre ce système avec le module scipy.integrate.ode et scipy.integrate.odeint ( j'ai utilisé les deux séparément pour les comparer).
J'obtiens bien les résultats qui me conviennent, seulement le temps de calcul pour la résolution du système par ode et odeint est trop long.
J'ai réussi à le diminuer en diminuant le pas de temps et surtout en diminuant les exigences sur la précision du calcul avec ode(atol= , rtol= ). Pour se faire une idée, je suis passé d'un temps de 0.6 sec à 60 ms (pour une résolution du système) en faisant cela. Mais je souhaiterais que ce soit encore moins long, il faudrait que je gagne un bon facteur 10, car je dois exécuter ce calcul un grand nombre de fois.
Je sais qu'il y a d'autres options dans ode et odeint mais je ne sais pas bien les utiliser, je cherche donc à savoir si il y en a qui m'aideraient à gagner en vitesse de calcul, ou même si vous avez d'autres astuces pour gagner en vitesse, ça m'avancerait bien.
Merci par avance pour votre aide
Partager