🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_3ne8o3c6bqmren6q_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur Gemini (Basé sur le code fourni)
Objectif principal Simuler et animer les orbites de corps célestes en utilisant les lois de la gravitation universelle et l’intégration numérique RK5 (DOP853).
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script modélise le mouvement de plusieurs corps célestes (planètes, étoiles) en interaction gravitationnelle. Il calcule leurs trajectoires précises, vérifie la conservation de l’énergie du système et génère une animation interactive en temps réel montrant les orbites et l’évolution des positions.
📌 Problème résolu
Il permet de visualiser des phénomènes physiques complexes (système solaire, systèmes d’étoiles binaires) qui n’ont pas de solution analytique simple pour plus de deux corps (problème des N corps), en garantissant une haute précision numérique.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows, Linux, MacOS)
Mode d’exécution CLI avec rendu graphique (Matplotlib)
📦 Dépendances / Librairies
numpy : Calculs vectoriels et gestion des matrices.
matplotlib : Moteur de rendu graphique et animations.
scipy (solve_ivp) : Intégration numérique de pointe pour les équations différentielles.
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Configuration manuelle : Les masses, positions initiales et vecteurs vitesses sont définis dans les fonctions de création (creer_systeme_solaire, creer_systeme_binaire).
Input utilisateur : Choix du scénario via la console (1-4).
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Graphique d’animation : Fenêtre interactive Matplotlib affichant le mouvement des corps.
Graphique d’analyse : Courbe de conservation de l’énergie (stabilité).
Console : Logs des positions, vitesses et déviation relative de l’énergie.
🧱 STRUCTURE DU SCRIPT
onizuka_simulation.py
├── 📌 IMPORTS (Numpy, Matplotlib, Scipy)
├── 📌 CLASSE Planete (Attributs physiques et calculs d’énergie individuelle)
├── 📌 CLASSE SystemeSolaire (Moteur physique, calcul des accélérations, résolution ODE)
├── 📌 FONCTIONS DE CONFIGURATION (creer_systeme_solaire, creer_systeme_binaire)
├── 📌 MOTEUR D’ANIMATION (animer_systeme)
├── 📌 OUTILS D’ANALYSE (analyser_stabilite)
└── 📌 MAIN (Interface interactive simulation_interactive)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
equations_mouvement t, etat ndarray Calcule les dérivées (vitesse et accélération) pour l’intégrateur.
evoluer duree t_eval Résout les trajectoires sur une période donnée avec DOP853.
calculer_energie_totale Aucun float Calcule la somme des énergies cinétiques et potentielles.
animer_systeme systeme, duree FuncAnimation Génère l’animation visuelle des planètes.
🔄 LOGIQUE / ALGORITHME
Initialisation : Création des objets Planete avec leurs conditions initiales (r0,v0).
Calcul de l’accélération : Utilisation de la loi de Newton :
ai=j=i∑∣rj−ri∣3GMj(rj−ri)
Intégration : solve_ivp calcule l’état futur du système en découpant le temps en intervalles minuscules.
Rendu : Matplotlib met à jour la position des cercles et trace les « queues » de trajectoire à chaque frame.
🚨 GESTION DES ERREURS
Division par zéro : Le script vérifie si la distance r entre deux corps est trop faible (if r > 1e-10) pour éviter les singularités gravitationnelles.
Précision : Utilisation de tolérances strictes (rtol=1e-8) pour éviter la dérive orbitale.
✅ CONTRAINTES & RÈGLES MÉTIER
Unités : Le script utilise des unités normalisées (Masses solaires, UA, Années) ou arbitraires cohérentes.
Conservation : L’énergie totale doit rester stable (déviation < 0.01% attendue). 🧪 TESTS ATTENDUS # Cas de test Entrée Résultat attendu 1 Système Solaire Option 1 Orbites quasi-circulaires et stables autour du Soleil. 2 Stabilité Option 3 Graphique montrant une ligne d'énergie quasi-horizontale. 3 Système Binaire Option 2 Trajectoire chaotique mais physiquement cohérente de la planète.



Avis
Il n’y a pas encore d’avis.