🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_a0zni4x5hynlfd91_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur IA Généré (Gemini)
Objectif principal Simuler et visualiser les trajectoires orbitales de corps célestes en utilisant la mécanique Newtonienne et l’intégration numérique RK4.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script simule l’interaction gravitationnelle entre plusieurs corps célestes (système N-corps). Il calcule les positions et vitesses futures en utilisant la loi de la gravitation universelle de Newton et permet de visualiser l’évolution du système (trajectoires et mouvements) via une animation interactive.
📌 Problème résolu
Il permet de modéliser des systèmes complexes où les solutions analytiques sont impossibles (problème des N-corps). Il répond au besoin de précision temporelle grâce à l’algorithme de Runge-Kutta d’ordre 4 (RK4), bien plus stable que la méthode d’Euler standard pour les orbites.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows, Linux, MacOS)
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
numpy : Calcul vectoriel et gestion des tableaux.
matplotlib : Visualisation graphique et moteur d’animation (FuncAnimation).
scipy : Importé pour solve_ivp (bien que le script utilise sa propre implémentation RK4).
warnings : Gestion des alertes de bibliothèque.
📥 ENTRÉES (INPUTS)
Le script est configuré via la méthode ajouter_corps.
# Nom Type Obligatoire Description Exemple
1 nom str ✅ Oui Identifiant du corps « Terre »
2 masse float ✅ Oui Masse en kg 5.972e24
3 position tuple ✅ Oui Coordonnées (x, y) en mètres (1.49e11, 0)
4 vitesse tuple ✅ Oui Vecteur vitesse (vx, vy) en m/s (0, 29780)
5 rayon float ❌ Non Rayon visuel/physique 6.37e6
📤 SORTIES (OUTPUTS)
Console : Rapport d’analyse (Énergie totale, collisions détectées, moments cinétiques).
Interface Graphique : Fenêtre Matplotlib affichant l’animation des orbites en temps réel.
🧱 STRUCTURE DU SCRIPT
Plaintext
onizuka_a0zni4x5hynlfd91_333.py
│
├── 📌 IMPORTS (numpy, matplotlib, scipy)
├── 📌 CONFIGURATION STYLE (Dark mode)
├── 📌 CLASSE SimulationSpatiale
│ ├── __init__() → Initialise G et le pas de temps
│ ├── ajouter_corps() → Enregistre un objet céleste
│ ├── rk4_step() → Coeur mathématique (intégration)
│ ├── detecter_collisions() → Vérifie la proximité des rayons
│ ├── visualiser() → Génère l’animation FuncAnimation
│ └── analyser_resultats() → Affiche les métriques physiques
└── 📌 MAIN (Exemple : Système Solaire simplifié)
🔄 LOGIQUE / ALGORITHME
Initialisation : Définition des constantes physiques et ajout des planètes.
Boucle de Simulation :
Calcul des forces gravitationnelles entre chaque paire d’objets : F=Gr2m1m2. * RK4 Integration : Calcul de 4 pentes intermédiaires pour mettre à jour la position et la vitesse avec une erreur minimale.
Analyse : Calcul de l’énergie cinétique (1/2mv2) et potentielle (−Gm1m2/r) pour vérifier la conservation de l’énergie.
Rendu : Animation des vecteurs de position stockés dans l’historique.
🚨 GESTION DES ERREURS
Division par zéro : Le script inclut une sécurité dans acceleration_gravitationnelle (si r<1e8 mètres) pour éviter les singularités lors d'une superposition parfaite de corps. Filtrage des Warnings : Désactivation des alertes Matplotlib/Numpy pour une sortie console propre. 🧪 TESTS ATTENDUS # Cas de test Entrée Résultat attendu 1 Stabilité orbitale Terre autour du Soleil Orbite fermée après 365 pas de 1 jour. 2 Collision Astéroïde trajectoire directe Détection dans le rapport analyser_resultats. 3 Conservation Système isolé Énergie totale stable (faible dérive due au RK4). 📝 EXEMPLE D'UTILISATION ▶️ Lancement Bash python onizuka_a0zni4x5hynlfd91_333.py 📋 Sortie Console (Exemple) Plaintext Démarrage de la simulation... Simulation terminée : 1826 pas de temps ANALYSE DES RÉSULTATS DE SIMULATION Énergie totale du système: -4.82e+33 J ✅ Aucune collision détectée INFORMATIONS ORBITALES: Terre: - Distance au centre: 149.60 Gm - Vitesse: 29780.00 m/s



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