Oké, fractaluitleg. Een fractal is wiskundig gezien eigenlijk alleen een verzameling punten. in een vlak (het complexe vlak om precies te zijn). Een punt hoort of wél bij die verzameling, of niet.
Bron: Wikimedia Commons. Maker: Connelly. Publiek Domein.Hier boven zie je dus de Mandelbrotverzameling in het complexe vlak. Zwart hoort er wel bij, wit niet. Waar komen dan die kleurtjes vandaan? Dat heeft te maken met het rekenproces dat bepaalt of zo’n punt in het vlak zit of niet.
Een complex getal bestaat uit een reële en een imaginaire component, doorgaans geschreven als
a +
bi,
a is de reële component,
b de imaginaire. Dit zie je ook hierboven. Het punt (1 + 0i) ligt bijvoorbeeld ‘op de x-as’, d.w.z. de horizontale, of eigenlijk reële as, het punt (0 + i) ligt op de verticale as, of imaginaire as. En het punt (1 + i) ligt in het kwadrant rechtsboven.
Complexe getallen kun je vrij eenvoudig optellen en aftrekken, dat is ongeveer zoals je zou verwachten: (2 + 3i) + (5 + 4i) = 7 + 7i. Vermenigvuldigen is ook niet zo raar, dat geeft: (2 + 3i)(5 + 4i) = (10 + 8i + 15i + 12i
2) = (10 + 23i + 12i
2). Alleen nu is er wel een ding speciaal, er geldt namelijk
i2 = -1. Dus we kunnen het vorige getal schrijven als (-2 + 23i).
Dat is dus de bekende
i2 = -1, of soms ook als
i = √(-1) geschreven. Als je dit weet, weet je eigenlijk al genoeg om die Mandelbrot fractal te kunnen teken.
Je pakt namelijk een punt uit dit complexe vlak, zeg
c, en dan zeg je:
z1 =
c,
z2 =
z1*
z1 +
c,
z3 =
z2*
z2 +
c, en zo voort. Of in z’n algemeenheid:
zn+1 =
zn*
zn +
c. Voor sommige waarden van
c levert dit een heel groot getal op, dat steeds maar groter wordt. Die zitten
niet in je verzameling. Voor sommige waarden geldt dat het getal niet steeds groter wordt. Neem bijvoorbeeld
i:
z1 =
iz2 =
i*
i +
i = -1 +
iz3 = (-1 +
i)
2 +
i = (
i2 - 2
i + 1) +
i = -
iz4 = (-
i)
2 +
i = -1 +
iz5 =
z3En zo voort. We komen dus in een rondje terecht. Probeer het eens voor
c = 1:
z1 = 1
z2 = 1*1 + 1 = 2
z3 = 2*2 + 1 = 5
z4 = 5*5 + 1 = 26.
Dit gaat dus hopeloos mis, dit punt verdwijnt. De truc is nu: wanneer weet je zeker dat zo’n punt verdwijnt? Zoals je ziet kan een punt namelijk ‘op en neer klappen’ zoals in het geval van
c =
i. Als je rond de oorsprong een cirkel trekt met straal 2 in bovenstaand figuur, dan is het zeker dat als je iteratie een keertje buiten die cirkel komt, dat het dan misgaat.
Op deze manier kunnen we ook tot de kleuren komen: We tellen hoe vaak we bovenstaand proces moeten uitvoeren om buiten die cirkel te geraken. Dan krijg je zoiets:
Bron: Wikimedia Commons. Maker: Wolfgang Beyer. Licentie: CC-BY-SA.De zwarte punten zitten dus in de verzameling, de gekleurde niet. En je ziet heel duidelijke banden met dezelfde kleur. De meer roodachtige aan de buitenkant zijn direct al weg in feite; de rood-paarse kleur daarbinnen doet er 1 iteratie over, die daarbinnen 2, de blauw tinten nog langer, en de groen tinten nog weer langer, en de paarse tinten binnenin, grenzend aan het zwarte vlak, doen er nóg weer langer over.
Die kleuren geven dus eigenlijk vooral het berekeningsproces weer, en hoe lang je erover doet om te berekenen dat zo’n punt
niet in de verzameling zit, maar zijn niet ‘de fractal zelf’ ook al wordt misschien vaak wel zo geassocieerd. De fractal zelf, de Mandelbrotverzameling in dit geval is dus het zwarte.
Maar hoe komt men dan aan zo’n afbeelding?
Bron: Wikimedia Commons. Maker: Wolfgang Beyer. Licentie: CC-BY-SA.Waarom zie je daar niet van die duidelijke strepen met dezelfde kleur? Dat is in feite gewoon een bewerkingstruc. Die strepen worden als het ware uitgevlakt en in een continue overgang geplaatst. Stel dat je een punt
c hebt dat na
n iteraties ‘buiten de cirkel is gekomen’ dan hoort daar dan de volgende waarde bij:
v =
n - log
2log
2 |
zn|, hier is
zn dus het punt dat voor het eerst buiten de cirkel valt, |
zn| geeft de afstand van dat punt tot de oorsprong (dus als rechte lijn gezien). Op deze manier krijg je een continu waardenverloop: immers punten die net ietsje verder weg komen krijgen een iets andere kleur. De truc is nu om die waarden ook nog op geschikte kleuren af te beelden.. Maar als je dat doet, dan krijg je dus zulke mooie, vloeiende, afbeeldingen.
De moeilijkheid, en het fascinerende aan fractals is, dat je op een gegeven moment je iteratie moet afkappen. Je kunt wel zeker weten dat een punt
niet in de verzameling zit, en van sommige punten is ook duidelijk dat ze er wél inzitten, maar op het grensvlak is het vaak niet duidelijk. Het enige dat je dan kunt doen is gewoon rekenen. 100 iteraties proberen en kijken of het punt al ontsnapt. Of 1000. Of 10000. En zo voort. In die zin is een fractal dus altijd een benadering. Die grenspunten ontsnappen misschien niet na 1000 iteraties, en zijn daarom zwart gekleurd, maar mogelijk wel na 10000!
Dat is ook de reden dat men (alleen) kan zeggen: de oppervlakte van de verzameling is 1,506 591 77 ± 0,000 000 08. Om dat
precies uit te rekenen zou je oneindig lang moeten doorrekenen. Er is geen formule met een exacte uitkomst te geven.
Zo’n tekening is dus altijd een benadering. Het grappige is ook dat de uitvinder van deze verzameling, Benoît Mandelbrot, in het begin, op basis van zulke computerafbeeldingen dacht dat de verzameling niet verbonden was, m.a.w. dat je niet via een zwart punt over alleen maar zwarte punten naar elk ander zwart punt kunt komen. Er zouden dus eilandjes zijn. Dat vermoeden was gebaseerd op tekeningen gerenderd door de computer waarbij heel dunne haarlijntjes niet zichtbaar waren. Je moet immers kiezen hoe nauwkeurig je zoiets doet. Als je
c = -1.1 en
c = 1.2 uitrekent, moet je dan
c = 1.15 ook nog doen? En
c = 1.155? En
c = 1.1555? Je moet
ergens stoppen. Het kan best dat dus in je tekening twee pixels naast elkaar beiden een kleurtje hebben, maar dat er tussen eigenlijk nog een – in die tekening onzichtbaar – zwart lijntje loopt.
Inmiddels is bewezen dat de gehele verzameling wel verbonden is, maar die inzoomfilmpjes die je ziet tonen aan dat je in principe steekds maar kunt vergroten en vergroten op de grens en telkens nieuw detail ziet. En wát je dan precies ziet, dat is pas te zeggen nadat het is uitgerekend. Je kunt dus niet een patroon ontdekken voorspellen. Ter vergelijking, een breuk als 1/7 ≈ 1,142857142857, maar die herhaalt zichzelf telkens. Je kunt zo voorspellen dat cijfer 1, 7, 13, 19, enz. een 1 zijn. Als iemand dus wil weten wat cijfer 283043 achter de komma is kun je dat direct zeggen zonder tot 283043 cijfers achter de komma door te rekenen omdat er een patroon in zit. Dat kan bij zo’n fractal niet. Je moet het helemaal uitrekenen.
Daher iſt die Aufgabe nicht ſowohl, zu ſehn was noch Keiner geſehn hat, als, bei Dem, was Jeder ſieht, zu denken was noch Keiner gedacht hat.