onizuka_5uadtow8fxn6gbqf_333.py

49,00 

Simuler et animer graphiquement les orbites du système solaire interne (Soleil, Terre, Mars) en utilisant les lois de la gravitation universelle.

UGS : onizuka_5uadtow8fxn6gbqf_333.py Catégorie : Étiquette :

🔷 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=Gr2mA​mB​​

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.

Soyez le premier à laisser votre avis sur “onizuka_5uadtow8fxn6gbqf_333.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *