🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_6rjde19o44nix048_333.py
Version 1.0.0
Date de création 11/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler et animer le mouvement chaotique d’un pendule double à l’aide d’équations différentielles.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script résout numériquement les équations du mouvement d’un système de pendule double (deux masses reliées par des tiges rigides). Il calcule les trajectoires angulaires en fonction du temps et génère une animation visuelle en temps réel montrant le balancement du système.
📌 Problème résolu
Il permet de modéliser un système physique non linéaire complexe (souvent cité pour son comportement chaotique) qui est difficile à résoudre analytiquement sans outils de calcul numérique.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Windows / Linux / MacOS
Mode d’exécution Script interactif (Interface graphique requise pour l’animation)
📦 Dépendances / Librairies
numpy : Calculs matriciels et fonctions trigonométriques.
matplotlib : Visualisation graphique et module animation.
scipy : Utilisation de solve_ivp pour l’intégration numérique des équations différentielles.
📥 ENTRÉES (INPUTS)
📂 Paramètres de simulation (Variables internes)
# Nom Type Obligatoire Description Exemple
1 L1, L2 float ✅ Oui Longueurs des deux tiges 1.0
2 m1, m2 float ✅ Oui Masses des deux poids 1.0
3 y0 list ✅ Oui Conditions initiales [θ1,ω1,θ2,ω2] [np.pi/2, 0, np.pi/2, 0]
📤 SORTIES (OUTPUTS)
📂 Données & Visualisation
# Nom Type Description
1 sol Odefy/Object Objet contenant les solutions t et y de l’intégration.
2 x1, y1, x2, y2 ndarray Coordonnées cartésiennes calculées pour l’affichage.
3 Animation Plot Fenêtre interactive Matplotlib affichant le mouvement.
🧱 STRUCTURE DU SCRIPT
onizuka_6rjde19o44nix048_333.py
│
├── 📌 IMPORTS (numpy, matplotlib, scipy)
├── 📌 FONCTIONS
│ └── pendule_double() → Calcule les dérivées des variables d’état (accélérations).
├── 📌 SIMULATION (Définition des paramètres et résolution via solve_ivp)
├── 📌 VISUALISATION (Conversion polaire vers cartésien)
└── 📌 ANIMATION (Initialisation de la figure et fonction animate)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
pendule_double(t, y, L1, L2, m1, m2, g) t, vecteur y, constantes physiques list Définit le système d’équations différentielles du premier ordre.
animate(i) Index de frame i tuple Met à jour les coordonnées de la ligne du pendule pour chaque image de l’animation.
🔄 LOGIQUE / ALGORITHME
ÉTAPE 1 → Définition des conditions initiales (angles de départ à 90°) et des paramètres physiques.
ÉTAPE 2 → Intégration numérique par la méthode de Runge-Kutta (via solve_ivp) sur un intervalle de 20 secondes.
ÉTAPE 3 → Transformation des angles (θ1,θ2) en coordonnées x et y pour l’affichage à l’écran.
ÉTAPE 4 → Lancement de la boucle d’animation Matplotlib qui rafraîchit la position des tiges toutes les 20 ms.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal y0 = [pi/2, 0, pi/2, 0] Le pendule oscille de manière fluide. ⬜ À tester
2 Équilibre stable y0 = [0, 0, 0, 0] Le pendule reste immobile à la verticale basse. ⬜ À tester
3 Équilibre instable y0 = [pi, 0, pi, 0] Le pendule tombe immédiatement (chaos). ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_6rjde19o44nix048_333.py
(Note : Assurez-vous d’avoir installé les dépendances via pip install numpy scipy matplotlib avant le lancement.)
📌 NOTES COMPLÉMENTAIRES
⚠️ Attention : Le script utilise plt.show() qui est bloquant. L’animation s’arrêtera si la fenêtre est fermée. Pour une utilisation plus propre, il serait préférable d’ajouter des « Type Hints » et de séparer la logique de simulation de la logique d’affichage.



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