🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_8fvurfsumolo5545_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur refoïa jeremy
Objectif principal Simuler et animer en 3D l’attracteur de Lorenz pour illustrer la sensibilité aux conditions initiales (effet papillon).
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script résout numériquement les équations différentielles du système de Lorenz. Il calcule simultanément deux trajectoires partant de points extrêmement proches pour démontrer visuellement comment elles divergent rapidement dans un espace 3D, le tout présenté via une animation rotative fluide.
📌 Problème résolu
Ce script adresse le besoin de visualisation pédagogique du chaos déterministe. Il permet de voir concrètement pourquoi les prévisions à long terme sont impossibles dans certains systèmes dynamiques, même si les règles de base sont simples.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+ (recommandé)
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Script interactif (GUI requis pour Matplotlib)
📦 Dépendances / Librairies
numpy : Calcul numérique (tableaux et linspace).
matplotlib : Moteur graphique pour le rendu 3D et l’animation.
scipy : Utilisation de odeint pour l’intégration des équations différentielles.
📥 ENTRÉES (INPUTS)
📂 Paramètres codés en dur (Variables de configuration)
# Nom Type Description Valeur
1 sigma float Nombre de Prandtl 10.0
2 rho float Nombre de Rayleigh 28.0
3 beta float Paramètre de forme 8/3
4 initial_state1 list Coordonnées [x, y, z] de départ A [1.0, 1.0, 1.0]
5 initial_state2 list Coordonnées [x, y, z] de départ B [1.0, 1.0, 1.001]
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Format Description
Interface Graphique Fenêtre Matplotlib Animation 3D en temps réel des trajectoires cyan et magenta.
🧱 STRUCTURE DU SCRIPT
onizuka_lorenz.py
│
├── 📌 IMPORTS (numpy, matplotlib, scipy)
├── 📌 CONSTANTES (Paramètres physiques σ,ρ,β)
├── 📌 FONCTIONS
│ └── lorenz_system() → Définit les dérivées du système chaotique.
├── 📌 RÉSOLUTION (odeint)
└── 📌 ANIMATION
├── animate(i) → Met à jour les lignes et la rotation caméra.
└── FuncAnimation → Boucle de rendu.
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
lorenz_system(state, t, s, r, b) state: list, t: float, s/r/b: float list Calcule dx/dt, dy/dt, dzdt.
animate(i) i: int (index de frame) tuple Met à jour les positions des points et fait pivoter la vue de 0.5° par frame.
🔄 LOGIQUE / ALGORITHME
[Image de l’attracteur de Lorenz]
Initialisation : Définition des constantes physiques et du vecteur temps (4000 points sur 40s).
Calcul Différentiel :
dtdx=σ(y−x)
dtdy=x(ρ−z)−y
dtdz=xy−βz
Intégration : Résolution via odeint pour les deux états initiaux.
Rendu : Création d’une figure 3D sur fond noir et lancement de l’animation frame par frame.
🚨 GESTION DES ERREURS
Backend Matplotlib : Si aucun environnement graphique n’est détecté (ex: serveur SSH sans X11), le script plantera à l’appel de plt.show().
Dépendances : Absence de scipy ou matplotlib (erreur ImportError).
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : La divergence entre les deux trajectoires doit être visible (ici, différence de 0.1% sur l’axe Z).
Règle 2 : L’animation doit être fluide (intervalle de 10ms entre les frames).
Règle 3 : Le rendu visuel doit être esthétique (fond noir, couleurs contrastées).
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_8fvurfsumolo5545_333.py
📋 Sortie visuelle attendue
Une fenêtre s’ouvre montrant deux spirales (forme « papillon ») qui se superposent au début, puis se séparent totalement après quelques secondes d’animation, illustrant le chaos.
🗂️ HISTORIQUE DES VERSIONS
Version Date Modification Auteur
1.0.0 25/03/2026 Création initiale : intégration ODE + Animation 3D IA



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