🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_235cvmn_235.py
Version 1.0.0
Date de création 02/03/2026
Auteur / Demandeur Gemini (IA Généré)
Objectif principal Simulation, exploration visuelle et analyse mathématique de l’ensemble de Mandelbrot.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script propose une implémentation orientée objet pour générer l’ensemble de Mandelbrot. Il utilise des calculs vectorisés avec NumPy pour la performance et propose des fonctionnalités avancées : zooms interactifs, exportations haute résolution, animations et même une estimation de la dimension fractale.
📌 Problème résolu
Il permet d’explorer la complexité infinie des fractales sans nécessiter de connaissances approfondies en mathématiques complexes, tout en fournissant des outils d’analyse (box-counting) pour les utilisateurs scientifiques.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.10+ (recommandé pour le type hinting `
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Module / Jupyter Notebook
📦 Dépendances / Librairies
Librairies standard (built-in)
pathlib, time
Librairies externes (pip install)
numpy
matplotlib
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 x_min, x_max float ❌ Non Bornes de l’axe réel -2.0, 0.5
2 y_min, y_max float ❌ Non Bornes de l’axe imaginaire -1.2, 1.2
3 width, height int ❌ Non Résolution en pixels 800
4 max_iter int ❌ Non Précision du calcul (profondeur) 256
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 self.N np.ndarray Matrice des itérations par pixel [[256, 12, …]]
2 Image HD PNG/SVG Fichier image haute résolution mandelbrot_hd.png
3 Animation GIF Zoom progressif animé mandelbrot_zoom.gif
🧱 STRUCTURE DU SCRIPT
Plaintext
script_235cvmn_235.py
│
├── 📌 IMPORTS (numpy, matplotlib, etc.)
├── 📌 CLASSE MandelbrotSimulator
│ ├── __init__() → Initialisation des paramètres de fenêtre
│ ├── _create_complex_plane()→ Génération de la grille meshgrid
│ ├── generate_mandelbrot_set() → Algorithme d’échappement vectorisé
│ ├── visualize() → Affichage simple via imshow
│ ├── zoom_into() → Focus sur une zone spécifique
│ ├── save_high_resolution()→ Rendu HD sans bordures
│ ├── compute_fractal_dimension() → Analyse par box-counting
│ ├── animate_zoom() → Création d’une séquence FuncAnimation
│ └── compare_color_palettes() → Grille comparative de colormaps
└── 📌 MAIN (Démonstration complète des fonctionnalités)
🔄 LOGIQUE / ALGORITHME
Initialisation : Définition de la fenêtre complexe (z=x+iy).
Vectorisation : Création d’un masque booléen pour ne calculer que les points n’ayant pas encore « échappé » (∣z∣≤2).
Itération : Application de la formule zn+1=zn2+c jusqu’à max_iter.
Post-traitement : Stockage du rang d’échappement pour chaque pixel afin de générer une carte de couleurs.
🚨 GESTION DES ERREURS
RuntimeError : Levée si l’utilisateur tente de visualiser ou d’analyser l’ensemble avant d’avoir lancé generate_mandelbrot_set().
ValueError : Gérée lors de la comparaison des palettes si un nom de colormap est invalide.
🧪 TESTS ATTENDUS
Cas nominal : Génération de l’ensemble standard avec max_iter=256 en moins d’une seconde.
Zoom profond : Vérifier que l’augmentation de max_iter lors d’un zoom maintient la netteté des détails.
Export HD : Test de création d’un fichier PNG de 2400px sans crash mémoire.
📝 EXEMPLE D’UTILISATION
▶️ Lancement via le bloc Main
Bash
python script_235cvmn_235.py
💻 Exemple d’appel programmatique
Python
from script_235cvmn_235 import MandelbrotSimulator
sim = MandelbrotSimulator(width=1000, height=1000)
sim.generate_mandelbrot_set()
# Estimation de la dimension de la frontière
d = sim.compute_fractal_dimension(plot=True)
print(f »Dimension fractale : {d} »)



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