script_286cvmn_286.py

49,00 

Modéliser et visualiser l’attracteur de Lorenz pour illustrer les systèmes dynamiques chaotiques.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_286cvmn_286.py

Version 1.0.0

Date de création 07/03/2026

Auteur / Demandeur IA Générée (Gemini)

Objectif principal Modéliser et visualiser l’attracteur de Lorenz pour illustrer les systèmes dynamiques chaotiques.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script utilise les équations différentielles de Lorenz pour simuler la trajectoire d’un point dans un espace 3D. Il résout ces équations numériquement et génère un graphique tridimensionnel montrant la célèbre forme en « papillon » caractéristique du chaos déterministe.

📌 Problème résolu

Il permet d’étudier la sensibilité aux conditions initiales et la visualisation de structures complexes (fractales) issues de règles mathématiques simples.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.8+

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution CLI / Script interactif

📦 Dépendances / Librairies

Librairies externes (pip install)

numpy : Calcul numérique et gestion des tableaux.

matplotlib : Génération du graphique 3D.

scipy : Intégration numérique des équations différentielles (odeint).

📥 ENTRÉES (INPUTS)

📂 Paramètres de classe

# Nom Type Obligatoire Description Exemple

1 sigma float ❌ Non Paramètre de Prandtl (défaut: 10.0) 10.0

2 rho float ❌ Non Nombre de Rayleigh (défaut: 28.0) 28.0

3 beta float ❌ Non Paramètre géométrique (défaut: 8/3) 2.666

📤 SORTIES (OUTPUTS)

📂 Données en sortie

# Nom Type Description Exemple

1 states np.ndarray Tableau des coordonnées (x, y, z) au fil du temps. [[1, 1, 1], …]

2 Visualisation Graphique Fenêtre Matplotlib affichant la trajectoire 3D. Attracteur en « papillon »

🧱 STRUCTURE DU SCRIPT

script_286cvmn_286.py

├── 📌 IMPORTS (numpy, matplotlib, scipy)

├── 📌 CLASSE LorenzSimulator

│ ├── __init__() → Initialise les constantes du système.

│ ├── _lorenz_deriv() → Système d’équations différentielles.

│ ├── run_simulation() → Résolution numérique (odeint).

│ └── visualize() → Rendu 3D via Matplotlib.

└── 📌 MAIN (Bloc d’exécution directe)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

run_simulation initial_state, t_max, num_steps ndarray Calcule les points de la trajectoire sur la durée t_max.

visualize Aucun None Affiche l’objet Axes3D avec la trajectoire tracée.

🔄 LOGIQUE / ALGORITHME

Initialisation : Définition des constantes physiques (σ,ρ,β).

Calcul Différentiel : Utilisation de l’algorithme d’intégration pour résoudre :

dx/dt=σ(y−x)

dy/dt=x(ρ−z)−y

dz/dt=xy−βz

Stockage : Les résultats sont stockés dans une matrice N×3.

Rendu : Projection des points sur un espace cartésien 3D.

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Cas nominal [1.0, 1.0, 1.0] Graphique généré sans erreur. ⬜ À tester

2 Sans simulation Appel visualize() direct Message d’erreur « Lancez la simulation… » ⬜ À tester

3 Temps nul t_max=0 Un seul point ou tableau vide. ⬜ À tester

📝 EXEMPLE D’UTILISATION

💻 Appel en tant que module

Python

from script_286cvmn_286 import LorenzSimulator

sim = LorenzSimulator(rho=28.0)

trajectoire = sim.run_simulation([0.1, 0.0, 0.0], t_max=100)

sim.visualize()

Avis

Il n’y a pas encore d’avis.

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

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