Uso del programma Mandelbrot


Pagina principale Mandelbrot

Cenni sull'insieme di Mandelbrot

Come generare insiemi di Julia Criteri di colorazione

Come installare il programma Mandelbrot.

E' sufficiente estrarre i tre files  contenuti nel file Mandelbrot.zip in una qualsiasi directory temporanea, e lanciare Setup. Al termine dell'installazione, sia Mandelbrot.zip che i tre files da esso estratti possono venire eliminati.


Come utilizzare il programma Mandelbrot.

Il programma per navigare nell'insieme di Mandelbrot ha un'interfaccia grafica costituita da uno schermo quadrato ed un pannello di comando e controllo verticale, posto a destra dello schermo.

Lo schermo è il più grande possibile che si possa ragionevolmente gestire in forma quadrata con una risoluzione 1024 x 768; ha 724 pixel di lato, per un totale di più di mezzo milione di punti. Per ciascuna istantanea dell'insieme, la successione descritta nei Cenni sull'insieme di Mandelbrot viene appunto calcolata 524.176 volte, per un numero massimo di iterazioni definibile nel pannello di controllo.

L'interfaccia grafica è stata sviluppata in Visual Basic™, ma per il nucleo che esegue le iterazioni si è ricorsi al linguaggio C, che permette velocità di esecuzione circa 10 volte superiori; in pratica, il programma principale lancia l'applicazione in C solo quando è necessario eseguire il mezzo milione di loops di calcolo di cui sopra, mentre per le parti di interfaccia e la gestione dei vari bottoncini fa da sè.

Il pannello di comando è suddiviso in 6 riquadri, qui di seguito descritti.

RIQUADRO 2° RIQUADRO RIQUADRO RIQUADRO RIQUADRO RIQUADRO

RIQUADRO

Il primo è un riquadro informativo, di sola lettura. Contiene i valori delle coordinate che delimitano la porzione di piano correntemente visualizzata sullo schermo, ed il fattore di ingrandimento rispetto all'immagine iniziale.

Contiene poi la denominazione dell'area visualizzata, definita secondo i criteri illustrati per il successivo riquadro.

 

  


2° RIQUADRO

Il secondo riquadro è quello che permette di scegliere la porzione del piano complesso che si desidera ingrandire, a partire dall'immagine corrente presente sullo schermo; attivando col tasto ON il riquadro, lo schermo viene suddiviso, tramite una griglia, in 25 porzioni, identificate dalle lettere maiuscole dell'alfabeto inglese, Z esclusa. La selezione di una delle 25 lettere fa sì che la porzione scelta venga a sua volta suddivisa in 25 settori di minore dimensione, fra i quali è ancora possibile sceglierne uno, col tasto appropriato ancora selezionabile in questo riquadro.

Premendo il tasto OK, la selezione eseguita diventa effettiva, e si può poi lanciare l'elaborazione per la conseguente visualizzazione dell'area prescelta. La parte selezionata viene evidenziata tramite un riquadro rosso. E' comunque possibile cambiare idea su una selezione insoddisfacente, premendo OFF prima dell'OK e quindi ancora ON, o anche, dopo l'OK, ripetendo la procedura a partire dalla pressione del tasto ON. In tal caso il riquadro precedentemente scelto (e rinnegato...) viene mantenuto evidenziato da un contorno rosso, mentre quello in fase di selezione è invece mostrato in blu fino alla pressione dell'OK. Il tasto OK può anche essere premuto dopo la prima selezione di lettera A-Y; in tal caso il riquadro su cui operare sarà 25 volte più grande.

In ogni caso, il campo bianco (di testo, cioè 'Sottoarea selezionata') di questo riquadro conterrà le lettere (o la lettera) che identificano la porzione di immagine prescelta. Se si preme OK senza effettuare alcuna selezione d'area, si presceglie come area quella identificata dalla lettera Z, che rappresenta per convenzione l'immagine iniziale (tutto l'insieme di Mandelbrot M); ciò consente di ripartire daccapo dopo essersi inoltrati a fondo in una ispezione all'interno dell'insieme.

Se si procede con successivi ingrandimenti dell'immagine, ciascun riquadro prescelto (e rappresentato sullo schermo) risulta allora univocamente identificato da una successione di lettere; questa costituisce il nome dell'immagine, nome che viene utilizzato per salvare l'immagine su un file o per memorizzarne le specifiche di realizzazione (vedi seguito).

Talvolta, i 25 riquadri proposti non delimitano in modo soddisfacente un'area che si voglia ingrandire, poiché le linee della griglia tagliano una struttura Mandelbrotica interessante, o comunque ciò che si vuole evidenziare non risulta ben centrato. Si può allora agire sui quattro tastini con le frecce per spostare a piacimento la griglia di uno o due passi (da circa 1/3 di riquadro ciascuno). Il tastino centrale riporta la griglia nella posizione iniziale. La griglia può essere spostata sia precedentemente alla prima selezione di riquadro che dopo, consentendo scorrimenti grossolani e fini della griglia stessa. Uno spostamento di griglia viene contraddistinto nel campo 'Sottoarea selezionata' (e nella successiva denominazione dell'immagine che ne risulta) con una lettera minuscola dell'alfabeto inglese, considerando gli spostamenti relativamente alla posizione centrale 'm'. Con un po' di esercizio il principio di denominazione delle aree dovrebbe risultare abbastanza chiaro...

Ad ogni selezione di riquadro (singola o doppia, con griglia traslata o no), deve seguire una elaborazione d'immagine, da lanciarsi tramite il riquadro di seguito descritto; e da lì si ricomincia... Dopo ciascuna elaborazione, la nuova immagine appare sullo schermo ed il primo riquadro viene aggiornato con le nuove coordinate, il nuovo fattore d'ingrandimento e la nuova denominazione.

Ancora in questo riquadro, il tastino '-1' permette di sottrarre una o più lettere dalla denominazione corrente, per tornare indietro verso immagini precedentemente elaborate durante la sequenza in corso. In questo caso, non è possibile selezionare riquadri, mentre è invece sempre consentito premere OFF per abortire una selezione indesiderata.

Il Visual Basic™ ed il compilatore C utilizzati pongono un limite al massimo ingrandimento realizzabile; dopo 19 passi (19 lettere maiuscole, gli spostamenti di griglia non hanno effetto) il programma rifiuta ulteriori espansioni dell'immagine, dato il numero limitato di cifre significative gestibili per le coordinate dei punti. In ogni caso, è possibile ingrandire l'immagine iniziale con una griglia 5 x 5 = 25 per 19 volte, quindi con un fattore d'ingrandimento di 2519 volte, ed i bordi dell'immagine 519 volte. Poiché sullo schermo (almeno il mio, 1024x768...) l'immagine iniziale Z ha un lato di circa 20 cm, se si ingrandisse tutto l'insieme di Mandelbrot fino alla massima risoluzione la figura risultante sarebbe grande (di lato):

20 * 519 cm ~ 3,8 miliardi di Km

cioè ingloberebbe del tutto l'orbita di Giove, toccando quella di Saturno, e sfiorando quella di Urano...

E quanto tempo occorrerebbe per generare questo frattale siderale? Si tratterebbe di generare prima l'immagine complessiva Z, da 20 cm di lato, poi da essa le 25 immagini relative ai primi 25 riquadri, poi per ciascuno di questi altri 25 riquadri (cioè 625) e così via per 19 cicli. Cioè un totale NI di:

NI = 1 + 25 + 252 + 253 + ... + 2519 immagini. 

Con un po' di calcoletti si ricava:

NI = (2520 - 1) / 24 = 378.956.125.738.720.099.131.266.276 immagini;

cioè circa 380 milioni di miliardi di miliardi di immagini. Il tempo impiegato a generarne ciascuna dipende dal numero di iterazioni massime impostato; supponendo di fissare a 100 questo valore, con un PC da 1 GHz occorrono grosso modo 7-8 secondi per immagine, in media: allora facciamo 7,5". Ne viene 28.421.709.430.404.007.434.84.497.070 secondi in totale, pari a circa 90 miliardi di miliardi di anni... Se è vero che l'età dell'universo è di circa 15 miliardi di anni, abbiamo grosso modo 6 miliardi di volte l'età dell'universo dal big bang ad oggi. Guarda caso, 6 miliardi è più o meno la attuale popolazione mondiale (almeno quella umana, contando anche le mie zie). Quindi:

"per generare l'insieme di Mandelbrot interplanetario occorrerebbe che tutti gli abitanti della terra (dotati ciascuno di un PC da 1 GHz), elaborassero porzioni di immagine per un tempo pari alla età stimata dell'Universo".

Certo, ci vorrebbe un minimo di coordinamento...


RIQUADRO

Questo riquadro viene utilizzato per definire il numero di iterazioni massime che verranno eseguite in una successiva generazione d'immagine; occorre scrivere un valore nella casella di sinistra (Impostate) e poi premere il tastino con le frecce (>>) per rendere operativa la scelta (Effettive). All'atto della pressione, il numero impostato viene validato, evitando così impostazioni improprie (caratteri alfabetici, numeri negativi o frazionari, ecc.). Il numero minimo consentito è 20, quello massimo 32.767; ciò poiché tale valore è definito come intero a 16 bit nel programma. Del resto, valori superiori richiederebbero tempi di elaborazione troppo elevati, ed il limite di 32.767 risulta più che sufficiente nella stragrande maggioranza dei casi. 

L'uso del tasto Istogramma è descritto nella pagina Criteri di colorazione Vai alla pagina sui criteri di colorazione


4° RIQUADRO

Una volta selezionata una porzione di piano (vedere 2° RIQUADRO), la relativa immagine in essa contenuta viene ricopiata a mo' di icona nel tasto principale di questo riquadro. Ciò dà un'idea di cosa verrà generato nello schermo premendo il tasto stesso.

Agendo sul tasto con l'icona, tutto il pannello di controllo viene disabilitato, ad esclusione del tasto Stop che diviene attivo, ed inizia l'elaborazione della nuova immagine. Come già accennato, l'elaborazione vera e propria (il calcolo cioè del mezzo milione di successioni...) viene eseguita da una procedura stilata in linguaggio C che gira in parallelo al programma principale (in Visual Basic™); chi avesse Windows 2000 o NT, può verificare col Task Manager che questa applicazione (MandC.exe) assorbe il 99% delle risorse di elaborazione del PC. Comunque, mentre MandC.exe itera mandelbrottescamente fra un punto e l'altro, esso scambia col programma principale 2 informazioni:

In particolari circostanze, il tasto maggiore di questo riquadro è privo di icona; ciò avviene sempre quando esso è disabilitato (ad esempio durante una elaborazione d'immagine); ma anche nei casi in cui non è possibile per il programma recuperare l'icona stessa da visualizzare (a seguito della selezione di una delle Ultime immagini, vedere 5° RIQUADRO). In tali casi, il tasto è però attivo e può essere premuto per generare la successiva immagine desiderata.

L'uso della selezione Colorazione automatica è descritto nella pagina Criteri di colorazione Vai alla pagina sui criteri di colorazione


RIQUADRO

Questo riquadro può essere utilizzato per riesumare le 10 immagini prodotte più di recente, utilizzando i tasti con le frecce; una volta selezionata, un'immagine viene resa Attiva (e viene visualizzata) con l'omonimo tasto; ciò significa che la selezione di ulteriori riquadri e sottoriquadri può riprendere dall'immagine che si è scelto di ripristinare, tramite il menù di selezione riquadri.

Le ultime immagini memorizzate sono solo 10 per ragioni di memoria dei vari PC; ciascuna di esse occupa un paio di MBytes...

Col tasto Esci si ripristina la stessa situazione che si aveva prima di entrare in questo riquadro.

ATTENZIONE! Questo riquadro, per come è realizzato attualmente il programma, presenta qualche lieve incompatibilità con altre possibili operazioni;

... really sorry for these troubles...


RIQUADRO

Man mano che si generano immagini, può venir voglia di memorizzarle sul proprio PC. Il programma permette di farlo in due modi diversi: premendo sul tasto File, l'ultima immagine ricavata (e presente sullo schermo) viene memorizzata su un file di tipo BMP, e dotata del nome corrispondente alla denominazione descritta nel 1° RIQUADRO. La memorizzazione avviene nella sottodirectory Immagini.

In alternativa, se si vuole evitare di invadere il proprio computer con troppi files da un paio di MBytes ciascuno, si possono salvare semplicemente le informazioni di realizzazione delle immagini. Una volta ottenuta una zoomata interessante, premendo Salva in questo riquadro vengono trascritti su un apposito file di testo la denominazione dell'immagine e le specifiche di colorazione, cioè tutto ciò che serve per riprodurre l'immagine in un secondo momento. Viene inoltre salvata una piccola icona (4 KByte) a ricordare sommariamente l'aspetto dell'immagine. Il tutto viene immagazzinato nella sottodirectory BeiLuoghi (!).

In seguito, le varie icone memorizzate possono essere scorse tramite i tastini con le frecce, ed una qualsiasi delle immagini complete può essere rigenerata premendo Attiva, e poi subito dopo il tasto di generazione immagine del 4° RIQUADRO.

Il tasto Elimina abolisce una delle icone, nonché le relative specifiche di realizzazione.


Infine, il pannello di comando ha in basso 3 tasti:


Scarica qui il programma Mandelbrot!

Nota importante: il programma funziona con risoluzione 1024 x 768 pixel o superiore (ed almeno 65.536 colori); configurare lo schermo concordemente a tali indicazioni prima di eseguirlo.


   2 marzo 2003, Bruno Davide     Scrivi a Bruno DAVIDE


Vai alla genealogia  Torna a home page  Invia informazioni  Legge sulla privacy  Copyrights ©