🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_b9shlt0bqras06mt_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur IA Généré (Gemini)
Objectif principal Simuler et analyser la stabilité orbitale d’un système à N-corps (Soleil, planètes, astéroïde) via l’intégration numérique de haute précision.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script simule les mouvements d’objets célestes sous l’influence de la gravité. Il utilise la loi de gravitation universelle de Newton pour calculer les trajectoires en 2D, surveille la conservation de l’énergie pour garantir la précision et détecte les risques de collision entre les objets (comme un astéroïde s’approchant de Mars).
📌 Problème résolu
Il permet de répondre à des problématiques de mécanique céleste : « Le système orbital est-il stable sur une période donnée ? » et « Y a-t-il un risque de collision entre deux corps spécifiques suite à une perturbation ? »
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.10+
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Scientifique (Jupyter ou script standard)
📦 Dépendances / Librairies
numpy : Calculs matriciels et vectoriels.
matplotlib : Visualisation statique et animations (FuncAnimation).
scipy : Intégration numérique avancée (solve_ivp avec algorithme DOP853).
dataclasses : Structure de données propre pour les corps célestes.
📥 ENTRÉES (INPUTS)
📂 Objets simulés (Hardcodés dans l’exemple)
Le script utilise une fonction creer_systeme_solaire_perturbe() qui définit :
Soleil : Centre de masse (1.0 M⊙).
Terre : Orbite circulaire à 1 UA.
Mars : Orbite à 1.524 UA.
Astéroïde : Trajectoire excentrique perturbatrice.
📤 SORTIES (OUTPUTS)
📂 Données et Visualisations
Console : Logs des étapes de calcul, distances minimales entre corps et verdict de stabilité.
Graphiques : Une figure 2×2 montrant les trajectoires, la variation d’énergie, une animation et un bloc de texte analytique.
Fichier : simulation_spatiale.gif (Animation des orbites).
🧱 STRUCTURE DU SCRIPT
Plaintext
onizuka_b9shlt0bqras06mt_333.py
│
├── 📌 IMPORTS (numpy, matplotlib, scipy)
├── 📌 CLASSES
│ ├── CorpsCeleste → Data-container (masse, pos, vit)
│ └── SimulationGravitationnelle → Moteur de calcul et d’analyse
├── 📌 FONCTIONS D’APPLICATION
│ ├── creer_systeme_solaire_perturbe()
│ └── analyser_risque_collision()
└── 📌 MAIN (Point d’entrée de la simulation)
🔄 LOGIQUE / ALGORITHME
Initialisation : Définition des vecteurs d’état [x,y,vx,vy] pour chaque corps.
Intégration (Solve_IVP) :
Utilisation de DOP853 (Runge-Kutta d’ordre 8) pour une précision extrême sur le long terme.
Calcul de l’accélération a=∑rij2G⋅Mj à chaque pas de temps.
Analyse Post-Traitement :
Calcul de l’énergie totale (Ecineˊtique+Epotentielle).
Calcul des distances minimales point à point pour la détection de collision.
Rendu : Génération de l’animation et du rapport de stabilité.
🚨 GESTION DES ERREURS
Singularité de distance : Ajout d’une constante 1e-10 dans le calcul de la force pour éviter la division par zéro en cas de superposition parfaite.
Précision : Utilisation de rtol=1e-9 pour stopper la simulation si l’erreur numérique s’accumule trop.
✅ RÈGLES MÉTIER
Stabilité Énergétique : Le système est jugé « Stable » si la variation relative d’énergie est <10−6. Seuil de Collision : Défini par défaut à 0.01 UA (≈1.5 million de km). 🧪 TESTS ATTENDUS Cas nominal : Simulation d'un système stable (Terre-Soleil) → Variation d'énergie quasi nulle. Cas critique : Astéroïde rasant Mars → Détection de collision et log d'alerte. 📝 EXEMPLE D'UTILISATION ▶️ Lancement Bash python onizuka_b9shlt0bqras06mt_333.py 📋 Sortie Console Attendue Plaintext ====================================================================== ANALYSE DU RISQUE DE COLLISION - SYSTÈME MARS-ASTÉROÏDE ====================================================================== Simulation en cours... 20.0 années, pas de 0.001 an Simulation terminée. 20000 pas de temps calculés. ANALYSE DES DISTANCES: ✓ Soleil-Terre: distance minimale = 0.9998 UA ⚠️ COLLISION DÉTECTÉE entre Mars et Asteroide_Perturbateur! Distance minimale: 0.0042 UA (628320 km) ...



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