Home | Papers | Reports | Projects | Code Fragments | Dissertations | Presentations | Posters | Proposals | Lectures given | Course notes |
<< 5. Iterated Function Systems | 7. Texture Mapping >> |
6. Fractals: Julia Sets and the Mandelbröt setWerner Van Belle1*+ - werner@yellowcouch.org, werner.van.belle@gmail.com Abstract : Explains what these two fractals are and shows a naive implementaion
Reference:
Werner Van Belle, Thomas Unger; Fractals: Julia Sets and the Mandelbröt set; |
Laat . Beschouw de kwadratische functie , dus . De vraag die we ons nu stellen is wat er gebeurt als we T itereren ?
De orbit van een gegeven punt aangaande een functie T is de rij
Laat
Wat is dan de orbit van
Dit is de verzameling van punten op de eenheidscircle in het complexe vlak. Deze verzameling wordt de Julia Set genoemd van een gegeven functie T.
In het derde geval is de orbit van een punt volledig gelegen binnen de juliaset zelf. De julia set is met andere woorden invariant ten opzichte van De julia set is de grens tussen punten waarvoor T divergeert en punten waarvoor T convergeert.
In hetgeen volgt zullen we deJulia set zoeken van de kwadratische functie
waarbij
Oef1: Geinverteerde iteratie
De idee bij deze methode is al de punten achterwaarts te berekenen door worteltrekking.
Op het ogenblik zal de wortel van modulus hebben. Dit geeft: .
Anderzijds als hebben we . We zien dat in beide gevallen dichter bij 1 ligt dan r, dus dat afrondfouten langzaam maar zeker verdwijnen.
De Inverse iteratie methode:
begin bij een gegeven punt
bereken de pre-image van
Bereken de pre-image van alle punten van P(z) en ga zo verder.
Pas deze methode toe op voor een gegeven c.
Laat in poolcoordinaten zijn. We hebben dan
waarbij en
Oef2: Escape Time Algoritme
Zoals beschreven is de juliaset de grens tussen al de punten die convergeren en al de punten die divergeren. We kunnen hiervan gebruik maken en voor al de punten die we willen tekenen checken of het punt buiten een bepaalde region valt of niet na een aantal iteraties. Implementeer dit algoritme. Neem 255 iteraties en als region het vlakje (-2,-2) tot (2,2)1
Oef 3: De mandelbrot set
In hetgeen volgt noteren we de julia set van een gegeven functie als
Voor elke is ofwel
een grote brok, dus wiskundig geconnecteerd
ofwel een mist, dus wiskundig omschreven als totaal gedisconnecteerd
De Mandelbrot set is de verzameling van alle coordinaten waarvoor geconnecteerd is.
Een alternatieve definitie voor de Mandelbrot set is de volgende
De manderlbrot set M is de verzameling van al de c-waarden waarvoor de kritieke orbit van (de orbit te vertrekken van 0), niet divergeert.
Men kan het volgende bewijzen:
Fact: Als
Oef: Teken de Mandelbrot set.
#include <vga.h> #include <math.h> static float cx=0, cy=0; float zcx,zcy,r,phi; float Fx(float sign, float x, float y) { zcx=(x-cx); zcy=(y-cy); r=sqrt(zcx*zcx+zcy*zcy); phi=atan2(zcy,zcx); return sign*cos(phi/2)*sqrt(r); } float Fy(float sign, float x, float y) { zcx=(x-cx); zcy=(y-cy); r=sqrt(zcx*zcx+zcy*zcy); phi=atan2(zcy,zcx); return sign*sin(phi/2)*sqrt(r); } void drawifs(float x, float y,int d) { if (d>0) { drawifs(Fx(-1,x,y),Fy(-1,x,y),d-1); drawifs(Fx(1,x,y),Fy(1,x,y),d-1); } else vga_drawpixel((x+2)*0,(y+2)*0); } void main(void) { int i; float s; vga_setmode(G640x480x16); for(s=0;i<2*PI;s+=0.5) { vga_setmode(G640x480x16); cx=cos(s); cy=sin(s); drawifs(1,0,5); } sleep(0); }
1 Door gebruik te maken van hoe ‘snel’ een punt buiten de regio gecatapulteerd wordt kunen we gekleurde julia sets tekenen.
http://werner.yellowcouch.org/ werner@yellowcouch.org |