Cenni sull'insieme di Mandelbrot


Pagina principale Mandelbrot

Uso del programma Mandelbrot Come generare insiemi di Julia Criteri di colorazione

INDICE

A) INTRODUZIONE

B) UN PO' DI CALCOLI...

C) UNA PICCOLA PRECISAZIONE

D) APPARE L'INSIEME!

E) I PUNTI IN MOVIMENTO

F) ESPLORANDO IL CONFINE


A) INTRODUZIONE

L'unico concetto matematico non banale utile a comprendere come venga fuori l'insieme di Mandelbrot (che indicherò con M) è quello di numero complesso; si dà di seguito per scontata questa conoscenza. In realtà, si potrebbe trattare la cosa restando nel campo dei numeri reali, ma la descrizione perderebbe di semplicità e di eleganza, diventando tortuosa e macchinosa...

E quindi, per chi gradisce, consideriamo una porzione del piano complesso, quella compresa grosso modo nel quadrato [-2.0 - j1.5] ÷ [+1.0 + j1.5]. Il grosso modo è lì volutamente, a preannunciare che non vi è nulla di più contorto del confine di M... cioè potremmo prendere confini diversi, ma questi ci piacciono di più...

Prendiamo allora uno qualsiasi degli infiniti punti dell'area suddetta; possiamo genericamente indicarlo con:

1) ZM = XM + jYM

Dove il pedice M sta lì in onore di Mandelbrot. Adesso calcoliamo la successione di numeri complessi costruita nel seguente modo:

2a)  Z0 = 0
2b)  Z1 = Z02 + ZM
2c) Z2 = Z12 + ZM
...
2d) ZK = ZK-12 + ZM
...

Com'è noto, ciascuno dei punti che rappresentano sul piano tali numeri disterà dall'origine del piano complesso tanto quanto il valore del suo modulo, il cui quadrato è:

3) |ZK|2 = XK2 + YK2

Beh, l'insieme di Mandelbrot  M è costituito semplicemente da tutti e soli i punti ZM per i quali il modulo dei termini della successione di cui sopra rimane perennemente limitato, per quanto si perseveri nel calcolarne elementi ulteriori... Tutto qui. O no?


B) UN PO' DI CALCOLI...

La formula principale da considerare è la 2d), che va calcolata un'innumerevole quantità di volte per poter ottenere una ragionevole rappresentazione di M; pur essendo semplicissima, per poter eseguire i calcoli occorre dal punto di vista pratico spezzarla nelle due relazioni relative alle parti reale ed immaginaria dei vari numeri ZK. Si ricava facilmente:

4a)  XK = XK-12 - YK-12 + XM
4b) YK = 2 XK-1 YK-1 + YM

E adesso vediamo, come esempio, cosa accade per due punti specifici del piano (ZMA = 0.1 + j0.2 e ZMB = 0.38 + j0.12) , due punti qualsiasi, ma scelti con un minimo di oculatezza.... calcolando per essi la prima ventina di termini della successione 2):

K XKA YKA |ZKA|2 XKB YKB |ZKB|2
0 0 0 0 0 0 0
1 0.1 0.2 0.05 0.38 0.12 0.1588
2 0.07  0.24 0.0625 0.51 0.2112 0.30470544
3 0.0473 0.2336 0.05680625 0.59549456 0.335424 0.467123031
4 0.04766833 0.22209856 0.05160004 0.622104511 0.519486335 0.656880075
5 0.052944499 0.221174135 0.051721118 0.497147971 0.766349585 0.834447791
6 0.053885122 0.223419908 0.052820062 0.039864419 0.881978282 0.779474862
7 0.052987151 0.224078018 0.053018596 -0.396296518 0.190319104 0.193272292
8 0.05259668 0.223746512 0.052828912 0.500829569 -0.030845597 0.251781708
9 0.052703909 0.223536647 0.052746335 0.629878806 0.089103226 0.404686695
10 0.052809069 0.22356251 0.052768994 0.768807926 0.232248467 0.645004977
11 0.052808602 0.223612256 0.05279119 0.917126276 0.477108925 1.068753532
12 0.052786307 0.223617301 0.052791092 0.99348768 0.995138263 1.977317932
13 0.052781697 0.223607863 0.052786384 0.376717607 2.097315208 4.540647235
14 0.052785431 0.223604805 0.052785411 -3.876814924 1.700191133 17.92034385
15 0.052787193 0.223606152 0.052786199 12.51904407 -13.06265272 327.3593604
16 0.052786777 0.223607082 0.052786571 -13.52643167 -326.94385 107075.2454
17 0.052786317 0.223606994 0.052786483 -106708.9367 8844.887293 11465029206
18 0.052786307 0.223606779 0.052786386 1.13085 1010 -1.88766 109 1.31447 1020
19 0.052786403 0.223606752 0.052786384 1.24320 1020 -4.26934 1019 1.72783 1040
20 0.052786425 0.223606792 0.052786404 1.36328 1040 -1.06153 1040 2.98539 1080

Per il primo punto (ZMA ), si vede che con le successive iterazioni i valori delle parti reale e immaginaria non crescono significativamente, sembra anzi che essi tendano a convergere verso un limite. Quindi ZMA è un buon candidato per far parte di M.

Per ZMB, dopo qualche incertezza che dura una dozzina di iterazioni, i valori schizzano invece sempre più lontano, facendo pensare stavolta che il punto in questione non appartenga all'insieme M. In effetti, in questo secondo caso possiamo essere certi che è così; si può dimostrare che se in una qualche iterazione (cioè per un dato valore di K) il modulo di ZK supera il valore 2, allora i valori relativi alle successive iterazioni saranno via via più elevati, ed il punto non appartiene quindi ad M. In formule:

5a) |ZK| > 2 Þ |ZK+1| > |ZK| Þ ZM Ï M

La 5a) è più comoda, per ragioni pratiche, riscritta così:

5b) |ZK|2 > 4 Þ |ZK+1| > |ZK| Þ ZM Ï M

Quindi, man mano che si valutano le successive iterazioni, bisogna stare attenti al modulo elevato al quadrato dei valori che via via vengono fuori; non appena esso supera 4, si può esser certi che il punto ZM da cui si è partiti col calcolo non fa parte dell'insieme. Nell'esempio in tabella, ciò capita per ZMB alla iterazione N°13 (evidenziata in rosso); in effetti sarebbe stato inutile procedere oltre, ci si poteva fermare a quel punto con la sicurezza che, proseguendo, si sarebbero ottenuti valori sempre più grandi.

Torniamo a ZMA. Per esso, in realtà, non possiamo essere certi che il punto sia davvero parte dell'insieme; chi ci dice che dopo 25 iterazioni, o 250 o 10 miliardi, anch'esso non scappi via, nel senso che il suo modulo potrebbe prima o poi superare il valore 2, tale cioè da renderlo non appartenente all'insieme? In fondo ci siamo limitati qui a 20 iterazioni... Nella pratica, solo per alcuni sottoinsiemi di punti è possibile dimostrare matematicamente che essi fanno parte dell'insieme; ad esempio, per il punto ZM = 0 + j0, tutte le iterazioni danno ZK = ZM, per cui esso fa sicuramente parte di M. Ma, nella maggior parte dei casi, si procede più o meno empiricamente; si fissa un limite massimo alle iterazioni eseguibili, e se dopo averlo raggiunto il modulo elevato al quadrato del punto non ha superato il fatidico valore 4 fornito dalla 5b), si assume che il punto di partenza ZM faccia parte di M. O perlomeno si finge che sia così, non potendo far di meglio...


C) UNA PICCOLA PRECISAZIONE

Nelle rappresentazioni di M, per ciascun punto ZM del piano va ripetuta la sequenza di iterazioni indicate dalle formule 2). Il valore di ZM è diverso per ciascuno dei punti che vengono rappresentati, infatti man mano che ci si sposta da un punto all'altro le coordinate del punto variano, e tali coordinate nel piano complesso sono proprio le parti reale ed immaginaria di ZM; inoltre il primo valore della successione è nullo, cioè Z0 = 0.

Questa sembra essere una pedante precisazione (e forse lo è), ma è utile per capire la differenza fra l'insieme di Mandelbrot M e gli insiemi di Julia J. In effetti, i metodi di calcolo sono estremamente simili ma ovviamente non uguali; vedere quanto illustrato per gli insiemi di Julia per maggiori chiarimenti. Vai alla pagina sugli insiemi di Julia


D) APPARE L'INSIEME!

Allora, come si fa ad ottenere un'immagine dell'insieme M? In pratica, si fissa il numero massimo di iterazioni che si è disposti ad eseguire per ciascun punto del piano (chiamiamolo KMAX), si fa corrispondere ognuno di tali punti con un pixel dello schermo del PC, e per ciascun punto si eseguono i calcoli della successione 2); se dopo KMAX iterazioni non si è mai raggiunto il valore 4 per il modulo al quadrato del numero ZK, si assume che il punto faccia parte di M e lo si colora di nero. Se invece dopo K < KMAX iterazioni si è superato il valore 4, si colora il pixel corrispondente in modo diverso; come? Ad esempio con un colore differente a seconda del valore K per il quale si è superato il fatidico 4. L'immagine che appare è quella qui sotto riportata:

In questo caso, si è scelto KMAX = 100, mentre i punti che sfuggono dopo poche iterazioni sono colorati con diverse sfumature di verde, e poi via via in azzurro, viola, arancio, rosso, giallo, bianco, al crescere del relativo valore di K. Il bitorzoluto mostro nero al centro dell'immagine è M, l'insieme di Mandelbrot...


E) I PUNTI IN MOVIMENTO

Cosa fa ciascuno dei punti del piano complesso, quando per esso si calcola la successione 2)? Il comportamento dipende fortemente dal punto di partenza, cioè dal valore di ZM. Ovviamente si hanno punti che non scappano mai e punti che scappano, rispettivamente appartenenti ad  M o no. L'immagine seguente mostra il tragitto seguito da due punti appartenenti alle due categorie suddette; il primo si contorce indefinitamente attorno ad un pentagono sghembo, mentre il secondo, dopo aver tracciato un elegante ghirigoro, lascia la scena schizzando via sulla destra.

Si noti che nelle loro evoluzioni entrambe i punti stazionano a volte nella zona verde; in particolare per il primo punto, si osserva quindi che pur appartenendo esso ad M, al variare di K può passare per punti del piano che ad M non appartengono (quelli verdi o comunque non-neri).

I tragitti seguiti dai vari punti sono in generale imprevedibili, e cambiano aspetto partendo dalle diverse zone del piano; sono però simili per punti di partenza ZM vicini fra loro; le due immagini qui sotto riportate sono relative a due punti vicinissimi, il primo dei quali non appartenente ad M, il secondo sì. 


F) ESPLORANDO IL CONFINE

Dopo aver contemplato per un po' l'insieme M nel suo complesso, probabilmente si è portati a dedicarsi ad altro... Però forse forse vale la pena di osservare più da vicino quella che dell'immagine sembra la parte più interessante: il confine di M. Le desolate distese verdi e nere (di significato matematicamente opposto, in quanto costituite da punti sicuramente non appartenenti e quasi sicuramente appartenenti ad M) non hanno alcun fascino; proviamo invece a vedere cosa accade ingrandendo più volte una porzione della zona d'incertezza, quella per la quale i punti hanno bisogno di tante iterazioni prima di decidersi a scappare via... appunto la terra di confine di M.


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.


   23 gennaio 2003, Bruno Davide     Scrivi a Bruno DAVIDE


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