onizuka_bnwmy6yis7jayqnv_333.py

49,00 

Simuler et animer en 2D les trajectoires orbitales de corps célestes (Soleil, Terre, Mars) en utilisant les lois de Newton.

UGS : onizuka_bnwmy6yis7jayqnv_333.py Catégorie : Étiquettes : , ,

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script onizuka_bnwmy6yis7jayqnv_333.py

Version 1.0.0

Date de création 25/03/2026

Auteur / Demandeur refoïa jeremy

Objectif principal Simuler et animer en 2D les trajectoires orbitales de corps célestes (Soleil, Terre, Mars) en utilisant les lois de Newton.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script calcule les interactions gravitationnelles entre plusieurs objets massifs dans un espace 2D. Il génère une animation fluide montrant le mouvement des planètes autour d’une étoile, en traçant simultanément l’historique de leurs trajectoires (orbites).

📌 Problème résolu

Il permet de visualiser dynamiquement la mécanique céleste simplifiée sans nécessiter de logiciel de CAO complexe, en résolvant numériquement les équations du mouvement à chaque pas de temps.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows, Linux, MacOS)

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

📦 Dépendances / Librairies

numpy : Calcul vectoriel et gestion des matrices.

matplotlib : Moteur de rendu graphique et gestion de l’animation (FuncAnimation).

📥 ENTRÉES (INPUTS)

Les données sont actuellement codées en dur (Hardcoded) dans le script pour l’exemple :

| # | Nom | Type | Description | Exemple |

| :— | :— | :— | :— | :— |

| 1 | G | float | Constante gravitationnelle | 6.67430e-11 |

| 2 | DT | int | Pas de temps en secondes | 10000 |

| 3 | bodies | list | Liste d’objets Body (nom, masse, pos, vel) | Body(« Terre », …) |

📤 SORTIES (OUTPUTS)

# Nom Type Description

1 Animation Graphique Fenêtre interactive Matplotlib affichant les mouvements.

2 path list Liste des positions successives stockées pour chaque corps.

🧱 STRUCTURE DU SCRIPT

onizuka_…_333.py

├── 📌 CONFIGURATION PHYSIQUE (Constantes G, DT, etc.)

├── 📌 CLASSE Body (Modèle de données pour un astre)

├── 📌 FONCTIONS DE CALCUL

│ └── compute_accelerations()

├── 📌 INITIALISATION (Création des planètes)

├── 📌 SETUP VISUALISATION (Configuration des axes et styles)

└── 📌 ANIMATION (update() + FuncAnimation)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

compute_accelerations(bodies) bodies: list list[np.array] Calcule le vecteur accélération résultant pour chaque corps.

update(frame) frame: int list Calcule la nouvelle position et met à jour les objets graphiques.

🔄 LOGIQUE / ALGORITHME

Calcul des forces : Pour chaque corps, on somme les forces exercées par tous les autres corps selon la loi : F=Gr2m1​m2​​.

Calcul de l’accélération : a=m1​F​.

Intégration numérique (Euler semi-implicite) :

Mise à jour de la vitesse : vt+1​=vt​+a⋅dt

Mise à jour de la position : pt+1​=pt​+vt+1​⋅dt

Rendu : Ajout du point à l’historique et rafraîchissement de l’image.

🚨 GESTION DES ERREURS

Division par zéro : Non gérée explicitement (si deux corps occupent la même position r=0, le script plantera).

Stabilité numérique : Utilise l’intégration d’Euler semi-implicite, plus stable que l’Euler classique, mais peut diverger sur de très longues simulations ou des pas de temps (DT) trop grands.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : Les unités doivent être en SI (kg, mètres, secondes).

Règle 2 : La simulation est en 2D uniquement (plan écliptique).

Règle 3 : Les corps sont considérés comme des masses ponctuelles (pas de gestion de collision ou de volume).

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu

1 Orbite stable Paramètres Terre/Soleil La Terre doit boucler une ellipse fermée.

2 Masse nulle Body avec masse 0 Accélération nulle ou erreur de division.

3 DT très grand DT = 1 000 000 La planète est éjectée du système (instabilité).

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python onizuka_bnwmy6yis7jayqnv_333.py

Avis

Il n’y a pas encore d’avis.

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

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