🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_5uadtow8fxn6gbqf_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur IA Généré (Gemini)
Objectif principal Simuler et animer graphiquement les orbites du système solaire interne (Soleil, Terre, Mars) en utilisant les lois de la gravitation universelle.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script calcule les interactions gravitationnelles entre plusieurs corps célestes en temps réel. Il utilise la méthode d’intégration numérique d’Euler pour mettre à jour les positions et vitesses, puis génère une animation fluide montrant le mouvement orbital avec des tracés de trajectoires (traînées).
📌 Problème résolu
Il permet de visualiser de manière pédagogique et dynamique les trajectoires elliptiques des planètes et l’influence de la masse du Soleil sur le système solaire interne, sans nécessiter de logiciel de simulation complexe.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Interface Graphique (Matplotlib)
📦 Dépendances / Librairies
numpy : Calcul vectoriel et gestion des matrices.
matplotlib : Moteur de rendu graphique et module animation.
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Le script ne prend pas de fichiers externes ; les données sont hard-codées dans la section configuration :
G (Constante gravitationnelle) : 6.67430×10−11 m3kg−1s−2
Positions initiales : Coordonnées cartésiennes [x,y] en Unités Astronomiques (AU).
Vitesses initiales : Vecteurs [vx,vy] en m/s.
🧱 STRUCTURE DU SCRIPT
onizuka_simulation.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CONSTANTES / CONFIG (G, AU, DAY)
├── 📌 CLASSE Body (Stocke nom, masse, position, vitesse, couleur)
├── 📌 FONCTIONS
│ ├── update_positions() → Calcul de la physique (N-Corps)
│ └── animate() → Mise à jour des frames du graphique
└── 📌 MAIN (Initialisation et lancement de FuncAnimation)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
update_positions(bodies, dt) list[Body], float None Applique la loi de Newton pour modifier pos et vel.
animate(i) int list Calcule 2 jours de simulation et met à jour les objets graphiques.
🔄 LOGIQUE / ALGORITHME
Initialisation : Création des objets Body avec masses et distances réelles.
Boucle de Calcul (Physique) :
Pour chaque corps A, calculer la force exercée par tous les autres corps B.
F=Gr2mAmB
Calculer l’accélération : a=F/m.
Mettre à jour la vitesse (v=v+a⋅dt) puis la position (p=p+v⋅dt).
Rendu Graphique :
Affichage des points (planètes).
Affichage des 50 derniers points de trajectoire pour créer un effet de « traînée ».
🚨 GESTION DES ERREURS
Division par zéro : Non gérée explicitement (si deux corps sont à la même position exacte, le script plantera sur le calcul de force_mag).
Dépassement mémoire : La liste b.path grandit indéfiniment à chaque itération. Pour une simulation très longue, cela pourrait saturer la RAM.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu
1 Stabilité orbitale dt = 1 jour La Terre doit boucler son orbite en ~365 jours.
2 Influence du pas dt = 100 jours L’imprécision d’Euler devrait faire « s’envoler » les planètes.
3 Visualisation Fenêtre Matplotlib Fond noir, 3 corps distincts, légendes présentes.
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_5uadtow8fxn6gbqf_333.py
📋 Exemple de sortie attendue
Une fenêtre graphique s’ouvre montrant le Soleil (jaune) au centre, la Terre (bleue) et Mars (rouge) tournant autour. Des lignes estompées suivent le mouvement des planètes.



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