script_232cvmn_232.py

49,00 

Calculer et visualiser graphiquement l’ensemble fractal de Mandelbrot en utilisant la vectorisation NumPy.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_232cvmn_232.py

Version 1.0.0

Date de création 02/03/2026

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

Objectif principal Calculer et visualiser graphiquement l’ensemble fractal de Mandelbrot en utilisant la vectorisation NumPy.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script génère une image de l’ensemble de Mandelbrot. Il définit une grille de nombres complexes, itère la fonction quadratique zn+1​=zn2​+c pour chaque point, et détermine la vitesse à laquelle chaque point diverge vers l’infini. Le résultat est affiché sous forme de carte thermique colorée.

📌 Problème résolu

Il permet de visualiser des structures mathématiques complexes de manière efficace grâce à la vectorisation (traitement par blocs de données plutôt que par boucles for sur chaque pixel), ce qui optimise considérablement le temps de calcul en Python.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution CLI / Script autonome

📦 Dépendances / Librairies

numpy : Pour les calculs matriciels et la gestion de la grille complexe.

matplotlib : Pour la génération du graphique et la visualisation de la fractale.

📥 ENTRÉES (INPUTS)

📂 Variables de configuration (Hardcodées)

# Nom Type Obligatoire Description Exemple

1 xmin, xmax float ✅ Oui Bornes de la partie réelle -2.0, 1.0

2 ymin, ymax float ✅ Oui Bornes de la partie imaginaire -1.5, 1.5

3 width, height int ✅ Oui Résolution de l’image en pixels 800, 600

4 max_iter int ✅ Oui Précision (limite d’itérations) 100

📤 SORTIES (OUTPUTS)

📂 Données en sortie

# Nom Type Description Exemple

1 iterations ndarray Matrice 2D contenant l’indice d’évasion de chaque point. [[0, 0, 12, …]]

📂 Rendu visuel

Type : Fenêtre interactive Matplotlib.

Description : Image utilisant la colormap ‘inferno’ représentant la fractale de Mandelbrot avec une barre de couleur indiquant l’intensité de divergence.

🧱 STRUCTURE DU SCRIPT

Plaintext

script_232cvmn_232.py

├── 📌 IMPORTS (numpy, matplotlib.pyplot)

├── 📌 FONCTIONS

│ ├── generate_mandelbrot() → Calcul matriciel de la fractale

│ └── plot_mandelbrot() → Génération du graphique

├── 📌 PARAMÈTRES (Définition des bornes et résolution)

└── 📌 EXÉCUTION (Main process)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

generate_mandelbrot xmin, xmax, ymin, ymax, width, height, max_iter ndarray Initialise la grille complexe et exécute la boucle de divergence vectorisée.

plot_mandelbrot iterations None Configure plt.imshow et affiche la figure finale.

🔄 LOGIQUE / ALGORITHME

Initialisation : Création d’un plan complexe via np.linspace et np.newaxis.

Boucle de calcul (max_iter) :

Appliquer Z=Z2+C uniquement sur les points n’ayant pas encore divergé (via un masque booléen).

Identifier les points dont le module ∣Z∣>2.

Enregistrer l’indice de l’itération actuelle pour ces points « fugitifs ».

Mettre à jour le masque pour exclure les points divergés des prochains calculs.

Visualisation : Projection de la matrice d’itérations sur une échelle de couleurs.

🚨 GESTION DES ERREURS

Mémoire : Une résolution trop élevée (ex: 10000×10000) peut entraîner une MemoryError due à la taille de la matrice NumPy.

Types : Le script utilise complex128 pour assurer la précision nécessaire aux calculs fractals.

🧪 TESTS ATTENDUS

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

1 Cas nominal Paramètres par défaut Affichage d’une fractale nette ⬜ À tester

2 Résolution 1×1 width=1, height=1 Pas de plantage, 1 pixel calculé ⬜ À tester

3 Itérations = 0 max_iter=0 Image noire (aucune divergence) ⬜ À tester

📝 EXEMPLE D’UTILISATION

▶️ Lancement

Bash

python script_232cvmn_232.py

📋 Sortie Console

Plaintext

Initialisation de la grille complexe…

Démarrage de 100 itérations…

Calcul terminé.

Création de la visualisation…

Avis

Il n’y a pas encore d’avis.

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

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