🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_283cvmn_283.py
Version 1.0.0
Date de création 07/03/2026
Auteur / Demandeur Gemini (IA Générée)
Objectif principal Modéliser et visualiser dynamiquement l’attracteur de Lorenz pour illustrer la théorie du chaos.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script simule les trajectoires d’un système dynamique non linéaire (système de Lorenz). Il résout numériquement trois équations différentielles couplées et génère une représentation graphique 3D de la trajectoire, mettant en évidence la structure en « ailes de papillon » caractéristique des systèmes chaotiques.
📌 Problème résolu
Il permet de visualiser l’effet papillon : comment de petites variations dans les conditions initiales d’un système déterministe peuvent mener à des résultats radicalement différents, rendant la prédiction à long terme impossible.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows, Linux, MacOS)
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
Librairies externes (pip install)
numpy: Calcul numérique (gestion des tableaux).
matplotlib: Génération des graphiques 3D.
scipy: Intégration numérique des équations différentielles (odeint).
📥 ENTRÉES (INPUTS)
📂 Paramètres de simulation
# Nom Type Obligatoire Description Exemple
1 initial_state list ✅ Oui Coordonnées de départ [x, y, z] [1.0, 1.0, 1.0]
2 sigma float ❌ Non Nombre de Prandtl (paramètre de convection) 10.0
3 rho float ❌ Non Nombre de Rayleigh (gradient temp.) 28.0
4 beta float ❌ Non Paramètre de distorsion géométrique 2.666
📤 SORTIES (OUTPUTS)
📂 Données et Visualisations
# Nom Type Description
1 self.states numpy.ndarray Matrice contenant les positions x, y, z calculées au fil du temps.
2 Graphique 3D Matplotlib Plot Fenêtre interactive affichant la trajectoire de l’attracteur.
🧱 STRUCTURE DU SCRIPT
script_283cvmn_283.py
│
├── 📌 IMPORTS (numpy, matplotlib, scipy)
├── 📌 CLASSE LorenzSimulator
│ ├── __init__ : Initialisation des constantes (σ,ρ,β).
│ ├── lorenz_system : Définition mathématique du système.
│ ├── run_simulation : Résolution via odeint.
│ └── visualize : Rendu graphique 3D.
└── 📌 MAIN (Point d’entrée pour l’exécution directe)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
lorenz_system current_state, t list Calcule les dérivées dtdx,dtdy,dtdzdt.
run_simulation initial_state, duration ndarray Intègre le système sur une durée donnée.
visualize Aucun None Génère la figure Matplotlib 3D.
🔄 LOGIQUE / ALGORITHME
Initialisation : Définition des paramètres physiques (σ=10,ρ=28,β=8/3).
Intégration : Utilisation de l’algorithme LSODA (via odeint) pour résoudre :
dtdx=σ(y−x)
dtdy=x(ρ−z)−y
dtdz=xy−βz
Stockage : Sauvegarde des points dans un tableau NumPy.
Rendu : Tracé des points dans un espace cartésien 3D avec un style « scientifique moderne ».
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Visualisation avant calcul AttributeError / Print Affiche un message d’erreur explicite.
Paramètres non numériques TypeError L’intégrateur Scipy lèvera une erreur de calcul.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal [1, 1, 1] Affichage des « ailes de papillon » ⬜ À tester
2 Point d’équilibre [0, 0, 0] La trajectoire reste à l’origine ⬜ À tester
3 Haute durée duration=500 Trajectoire très dense, pas de plantage ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python script_283cvmn_283.py
💻 Exemple d’appel en tant que module
Python
from script_283cvmn_283 import LorenzSimulator
sim = LorenzSimulator(rho=28.0)
sim.run_simulation([0.1, 0.0, 0.0], duration=30)
sim.visualize()



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