|
Pythagoras december 1998Julia fractals en quaternionen | ||||||||||||||||||
door Martijn Dekker
Simpele herhalingenLaten we eerst eens kijken wat nou eigenlijk een Julia fractal is. Stel dat f(x)=x2+1. Kies een getal a0 en bereken daarmee een nieuw getal a1 door a1 = f(a0). We kunnen met a1 weer een nieuw getal a2 berekenen door a2 = f(a1) te nemen, etc. Zo kunnen we door een beginwaarde a0 te kiezen een hele rij getallen. In het algemeen kunnen we deze rij opschrijven als
an+1 =f(an). Hoe deze rij eruit ziet hangt natuurlijk af van de gekozen beginwaarde a0. Voor sommige keuzes van a0 zal an steeds groter worden als n groter wordt, voor andere keuzes van a0 wordt an mischien heel klein als n steeds groter wordt en voor weer andere keuzes zal de rij heen weer slingeren en niet naar een bepaalde waarde doorgroeien. Een Julia fractal is de verzameling punten a0 waarvoor de rij an niet divergeert ofwel, waarvoor an niet oneindig groot wordt als je n steeds groter kiest. Zo'n fractal kun je dus tekenen door voor iedere beginwaarde a0 te kijken of de rij divergeert of niet. Divergeert de rij dan kleuren we a0 wit en anders kleuren we hem zwart. Als we voor a0 reele getallen nemen levert dat niet echt leuke plaatjes op, interessanter wordt het als we voor a0 een punt in het vlak zouden kunnen kiezen. Maar wat is het kwadraat van een punt in het vlak? En hoe tel je twee punten bij elkaar op? Dit kan door ze als complexe getallen te beschouwen.Complexe getallenEen complex getal is van de vorm a+bi waarbij a en b reele getallen zijn en i een imaginair getal is met de eigenschap dat i2 = -1. Een punt in het vlak met coordinaten (a,b) stelt het complexe getal a+bi voor. Wat is nu het kwadraat van een punt (a,b)? Dat bereken je als volgt: En a2 - b2 + 2abi komt overeen met het punt (a2-b2, 2ab). Dus dat punt is het kwadraat van (a,b)! Optellen is helemaal eenvoudig: (a+bi) + (c + di) = a+c + (b + d)i. Dus je telt punten coordinaatsgewijs bij elkaar op. Een rij punten in het vlak divergeert als de punten steeds verder van de oorsprong komen te liggen. Door voor an geen reele maar complexe getallen te kiezen, is de Julia fractal die je krijgt 2-dimensionaal en dus goed te tekenen. Door voor f een goede formule te kiezen krijg je mooie figuren. Een voorbeeld van zo'n Julia fractal is het volgende plaatje. De punten die een niet divergerende rij punten opleverden zijn zwart getekend. De functie f die we gebruikten om dit plaatje te krijgen is fC(x) = x2 + C met C=0.376 - 0.25i.
Dit plaatje laat zien dat een simpele formule mooie plaatjes oplevert als je die formule maar vaak genoeg herhaalt, of itereert. Tot zover de twee dimensionale plaatjes. Nu op naar vier dimensies. QuaternionenWe hebben gezien dat itereren van simpele formules toegepast op complexe getallen leuke 2-dimensionale plaatjes oplevert. Nu gaan we een stap verder. De dimensie van de plaatjes die we krijgen wordt duidelijk bepaalt door de dimensie van verzameling van mogelijke beginwaarden a0. Bij complexe getallen is die dimensie twee dus krijgen we platte 2-dimensionale plaatjes. Is het ook mogelijk om hoger dimensionale fractals te maken? Het antwoord is ja. We gaan 4-dimensionale fractals maken door geen complexe getallen te gebruiken maar quaternionen. Quaternionen lijken veel op complexe getallen. Een quaternion is een getal van de vorm a+bi+cj+dk waarbij a, b, c en d reele getallen zijn en i, j en k imaginaire getallen met de eigenschap dat i2 = j2 = k2 = -1. Verder geldt ij = k, ji = -k, jk = i, kj = -i, ki = j en ik = -j. Met deze rekenregels kun je quaternionen makkelijk vermenigvuldigen en optellen. Een quaternion a+bi+cj+dk kun je opvatten als een punt (a,b,c,d) inf(x) = x2 + 1, en kijk of het rijtje divergeert. Zo nee, dan hoort je gekozen quaternion tot een Julia fractal, en kleuren we het punt bijbehorende punt (a,b,c,d).
In plaats van de formule f(x) = x2 + 1 kunnen we iedere functie fC(x) = x2 +C kiezen, en voor iedere waarde van C krijgen we een andere Julia fractal. Nu kunnen we mooie plaatjes gaan maken: kies je favoriete quaternion C en gebruik de functie fC om te itereren.
Omdat quaternionen vier dimensionaal zijn is zo'n Julia fractal een deelverzameling van 4-dimensionale plaatjesOmdat een Julia fractal van quaternionen 4-dimensionaal is ze veel moeilijker te tekenen dan Julia fractals van complexe getallen. We passen een truc toe. We gaan niet de hele Julia fractal tekenen maar enkel een dwarsdoorsnede. Zo'n doorsnede maken we door niet alle punten (a,b,c,d) in de fractal te tekenen, maar enkel die punten (a,b,c,d) in de fractal waarvoor d een vast gekozen waarde heeft, bijvoorbeeld . Deze dwarsdoorsnede is dus 3-dimensionaal, en dat is al wat makkelijker te tekenen. Hieronder staat een plaatje van zo'n dwarsdoorsnede (d=0). De figuur toont alle punten (a,b,c,0) die een rijtje opleveren die niet divergeert.
Nu is het natuurlijk zo dat als je een andere dwarsdoorsnede zou nemen, dat het plaatje dan veranderd. Hieronder zie je een aantal plaatjes van de zelfde julia fractal maar met steeds andere dwarsdoorsnedes.
Zoals je ziet spelen nogal wat factoren een rol: de waarde van C in fC(x)=x2+C bepaalt de Julia fractal. Daarnaast kies je een dwarsdoorsnede door de vierde coordinaat d een vaste waarde aan te laten nemen (meestal 0). Bij het kiezen van de waarde van C speelt een andere fractal een grote rol: de Mandelbrot verzameling. Het voert vrij ver om uit te leggen welke rol deze fractal precies speelt, maar op http://www.pff-software.demon.nl/qjn/qjn.htm is hier meer informatie over vinden. Het beste beeld van hoe die 4-dimensionale Julia fractal eruit ziet krijg je door voor veel waarden van d de doorsnede te tekenen en dan al deze plaatjes achterelkaar te plakken zodat je een filmpje krijgt. Een 4-dimensionaal plaatje kun je weergeven als een filmpje van 3-dimensionale plaatjes. Zo'n filmpje kun je op Internet tonen; kijk op www.pff-software.demon.nl/qjn/qjn.htm. QJNFractals zijn mooi om naar te kijken, maar het leukst is het om ze zelf te maken. Ik heb daarom een computerprogramma geschreven waarmee je makkelijk Julia fractals met quaternionen maakt: QJN, de "Quaternion Julia Navigator". De illustraties bij dit stukje zijn allen gemaakt met QJN. Dit programma kun je ophalen op Internet, surf even naar www.pff-software.demon.nl/qjn/qjn.htm. Je vindt daar een uitgebreide beschrijving van het programma, en natuurlijk vele voorbeelden en filmpjes. Met dit programma kun je ook allerlei trucs uithalen met de fractals. Zo kun je ze roteren, een ander kleurtje geven of kiezen voor een andere belichting. Het tekenen van deze 3-dimensionale plaatjes op een 2-dimensionaal computerscherm vergt ook enige wiskunde. Wie weet hierover meer in Pythagoras.
LinksWarning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead in /websites/users/pyth/public_html/pythwww/common/footer.php on line 5 | |||||||||||||||||||
| Laatst bijgewerkt op: Tuesday 27 May 2003, 14:10 | |||||||||||||||||||