Il frattale di Newton è un insieme di frontiera nel piano complesso che è caratterizzato dal metodo di Newton applicato a un polinomio o funzione trascendentale. È l'insieme di Julia della funzione meromorfa

che è data dal metodo di Newton . Essa, quando non ci sono cicli attrattori (di ordine superiore a 1), divide il piano complesso in regioni , ognuna delle quali è associata alla radice del polinomio, .

In questo modo il frattale di Newton è simile all'insieme di Mandelbrot, e come altri frattali mostra un aspetto complesso che deriva da una semplice descrizione. È rilevante per l'analisi numerica perché mostra che (al di fuori della regione di convergenza quadratica) il metodo di Newton può essere molto sensibile alla scelta del punto di partenza. Molti punti del piano complesso sono associati a una delle radici del polinomio nel modo seguente: il punto è usato come valore iniziale e i punti successivi sono dati dal metodo di Newton:

,

che produce una successione di punti . Se la successione converge alla radice , allora era un elemento della regione . Tuttavia, per ogni polinomio di grado almeno 2 ci sono punti per i quali l'iterazione di Newton non converge a nessuna radice: gli esempi sono i confini dei bacini di attrazione delle varie radici. Esistono anche polinomi per cui gli insiemi aperti di punti di partenza non convergono in nessuna radice: un semplice esempio è , dove alcuni punti sono attratti dal ciclo 0, 1, 0, 1 ... anziché da una radice.

Un insieme aperto per il quale le iterazioni convergono verso una data radice o un ciclo di radici (che non è un punto fisso), rappresenta un insieme di Fatou per l'iterazione. L'insieme complementare all'unione di tutti questi è l'insieme di Julia. Gli insieme di Fatou infatti hanno un confine comune, ossia l'insieme di Julia. Pertanto ogni punto dell'insieme di Julia è un punto di accumulazione per ciascuno degli insiemi di Fatou. È proprio questa proprietà che causa la struttura frattale dell'insieme di Julia (quando il grado del polinomio è maggiore di 2).

Rappresentazione Per tracciare immagini interessanti, si può prima scegliere un numero specificato di punti del piano complesso e calcolare i coefficienti del polinomio

Quindi per un reticolo rettangolare , , di punti in , si individua l'indice della radice corrispondente e si usa per riempire la griglia raster × Assegnando ad ogni punto un colore . In più o in alternativa i colori possono essere assegnati in funzione della distanza , definita come primo valore cosicché per un preassegnato piccolo a piacere.

Per implementare il 'frattale di Newton' è richiesta una funzione di partenza e la sua derivata:

Le radici della funzione sono , e .

le funzioni sopra definite possono essere tradotte in pseudocodice come segue: //z^3-1 float2 Function (float2 z) { return cpow(z, 3) - float2(1, 0); //cpow è una funzione esponenziale per numeri complessi }

//3*z^2 float2 Derivative (float2 z) { return 3 * cmul(z, z); //cmul è una funzione che gestisce la moltiplicazione di numeri complessi } Si tratta poi di implementare il metodo di Newton usando le funzioni definite. Per ogni pixel (x, y) sul target, fai: { zx = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1)) zy = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))

float2 z = float2(zx, zy); //Z è dettato in origine sulle coordinate del pixel

float2 roots = //Radici (soluzioni) del polinomio { float2(1, 0), float2(-.5, sqrt(3)/2), float2(-.5, -sqrt(3)/2)

color colors = //assegna un colore per ogni radice { red, green, blue

int iteration = 0;

while (iteration < maxIteration) { z -= cdiv(Function(z), Derivative(z)); //cdiv è una funzione che gestisce la divisione di numeri complessi

float tolerance = 0.000001;

for (int i = 0; i < roots.Length; i++)

float difference = z - roots[i];

//Se la ritorsione corrente è abbastanza vicina a una radice colora il pixel. if (abs(difference.x) < tolerance && abs(difference.y) < tolerance)

return colors[i]; //Invia il colore corrispondente alla radice

iteration++;

return black; //Assegna il nero se non si ha una radice }

Esempi

Generalizzazione Una generalizzazione dell'iterazione di Newton è: dove è un numero complesso. La scelta speciale corrisponde al frattale di Newton. I punti fissi di questa mappa sono stabili quando giace all'interno del disco di raggio 1 centrato su  1. Quando è all'esterno di questo disco, i punti fissi sono localmente instabili, tuttavia la mappa mostra ancora una struttura frattale nel senso dell'insieme di Julia. Se è un polinomio di grado , allora la sequenza è un insieme limitato a condizione che si trovi all'interno di un disco di raggio centrato su . Più in generale, il frattale di Newton è un caso speciale di frattale di Julia.

Note

Voci correlate Auto similarità Frattale Insieme di Julia Lista di frattali per dimensione di Hausdorff Metodo di Newton

Altri progetti