Introduzione ai frattali di Mandelbrot e di Julia
Nota del 29 dicembre 2022: State per leggere uno dei primissimi articoli che ho scritto e messo online nella prima versione del sito caricata su Geocities nell'ormai lontano agosto del 1998 (ho trovato su Internet Wayback Machine una versione del 2001). Sembra che qualcuno cerchi ancora informazioni sull'argomento, spero che possa essere utile. All'epoca c'erano anche degli esempi in Visual Basic per DOS!Cos'è un "frattale"?
Una vista sul piano complesso
Gli insiemi di Julia
L'insieme di Mandelbrot
Conclusioni
Introduzione
Spesso, soprattutto in questi ultimi anni, capita di imbattersi nelle elaborate e sicuramente affascinanti immagini chiamate, con un nome un po' curioso, frattali. Osservando queste immagini, viene da chiedersi quale misterioso segreto matematico esse racchiudano e quali siano le loro caratteristiche. Questo documento è stato elaborato allo scopo di spiegare, anche se non in maniera eccessivamente approfondita, due delle principali famiglie di frattali che possono venire rappresentati, ovvero gli insiemi di Julia e l'insieme di Mandelbrot. Per la lettura di questo documento, è consigliabile avere una conoscenza anche approssimativa della matematica complessa (che, in fondo, per quel che serve a noi, non è affatto tale!).Cos'è un "frattale"?
Per essere riconosciuto come tale, un frattale deve possedere alcune caratteristiche fondamentali:- Autosomiglianza: se dettagli vengono osservati a scale differenti, si nota sempre una certa somiglianza approssimativa con il frattale originale.
- Risoluzione indefinita: non è possibile definire in modo netto ed assoluto i confini dell'insieme (i bordi dell'immagine)
I principi dei frattali
Iniziamo ora ad addentrarci un poco più approfonditamente nel mondo della matematica dei frattali. Una caratteristica comune alle due famiglie di frattali che analizzeremo (esistono molti tipi diversi di frattali) è che sono degli insiemi di punti che soddisfano determinati requisiti, come vedremo in seguito. Poichè abbiamo parlato di punti, sorge naturale il quesito di dove questi punti vengano presi, se su di una retta, su di un piano o su di uno spazio ad n dimensioni, ovvero, rispetto a quale sistema di coordinate essi vengano riferiti. In teoria, i frattali in questione non sono affatto vincolati ad essere rappresentati su di un piano e possono benissimo essere estrapolati per un qualsiasi numero di dimensioni; il fatto che essi siano solitamente tracciati bidimensionalmente è semplicemente dovuto a comodità di rappresentazione. Ma procediamo con calma! Per i nostri frattali, useremo come formula generatrice la seguente: Z=z*z+c; chi mastica un po' di analisi si renderà subito conto che si tratta di una parabola traslata rispetto all'origine in base al termine noto c. Quello che interessa a noi tuttavia non è la solita rappresentazione sul piano cartesiano (ovvero secondo un incremento della variabile indipendente), ma come si comporta, dato un punto di partenza, reimpostando nell'equazione i risultati della elaborazione precedente (z=Z) e proseguendo generando una successione di numeri reali il cui comportamento dipende dalla scelta del punto di partenza, nonchè di c. E' proprio questo che genera l'indefinitezza che è una delle caratteristiche peculiari di tali costruzioni matematiche, ovvero la possibilità di iterare virtualmente all'infinito per ciascun punto prima di passare al succesivo. Ecco cosa si intende:
f(f(f(f(...))))
E' necessario un esempio, perchè gran parte della difficoltà iniziale che si incontra avvicinandosi a questo tipo di frattali viene proprio da questo. Più o meno tutti, nella nostra vita, abbiamo pasticciato un po' battendo a caso i tasti di una calcolatrice tascabile ed abbiamo potuto constatare come, battendo un numero anche molto grande, premendo un certo numero di volte il tasto della radice quadrata, si pervenga sempre al risultato 1 (in realtà vi si giunge anche perchè la precisione di macchina della calcolatrice non può essere infinita). La funzione radice quadrata dunque per ricorrenza si avvicina asintoticamente all'unità. Allo stesso modo, l'elevazione a potenza tende all'infinito impostando un numero >1, a zero impostando un numero <1 e con 1, il risultato rimane costante sull'unità. Dunque, data una condizione di partenza, possiamo analizzare sotto questo aspetto come si comporta, ovvero se tende all'infinito, se tende a zero, o se rimane stabile. Dalla determinazione delle condizioni di partenza, dipendono le differenze fra gli insiemi di Julia e l'insieme di Mandelbrot.
Una vista sul piano complesso
Abbiamo precisato che i frattali vengono usualmente rappresentati su
di un piano ed è ora di chiarire un poco meglio la natura e le caratteristiche
di esso, nonchè il sistema cartesiano utilizzato come riferimento.
Per fare ciò è necessario presentare alcune informazioni
sui numeri immaginari e complessi e come questi ultimi possano essere rappresentati
su di un piano. I numeri immaginari e complessi nascono dalla necessità
di possedere un qualche modo per esprimere le radici quadrate di numeri
negativi, oggetti che non possiedono "diritto di cittadinanza" all'interno
di R, l'insieme dei numeri reali.
Per numero immaginario si intende l' unità immaginaria moltiplicata
per un coefficente, detto appunto coefficente immaginario. Per unità
immaginaria (di solito rappresentata con la lettera i o j), si intende
la radice quadrata di -1.
Un binomio formato da un coefficente reale sommato algebricamente ad
un numero immaginario forma un binomio complesso che è formato
da due parti chiamate appunto parte reale e parte immaginaria.
Per esempio:
5+2i
è un numero complesso la cui parte reale è 5 e la cui
parte immaginaria è 2.
E' possibile effettuare pressochè qualsiasi tipo di operazione
su tali binomi applicando semplici calcoli algebrici.
Per cui:
(a+bi)+(c+di)=(a+c)+(b+d)i
(a+bi)(c+di)=ac-bd+(ad+bc)i
dove ovviamente i*i=-1 !
... e via dicendo.
In quanto binomio, ciascun numero complesso può essere considerato
come una coppia ordinata, tranquillamente rappresentabile su di un piano
cartesiano, previa scelta di un'origine e di unità di misura. Tale
rappresentazione ha il nome di piano di Gauss (o di Argand)
ed ha interessantissime applicazioni in un sacco di campi differenti della
matematica e della fisica che usano in maniera massiccia i numeri complessi,
dalla teoria dei circuiti elettronici alla meccanica quantistica.
E' consigliabile raggiungere una buona manualità con i numeri
complessi prima di proseguire nell'introduzione: si provi per esempio a
calcolare in sequenza le potenze di i, a rappresentare numeri diversi
sul piano complesso ed altro. Ogni corso universitario di geometria dedica
una parte del programma ai numeri complessi!
Gli insiemi di Julia
Possiamo adesso entrare un poco più in dettaglio ed affrontare i principi di determinazione dei frattali della famiglia di Julia, che si presentano molto diversamente a seconda della scelta del termine noto c.
- Si supponga considerare una piccola porzione attorno all'origine di un piano complesso di intervallo (-2,-2)-(2,2).
- Si scelga un binomio complesso c assegnando valori del tutto arbitrari alla parte reale ad alla parte immaginaria.
- Si sostituiscano, per ogni punto considerato, le corrispondenti coordinate complesse alla variabile z, nell'equazione Z=z*z+c.
- Si calcoli il valore di Z.
- Se si trova che la distanza di Z dall'origine è maggiore di due, si salti al passo 7. Per calcolare tale distanza, si adotta il teorema di pitagora nel seguente modo: dato Z=a+bi, il quadrato della distanza d dall' origine sarà d2=a2+b2.
- Se no, si incrementi di 1 un contatore e si torni al passo 4, se il contatore ha un valore inferiore al numero di iterazioni massime prefissato, dopo aver posto z=Z.
- Si colori il punto di un colore diverso a seconda del valore del contatore.
- Si azzeri il contatore e si ritorni al passo 3 per calcolare il colore del prossimo punto.
- Il procedimento avrà termine quando tutti i punti interessati saranno stati processati in questo modo.
Buoni risultati si ottengono assegnando a c dei coefficenti reali ed immaginari compresi fra -2 e 2.
Vi sono infiniti insiemi di Julia poichè la scelta di c non deve sottostare a nessuna restrizione.
L'insieme di Mandelbrot
L'insieme di Mandelbrot si presenta come un otto disposto in orizzontale sfrangiato e simmetrico rispetto all'asse delle ascisse.
- Si supponga considerare una piccola porzione attorno all'origine di un piano complesso di intervallo (-2,-2)-(2,2).
- Si sostituiscano, per ogni punto considerato, le corrispondenti coordinate complesse al termine noto c, nell'equazione Z=z*z+c, ponendo inizialmente z=0+0i.
- Si calcoli il valore di Z.
- Se si trova che la distanza di Z dall'origine è maggiore di due, si salti al passo 6. Per calcolare tale distanza, si adotta il teorema di pitagora nel seguente modo: dato Z=a+bi, il quadrato della distanza d dall' origine sarà d2=a2+b2.
- Se no, si incrementi di 1 un contatore e si torni al passo 3, se il contatore ha un valore inferiore al numero di iterazioni massime prefissato, dopo aver posto z=Z.
- Si colori il punto di un colore diverso a seconda del valore del contatore.
- Si azzeri il contatore e si ritorni al passo 2, per calcolare il colore del prossimo punto.
- Il procedimento avrà termine quando tutti i punti interessati saranno stati processati nel suddetto modo.
La differenza fra l'insieme di Mandelbrot e gli insiemi di Julia è che le coordinate complesse del punto del piano vengono sostituite non a z, inizialmente sempre azzerato, ma a c, che non è più una costante definita all'inizio dell'elaborazione.
Conclusioni
In questo breve intervento, si è voluto dare brevemente alcuni principi utilizzati nei frattali e fornire un metodo pratico per scrivere un programmino capace di disegnare i frattali di Mandelbrot e di Julia.
Se avete un browser che supporta Java, è possibile avere un esempio diretto delle tecniche presentate nella pagina Frattali in Java.
Page log
- December 29, 2022 - Added page log, wrote the comment.
- 2013 - Typos corrected. Added index.
- 2008 - Adaptation to new page style.
- 2002 - Corrections, improvements.
- 1998 - First version of the page.