onizuka_au4mcd754gfi7sbt_333.py

49,00 

Simuler et animer graphiquement les trajectoires orbitales de corps célestes en utilisant les lois de la gravitation de Newton.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script onizuka_au4mcd754gfi7sbt_333.py

Version 1.0.0

Date de création 25/03/2026

Auteur / Demandeur refoïa jeremy

Objectif principal Simuler et animer graphiquement les trajectoires orbitales de corps célestes en utilisant les lois de la gravitation de Newton.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script réalise une simulation numérique de mécanique céleste en 2D. Il calcule les interactions gravitationnelles entre plusieurs corps (Soleil, Terre, Mars), met à jour leurs positions et vitesses en temps réel, et affiche une animation fluide de leurs orbites respectives avec une trace de leur historique (trajectoire).

📌 Problème résolu

Il permet de visualiser de manière dynamique l’application de la loi universelle de la gravitation et de comprendre comment les masses et les vitesses initiales influencent la stabilité des orbites planétaires.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS) avec support graphique

Mode d’exécution Script graphique (GUI via Matplotlib)

📦 Dépendances / Librairies

Librairies externes (pip install)

numpy (Calcul vectoriel et numérique)

matplotlib (Moteur de rendu graphique et animation)

📥 ENTRÉES (INPUTS)

📂 Fichiers / Sources de données en entrée

Données Hardcodées : Les propriétés physiques (masse, position initiale x,y, vitesse initiale vx​,vy​) sont définies directement dans l’instanciation de la classe Corps.

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Rendu Visuel : Une fenêtre interactive Matplotlib affichant l’animation des planètes en orbite autour du Soleil.

🧱 STRUCTURE DU SCRIPT

onizuka_au4mcd754gfi7sbt_333.py

├── 📌 IMPORTS (numpy, matplotlib)

├── 📌 CONSTANTES / CONFIG (G, DT, NUM_STEPS)

├── 📌 CLASSES

│ └── Corps → Modèle de donnée pour un objet céleste

├── 📌 FONCTIONS

│ ├── calculer_accelerations() → Calcul de la force gravitationnelle nette

│ ├── init() → Initialisation du cadre d’animation

│ └── update() → Boucle de calcul physique et rafraîchissement visuel

└── 📌 MAIN (Appel de FuncAnimation et plt.show())

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

calculer_accelerations(corps_list) list[Corps] list[np.array] Calcule le vecteur accélération pour chaque corps selon la loi de Newton.

update(frame) int list[Artist] Calcule la nouvelle position (Intégration d’Euler) et met à jour les tracés.

init() Aucun list[Artist] Définit les limites des axes et prépare le fond de l’animation.

🔄 LOGIQUE / ALGORITHME

Étape 1 : Initialisation des objets avec leurs vecteurs d’état (position/vitesse).

Étape 2 : Calcul des forces d’attraction entre chaque paire de corps : F=Gr2m1​m2​​. ↓

Étape 3 : Mise à jour de la vitesse (v=v+a⋅Δt) et de la position (p​=p​+v⋅Δt).

Étape 4 : Stockage de la position dans l’historique de trajectoire et mise à jour des objets graphiques.

Étape 5 : Répétition (Boucle d’animation) jusqu’à atteindre NUM_STEPS.

🚨 GESTION DES ERREURS

Division par zéro : Le script utilise un « softening factor » (+ 1e5) lors du calcul de la distance pour éviter une accélération infinie si deux corps se superposent.

✅ CONTRAINTES & RÈGLES MÉTIER

Unité : Utilise le système international (mètres, kg, secondes).

Précision : Utilise l’intégration d’Euler simple (le pas de temps DT doit rester raisonnable pour éviter la dérive orbitale).

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu

1 Orbite stable Paramètres Terre/Soleil La Terre doit décrire une ellipse/cercle fermé.

2 Interaction multiple 3 corps ou plus Les trajectoires doivent être perturbées par l’influence mutuelle.

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python onizuka_au4mcd754gfi7sbt_333.py

Avis

Il n’y a pas encore d’avis.

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

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