Fractals en chaos Wilfried Van Hirtum
Versie 1.09
2015
Copyright © 2015 Wilfried Van Hirtum Dit werk wordt vrij gegeven aan de gemeenschap en mag dus gekopieerd, verspreid en aangepast worden mits vermelding van de bron onder voorbehoud dat het resultaat blijft beantwoorden aan deze voorwaarden, dus vrij blijft voor de gemeenschap.
Colofon Dit boek is gezet met behulp van LaTeX, in de lettertypes Bitstream Charter, Source Sans Pro, Beramono. De illustraties zijn getekend met behulp van de programmeertaal Asymptote [Van Hirtum, 2008].
Bronvermelding De foto op de titelpagina is met dank ontleend aan Glenn Elert. http://hypertextbook.com/chaos/
De denkpiste van het hoofdstuk De vergelijking van een varenblad is gebaseerd op het artikel Chaos in the classroom [Devaney, 1995] van Robert L. Devaney: http://math.bu.edu/DYSYS/chaos-game/chaos-game.html, waarvoor dank. De denkpiste van het hoofdstuk Het logistisch model van Verhulst is met dank ontleend aan de presentatie van Tammo Jan Dijkema (Universiteit Utrecht) van 14 januari 2006: http://www.math.uu.nl/people/dijkema/. Zie ook het Zebra-boekje Chaos en orde van Ferdinand Verhulst [Verhulst, 2003]: http://www.epsilon-uitgaven.nl.
Inhoudsopgave 1 De vergelijking van een varenblad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.1 De meetkunde van onregelmatige vormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2 Het Chaos-spel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.3 Het chaos-spel programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Een tactisch spel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5 De mrk-machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6 De kern van de zaak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.7 De mrk-machine programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.8 De Sierpinski-zeshoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.9 De Sierpinski-driehoek: driehoekjes wissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.10 Waarom de Sierpinski-driehoek uit het chaos-spel ontstaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.11 Zelfgelijkvormigheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.12 Fractal-dimensie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.13 De vergelijking van een varenblad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.14 Het varenblad programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.15 Opdrachten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2 Het logistisch model van Verhulst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1 De constante functie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2 De exponentiële functie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3 De logistische vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4 De logistische vergelijking genormaliseerd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.5 Spelen met de parameter a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.6 Een tijdreeks programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.7 Een tijdreeks met de grafische rekenmachine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.8 Vaste punten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.9 Webgrafiek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.10 Een webgrafiek programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.11 Een webgrafiek met de grafische rekenmachine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.12 Aantrekkende en afstotende vaste punten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.13 Wanneer is een vast punt aantrekkend? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.14 Gevoeligheid voor kleine verandering in de beginwaarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.15 Een overzichtskaart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.16 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.17 Een bifurcatiediagram programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.18 Opdrachten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Oplossingen van de opdrachten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Referenties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Trefwoordenregister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Voorwoord
Le savant n’étudie pas la nature parce que cela est utile; il l’étudie parce qu’il y prend plaisir et il y prend plaisir parce qu’elle est belle. Si la nature n’était pas belle, elle ne vaudrait pas la peine d’être connue, la vie ne vaudrait pas la peine d’être vécue. — Henri Poincaré (1854 - 1912)
Omslagfoto van The Beauty of Fractals [Peitgen and Richter, 1986]
Computers brengen opwindende onderwerpen uit de wiskunde, zoals chaos en fractals in het klaslokaal. Deze thema’s zijn nieuw: vele ideeën uit deze vakgebieden zijn pas ontstaan nadat jij, de lezer, bent geboren. Ze zijn ook toepasbaar in vele domeinen zoals geneeskunde, economie, aardrijkskunde, kunst, beeldcompressie. Fractals zijn bovendien bijzonder mooi. Achter de fascinerende plaatjes ligt er subtiele wiskunde, die dikwijls nog mooier is dan de afbeeldingen zelf. Wilfried Van Hirtum Voor een eerste verkenning van fractals, bezoek de website van Paul Bourke: http://astronomy.swin.edu.au/~pbourke/fractals/
Of van Cynthia Lanius: http://math.rice.edu/~lanius/frac
Of de website van Robert Devaney: http://math.bu.edu/DYSYS
Of de volgende tekst van Ignace Van de Woestyne [Van de Woestyne, 2000]: http://www.cmmc.be/topics/download/fractalen.pdf
6
1 1.1
De vergelijking van een varenblad De meetkunde van onregelmatige vormen
Eenvoudige vormen zoals een hart of een klokvorm kunnen goed worden beschreven door cartesiaanse vergelijkingen of vergelijkingen in poolcoördinaten. Maar bestaan er ook eenvoudige formules om bijvoorbeeld een varenblad te beschrijven, of een boom met schijnbaar ontelbare vertakkingen, of het grillige oppervlak van een rotsblok, of hele landschappen zoals die voorkomen in animatiefilms? Deze onregelmatige vormen lijken bij nader inzien erg chaotisch. Maar er zit een zekere orde in deze chaos. De takken van een boom bijvoorbeeld lijken zelf op een boom. Diens zijtakken lijken ook weer op een boompje, enzovoort. We leggen deze zelfgelijkvormigheid van deze vormen vast in enkele wiskundige formules. Het is dan mogelijk om door middel van iteratie van deze formules deze vormen te creëren. De op deze manier ontstane fractals hebben zodanig grillige structuren dat ze een dimensie kunnen hebben tussen 1 en 2, of tussen 2 en 3: ze hebben een gebroken dimensie. Laten we op zoek gaan naar de vergelijking van een . . . varenblad (figuur 1).
Figuur 1 – Een hartvorm, beschreven door een cartesiaanse vergelijking en een klokvorm, beschreven door een vergelijking in poolcoördinaten. Maar hoe beschrijf je de vorm van een varenblad?
p p y = 0.75 3 x ± 1 − x 2 r = cos 5(t − π2 ) + 6 · cos(t − π2 )
1.2
Het Chaos-spel
Het chaos-spel is een algoritme, dat voor het eerst werd beschreven door Michael Barnsley in 1988 [Barnsley and Rising, 1993]. Het spel gaat als volgt. Zet drie stippen op de hoekpunten van een driehoek, bijvoorbeeld een gelijkzijdige driehoek, maar een andere niet-gelijkzijdige driehoek werkt ook. Markeer de drie stippen met een verschillende kleur, bijvoorbeeld zwart, rood en cyaan (figuur 2). Neem vervolgens een dobbelsteen en kleur twee zijden zwart, twee zijden rood en twee zijden cyaan. Zwart Startpunt
Rood
Cyaan
Figuur 2 – De benodigdheden voor het chaos-spel: een driehoek met drie gekleurde hoekpunten, een dobbelsteen met drie kleuren en een willekeurig startpunt.
Je een startpunt nodig om het chaos-spel te spelen. Dit starpunt is een willekeurig punt in het vlak. Dit punt mag binnen of buiten de driehoek liggen. Kies zelf zo’n startpunt. Je ziet in figuur 3 enkele stappen van dit iteratieproces, welke overeenkomen met het werpen van zwart, rood, zwart, cyaan en rood. Het algoritme is als volgt. 7
Chaosgame 1
Kies lukraak een startpunt.
2
Herhaal (itereer) het volgende proces:
3
Bepaal lukraak een kleur met behulp van de speciale dobbelsteen;
4
Neem de stip die overeenkomt met de geworpen kleur;
5
Zoek het midden tussen het startpunt en deze stip;
6
Dit nieuwe punt wordt nu op zijn beurt het volgende startpunt.
7
Gooi de eerste vijftien (of zo) punten van deze reeks weg, maar houd de volgende punten wel degelijk bij.
8
Zwart Startpunt
Cyaan
Rood
Figuur 3 – De eerste vijf zetten in het chaos-spel met de reeks zwartrood-zwart-cyaan-rood
Het chaos-spel is een zeer eenvoudig dynamisch proces dat een willekeurige reeks van punten produceert. Mensen die dit spel nog nooit eerder gezien hebben, zijn altijd verrast over het resultaat. Sommigen verwachten dat het iteratieproces een vlek van samengehoopte punten in het midden van de driehoek tekent, sommigen verwachten dat uiteindelijk de hele driehoek wordt opgevuld met punten. Beide verwachtingspatronen zijn aannemelijk gezien het willekeurig karakter van het iteratieproces. Maar het resultaat is allesbehalve een chaotische knoeiboel. Zwart Startpunt
Rood
Startpunt
Figuur 4 – Het chaos-spel na 20 zetten (links) en na 100 zetten (rechts)
Cyaan
Er toont zich een vaag patroon af (figuur 4), reeds na een honderdtal punten. In het midden van de driehoek bevinden zich — op de eerste na — geen punten. We zien zelfs nog meer open plekken verschijnen (figuur 5), na een duizendtal zetten. Bemerk dat, zelfs al bevindt het startpunt zich aanvankelijk buiten de driehoek, vroeg of laat de nieuwe startpunten wel binnen de driehoek moeten komen, en er voor altijd in blijven zweven, voortdurend getrokken in de richting van een van de drie gekleurde stippen. Het uiteindelijke resultaat (na oneindig veel zetten) is een van de beroemdste fractals, de Sierpinski-driehoek (figuur 5).
8
Figuur 5 – Het chaos-spel na 1000 zetten (links) en na 10 000 zetten (rechts), zonder de eerste vijf punten. De punten zijn gekleurd in dezelfde kleur als de worp met de dobbelsteen. Zwarte punten zijn dichter bij het zwarte hoekpunt, enzovoort.
Er is een beetje terminologie verbonden met het chaos-spel die belangrijk is. Het beginpunt wordt ook wel zaadje genoemd. Het herhalen van een proces (in dit geval het herhaaldelijk werpen met de dobbelsteen en de bijbehorende baan uitzetten) heet iteratie. Het proces bij het chaos-spel maakt gebruik van drie meetkundige transformaties die voortdurend herhaald worden. We noemen zo’n methode een geïtereerd functiesysteem (ifs). Iteratie staat voor herhaling, en de functies zijn de meetkundige transformaties ‘verplaats het startpunt P halfweg richting stip i ’. Deze meetkundige transformaties zijn in dit geval contracties (een schaling gecombineerd met een verschuiving). De rij van punten die door een iteratieproces (hier het chaos-spel) voortgebracht worden, heet de baan van het beginpunt. De baan zelf kan chaotisch verlopen. Als de baan steevast naar een bepaalde figuur aangetrokken wordt, heet deze laatste figuur de attractor van het dynamisch systeem. Er zijn enkele opmerkelijke facetten aan het chaos-spel. Vooreerst is er de meetkundige ingewikkeldheid van de resulterende figuur, de Sierpinski-driehoek. De Sierpinski-driehoek is genoemd naar de Poolse wiskundige Waclaw Franciszek Sierpinski (1882 – 1969). Hij construeerde deze kromme in een onderzoek naar krommen met een oneindige lengte en die passen binnen een eindige oppervlakte. Maar als figuur bestond deze figuur reeds eeuwen voordien als decoratief element. Hier is een ultieme website over de Sierpinski-driehoek: [Marquez-Raygoza, 2015]. De Sierpinski-driehoek is een van de basistypes van meetkundige afbeeldingen die bekend staan als fractals. Een tweede merkwaardig aspect van het chaos-spel is dat het resultaat van het iteratieproces steeds hetzelfde is, welk zaadje je ook gebruikt om het chaos-spel te beginnen. Met waarschijnlijkheid gelijk aan 1 bereik je uiteindelijk altijd de Sierpinski-driehoek. ‘Met waarschijnlijkheid 1’ is belangrijk hier. Inderdaad, als je met de dobbelsteen altijd ‘rood’ werpt, krijg je een baan van punten die recht naar de rode stip naderen. Maar dat is niet wat je verwacht van een eerlijke dobbelsteen. Je ziet in figuur 6 het effect als je voortdurend dezelfde kleur, bijvoorbeeld rood, zou gooien met de dobbelsteen. Dit verwacht je uiteraard niet van een eerlijke dobbelsteen, maar het geeft wel aan dat het algoritme werkt met drie verschillende contracties. Contracties zijn gelijkvormigheden van het vlak die de oorspronkelijke figuur verkleinen, in dit geval is de schalingsfactor 1/2. Dus, met waarschijnlijkheid gelijk aan 1 bereik je uiteindelijk altijd de Sierpinski-driehoek. Zwart Startfiguur
Rood
Cyaan
Figuur 6 – De baan van een hart, dat aangetrokken wordt naar de rode stip, een onwaarschijnlijk scenario
Dus ondanks de term ‘chaos-spel’ is er volledige orde in de structuur van de uiteindelijke figuur. Welk startpunt je ook neemt, de baan van dit startpunt loopt steevast naar een figuur die altijd 9
dezelfde is, namelijk de Sierpinski-driehoek. We spreken van een deterministisch systeem. Alleen de weg ernaar toe verloopt chaotisch, want die wordt bepaald door de uitkomst van de dobbelsten. We hebben hier een mooi voorbeeld hoe er orde ontstaat uit chaos. Als het dan toch niet uitmaakt met welk zaadje je begint, kun je evengoed een hele hoop zaadjes nemen die samen een figuur vormen, bijvoorbeeld een hart. In figuur 7 is het echte chaos-spel in werking. Het hart wordt bij elke zet verkleind en telkens naar een van de drie gekleurde stippen aangetrokken. De baan zelf wordt naar de Sierpinski-driehoek aangetrokken, dit wil zeggen: welke ook de vertrekpositie van het hart is, de baan nadert altijd in het patroon van de Sierpinski-driehoek. De punten van de baan lijken daarbij alle punten van de Sierpinski-driehoek te bezoeken. We zeggen dat de Sierpinski-driehoek een attractor van het geïtereerd functiesysteem (ifs) is. Je krijgt de eigenlijke Sierpinski-driehoek zelf uiteraard nooit te zien. Immers, hij bestaat uit oneindig veel punten. Bovendien, als je wilt dat alle punten van de baan zelf deel uitmaken van de Sierpinski-driehoek, dan moet het startpunt zelf deel uitmaken van de Sierpinski-driehoek. Neem als startpunt bijvoorbeeld een van de drie gekleurde stippen, of een ander punt op de zijden van gelijkzijdige driehoek. Wat je wél te zien krijgt is een patroon van punten, die een idee geven van de eigenlijke Sierpinski-driehoek.
Zwart Startfiguur
Rood
Cyaan
Figuur 7 – Het chaos-spel met een eerlijke dobbelsteen na 10 zetten (boven) en na 1000 zetten (onder).
1.3
Het chaos-spel programmeren
Je kunt het chaos-spel programmeren met heel weinig programmaregels. Het volgende voorbeeld is gecodeerd in de programmeertaal Asymptote [Van Hirtum, 2008].
10
Chaos-spel 1
//chaosspel.asy
2
size(10cm);
3
srand((int)time("%m%d%H%M%S"));
4
picture sierpinskidriehoek(
5
pair P,
6
int aantal
7
//zaadje voor pseudo-randomgenerator
){
8
picture pic;
9
pair oorsprong =(0, 0);
10
pen penstip=black + 2;
11
pen penhoekpunt=black + 6;
12
pen penstartpunt=blue + 4;
13
pair[] stip;
14
for (int i = 1; i <= 3; ++i){
//hoekpunten, om de 120 graden
stip[i] = oorsprong + dir(90 + (i-1)*120);
15
draw(pic, stip[i], penhoekpunt);
16 17
}
18
draw(pic, P, penstartpunt);
19
for (int j = 0; j < aantal; ++j){
20
int i = rand()%3 + 1;
21
pair M = 0.5*(P + stip[i]);
22
draw(pic, M, penstip); P = M;
23
//startpunt
//midden tussen P en stip[i] //M wordt nieuw startpunt
}
24
return pic;
25 26
}
27
add(sierpinskidriehoek(P = (0.5, 0.5), aantal = 1000));
1.4
Een tactisch spel Ga naar de website van Robert Devaney:
1
http://math.bu.edu/DYSYS/ Java-applets → The Chaos Game
Speel het spel The Chaos Game). Dit is een echt spel waarbij je een strategie moet ontwikkelen. Het is altijd mogelijk om het startpunt naar het doel te bewegen in maximum vier stappen. Het is aan jou om het algoritme van deze strategie te vinden. Lees eerst de uitleg How to play the game en zoek daarna de optimale strategie. Probeer het startpunt naar de groengekleurde driehoek te bewegen in zo weinig mogelijk stappen. Je kunt dit spel ook spelen met hogere moeilijkheidsgraden, en er zijn ook varianten (zie de nummers 1–2–3 in de rechterbovenhoek).
1.5
De MRK-machine
Laten we het algoritme van het chaos-spel lichtjes aanpassen als volgt, deze keer zonder dobbelsteen. Bij elke zet kiezen we niet lukraak een van de drie mogelijke contracties, maar voeren we ze gewoon alle drie tegelijkertijd uit. We beschrijven hier de opeenvolgende stappen van het algoritme. 11
Neem een startfiguur, bijvoorbeeld een ‘hart’.
Itereer het volgende proces: Pas een contractie toe op deze startfiguur met centrum de rode stip. Deze ‘rode’ contractie verkleint de basisfiguur met een factor 1/2 en verplaatst deze halfweg naar de rode stip; Pas gelijktijdig ook een ‘zwarte’ en een ‘cyaan’ contractie toe op de basisfiguur, die respectievelijk een verkleining oplevert in de richting halfweg naar de zwarte en de cyaan stip;
Gooi de oorspronkelijke startfiguur weg; Het geheel van drie verkleinde kopies van de basisfiguur wordt nu op zijn beurt de nieuwe startfiguur.
Figuur 8 – Het chaos-spel, omgevormd tot een MRK-machine (Meervoudige-ReductieKopieermachine): een iteratie van drie gelijktijdige reducties
Je ziet in figuur 8 enkele fasen van dit iteratieproces. Dit proces wordt ook wel een MeervoudigeReductieKopieermachine (mrk-machine) genoemd. Het maakt daarbij niet uit welke de startfiguur is, vermits deze toch voortdurend verkleind wordt, en uiteindelijk verschrompelt tot een punt. Merk op dat het chaos-spel en de mrk-machine beide gebaseerd zijn op hetzelfde dynamische proces, namelijk de iteratie van drie contracties. Het enige verschil is dat bij het chaos-spel bij elke zet slechts één van deze contracties wordt uitgevoerd (lukraak), terwijl in de mrk-machine bij elke fase alle drie de contracties gelijktijdig uitgevoerd. Beide processen leveren uiteindelijk dezelfde figuur op (de Sierpinski-driehoek). Het chaos-spel produceert een baan die als het ware een steekproef is die getrokken wordt uit alle 12
verschillende tussenstadia van het mrk-proces. De Sierpinski-driehoek, de eigenlijke fractal, is de attractor van het dynamisch proces, die des te scherper zichtbaar wordt naarmate het dynamisch proces vordert.
1.6
De kern van de zaak: juiste keuze van de contracties, startfiguur onbelangrijk
Zoals reeds eerder gezegd, maakt het niet uit met welke figuur de mrk begint. In plaats van een ‘hart’ kunnen we evengoed een ‘huisje’ nemen. Merk op dat het huisje niet symmetrisch is, in tegenstelling tot het hart. We gaan de ‘zwarte’, ‘rode’ en ‘cyaan’ transformaties nog een beetje aanpassen, zodat er naast contracties ook een spiegeling en een rotatie gebruikt worden. Zie figuur 9.
Figuur 9 – De MRK-machine met een huisje als origineel. De ‘zwarte’ transformatie is een contractie, de ‘rode’ en de ‘cyaan’ transformaties zijn contracties, gecombineerd met een spiegeling en een rotatie.
Het is wel belangrijk om zorgvuldig die transformaties uit te kiezen die effectief de Sierpinskidriehoek produceren. Op zijn minst moet de Sierpinski-driehoek zelf invariant zijn onder deze transformaties. Dit wil zeggen, als we de Sierpinski-driehoek als orgineel leggen op mrk-machine, dan moet de meervoudige kopie gelijk zijn aan het orgineel! De Sierpinski-driehoek is immers zelfgelijkvormig. Als we inzoomen op een detail van de fractal, op welk schaal ook, ontstaat een beeld dat gelijkvormig is met de hele fractal. We zien in figuur 10 we een verkeerde keuze van transformaties. We krijgen in dit geval geen Sierpinski-driehoek. De oorzaak is de ‘zwarte’ transformatie die een rotatie onder een hoek van 90° bevat. De Sierpinski-driehoek is duidelijk niet invariant onder deze rotatie.
Figuur 10 – Niet elk stel van drie contracties levert de Sierpinski-driehoek op. Een rotatie over een hoek van 90° is niet toegelaten.
Als we het huisje vervangen door een ‘pijl’, en dezelfde transformaties behouden als in figuur 9, 13
krijgen we een doorlopende kromme die alle driehoekjes van de Sierpinski-driehoek bezoekt. Mandelbrot¹ gaf er de naam Sierpinski Arrowhead aan (figuur 11).
Figuur 11 – De MRK-machine met een pijl als origineel. Hier zijn dezelfde transformaties gebruikt als in figuur 9.
1.7
De MRK-machine programmeren
Een contractie met contractiecentrum C en met contractiefactor 1/3 is gebaseerd op de volgende vectorbewerking:
A
O
B C
−→ 1 −→ C B = CA 3 −→ −→ 1 −→ 1 −→ CO + OB = CO + OA 3 3 1 −→ 1 −→ −→ OB = 1 − OC + OA. 3 3
In Asymptote wordt dit (eerst schalen, daarna verschuiven) gedaan als volgt. contractie[i]=shift((2/3)*stip[i])*scale(1/3)
¹ Benoît Mandelbrot, (1924 – ), een Frans wiskundige van Poolse afkomst. Hij is grotendeels verantwoordelijk voor de huidige interesse in fractals en liet zien dat fractals op een groot aantal verschillende terreinen kunnen worden ontdekt, zowel in de wiskunde als in de natuur. Zijn onderzoek bouwt voort op het werk van Gaston Maurice Julia. Mandelbrot vond het woord fractal uit [Mandelbrot, 1982].
14
1
//mrk.asy
2
size(3cm);
3
int aantalhoekpunten = 3;
4
real reductiefactor = 0.5;
5
real beginhoek = 90;
6
transform[] contractie;
7
pair[] stip;
8
for (int i = 1; i <= aantalhoekpunten; ++i){ stip[i] = dir(beginhoek + (i - 1)*360/aantalhoekpunten);
9
contractie[i] = shift((1 - reductiefactor)*stip[i])*scale(reductiefactor);
10 11
}
12
picture basisfiguur(real straal = .2){
//een letter L (asymmetrisch)
13
picture pic;
14
path letter = (0,0) -- (0,3) -- (1,3) -- (1,1) -- (2,1) -- (2,0) -- cycle;
15
draw(pic, letter); return scale(.5)*pic;
16 17
}
18
picture kopies(int stadium){
19
picture kopie;
20
if (stadium == 0){ kopie = basisfiguur();
21
} else {
22
for (int i = 1; i <= aantalhoekpunten; ++i){
23
add(kopie, contractie[i]*basisfiguur());
24 25
}
26
for (int j = 1; j < stadium; ++j){
27
picture pic;
28
for (int i = 1; i <= aantalhoekpunten; ++i){
//telkens vertrekken met lege picture
add(pic, contractie[i]*kopie);
29 30
}
31
kopie = pic; }
32
}
33
return kopie;
34 35
}
36
add(kopies(stadium = 4));
//kies stadium {0, 1, ..., 8}
15
1.8
De Sierpinski-zeshoek
We kunnen het chaos-spel ook spelen met zes gekleurde stippen in de vorm van een regelmatige zeshoek. Nummer de hoekpunten van 1 tot 6 en neem een gewone dobbelsteen. Kies een startpunt, rol de dobbelsteen en verplaats het startpunt zodat het op een derde afstand ligt van het hoekpunt die de dobbelsteen aangeeft. Itereer dit proces (figuur 12).
1
2 Startpunt
3
6
4
Figuur 12 – De eerste tien zetten in het chaos-spel, maar nu met een zeshoek en contractiefactor 1/3.
5
Het resultaat is weerom allesbehalve willekeur. Het is de Sierpinski-zeshoek (figuur 13). De Sierpinski-driehoek en de Sierpinski-zeshoek zijn niet echt de realistische vormen die we in de natuur tegenkomen, zoals bijvoorbeeld een varenblad. Maar in de Sierpinski-zeshoek vind je wel een tip van de sluier. Kijk naar de binnenste grens van de Sierpinski-zeshoek. Bemerk hoe deze figuur op een sneeuwvlok lijkt. Inderdaad, deze binnenste grens is de Koch-sneeuwvlok².
Figuur 13 – De Sierpinski-zeshoek, resultaat van het chaos-spel met zes hoekpunten, na 20 000 zetten, zonder de eerste vijf punten. Bemerk de Kochsneeuwvlok langs de binnenrand van de Sierpinski-zeshoek.
Het chaos-spel van de Sierpinski-zeshoek kan ook omgevormd worden tot een mrk-machine met zes contracties, telkens met een contractiefactor 1/3. Je ziet in figuur 14 het resultaat na één keer kopiëren van een hart als origineel. Je ziet in figuur 15 het resultaat na twee keer en na drie keer ²Helge von Koch (1870 – 1924), Zweeds wiskundige.
16
kopiëren. Je ziet in figuur 16 het resultaat na vier keer en na vijf keer kopiëren. Als je zo doorgaat tot oneindig keer kopiëren, ontstaat de Sierpinski-zeshoek. 2
1
3
6
3
6
4
5
4
5
2
1
2
1
3
6
3
5
4
5
2
1
2
1
6
4
5
Figuur 14 – De MRK-machine met zes contracties met contractiefactor 1/3 in actie.
6
4
3
2
1
2
3
6
5
4
Figuur 15 – De MRK-machine met zes contracties met contractiefactor 1/3 in een verder stadium: na twee keer en na drie keer kopiëren van het origineel.
Figuur 16 – De MRK-machine met zes contracties met contractiefactor 1/3 in een nog verder stadium: na vier keer en na vijf keer kopiëren van het origineel. De Sierpinski-zeshoek verschijnt stilaan.
Ga naar de website van Robert Devaney: http://math.bu.edu/DYSYS/ Java-applets → Fractalina.
Speel het spel Fractalina. Lees eerst de bijbehorende uitleg en experimenteer er daarna lustig op los. Naast de drie punten van de driehoek, kun je zelf meerdere punten toevoegen en ze slepen waar je maar wilt.
17
1.9
De Sierpinski-driehoek: driehoekjes wissen
Het chaosspel produceert de Sierpinski-driehoek als de (verrassende) uitkomst van een chaotisch verlopend iteratieproces, maar je kunt de Sierpinski-driehoek ook construeren door middel van een deterministisch algoritme. Dit gaat als volgt. Zie figuur 17. Figuur 17 – Constructie van de Sierpinski-driehoek door het herhaaldelijk verwijderen van de ‘middelste’ driehoekjes
Begin met een driehoek. Neem van elke zijde het midden en verbindt deze middens met elkaar. Je krijgt nu een figuur met vier driehoekjes. Elk van deze driehoekjes hebben zijden gelijk aan de helft van de zijden van de oorspronkelijke driehoek. De lengtes van de zijden zijn dus geschaald met een factor 1/2 (de oppervlakte wordt daarbij vier keer kleiner). Bovendien is elk driehoekje gelijkvormig met de oorspronkelijke driehoek. Verwijder het middelste driehoekje. Itereer dit proces. Je verwijdert opnieuw van elk van de drie driehoekjes het ‘middelste’ driehoekje, zodat er telkens weer drie nieuwe driehoekjes ontstaan die telkens in oppervlakte vier keer kleiner worden. Bij deze tweede stap blijven er dus negen driehoekjes over. Bij de volgende stap heb je 27 driehoekjes, en daarna 81 driehoekjes, enzovoort. Bij stap n heb je dus 3n kleine driehoekjes met een oppervlakte gelijk aan 1/4n van de oppervlakte van de oorspronkelijke driehoek.
1.10
Waarom de Sierpinski-driehoek uit het chaos-spel ontstaat
Hoe is het toch mogelijk dat de chaotische banen van het chaos-spel een structuur oplevert die zo geordend is als de Sierpinski-driehoek? Het antwoord is vrij eenvoudig. Stel je voor dat je als startpunt een punt ongeveer in het midden van de driehoek neemt. Het vervolg van de baan zal dan nooit meer in deze middelste ‘lege’ driehoek komen. Want door het chaos-spel wordt het beginpunt gestuurd naar een van de drie kleinere witte driehoekjes. In deze driehoekjes liggen immers alle punten halfweg de grote witte driehoek en de gekleurde stippen. Deze drie kleine witte driehoekjes worden op hun beurt gemeden bij de volgende stap. De negen nog kleinere ‘witte driehoekjes’ worden bij de volgende stap gemeden. Bij de vierde stap worden ook nog eens de 27 nog kleinere witte plekjes gemeden, enzovoort. De baan van het chaos-spel wordt dus al vanaf het zesde punt gedwongen te blijven in de gebiedjes die niet wit zijn: precies wat zwart lijkt in figuur 18.
Figuur 18 – De baan van het chaos-spel mijdt al vanaf het vijfde punt alle witte ‘gewiste’ driehoekjes in deze figuur, het vierde stadium in de constructie van de Sierpinski-driehoek.
De voorgaande redenering is zoals in het begin gezegd, in de veronderstelling dat het startpunt gelijk valt met het midden van de driehoek. Als het startpunt anders ligt, bijvoorbeeld op een 18
afstand d van het midden, dan heb je een fout d . Deze fout (d ) wordt bij elke stap echter gehalveerd. Als je maar ver genoeg doorgaat, kan de fout willekeurig klein worden gemaakt. Je komt dus automatisch dichter bij de Sierpinski-driehoek.
1.11
Zelfgelijkvormigheid
Een van de basiskenmerken van fractale figuren is zelfgelijkvormigheid. Dit zien we zeer goed bij de Sierpinski-driehoek, die opgebouwd is uit drie exacte verkleinde kopieën van zichzelf. Elke verkleinde kopie is op zijn beurt opnieuw gelijkvormig met drie nog meer verkleinde kopieën van zichzelf, enzovoort. We komen dergelijke zelfgelijkvormigheid vaak in de natuur tegen, tot op zekere diepte. Zie figuren 19, 20, 21 en 22.
Fractale structuur Soms wordt gezegd dat een object een fractale structuur heeft als er zelfgelijkvormigheid optreedt in minstens drie opeenvolgende schaalvergrotingen.
Figuur 19 – Is dit de foto van een ruw terrein, genomen vanuit een vliegtuig? Of stelt het een bergwand voor, of een is het een stukje modder bekeken van op een afstand van enkele meters? Of is het de vergroting van een stukje ruwe rotsblok? Wat het antwoord ook moge zijn, de andere mogelijkheden zijn even goed in te beelden. Je zou bijvoorbeeld kunnen beginnen met een panoramische foto vanuit een vliegtuig en stapsgewijs inzoomen tot op het microscopisch niveau van een ruwe steen. Het beeld blijft zelfgelijkvormig doorheen deze opeenvolgende vergrotingen. Bron: Paul Bourke.
Figuur 20 – Bij een varenblad zie je ook een soort van zelfgelijkvormigheid. Hier is er duidelijk een grens aan het aantal niveaus waarop deze zelfgelijkvormigheid optreedt. We zien hier zelfgelijkvormigheid in drie opeenvolgende vergrotingen.
19
Figuur 21 – Zelfgelijkvormigheid kan ook exact zijn. Dit treedt alleen op bij wiskundig gedefinieerde fractals. Hier spelen geen beperkingen die door de realistische natuur opgelegd zijn. Een voorbeeld is de Kochsneeuwvlok. De opeenvolgende vergrotingen zijn exacte kopieën van het origineel, ongeacht hoe diep je inzoomt. Bron: Paul Bourke
Figuur 22 – Meestal is de zelfgelijkvormigheid maar benaderend. Dit wil zeggen, als je naar het hele object kijkt op verschillende schaal ‘herken’ je gelijkaardige structuren, maar niet exact gelijkvormig. De Mandelbrotverzameling is een goed voorbeeld om dit te illustreren. Je ziet hier drie opeenvolgende inzoomingen. Op elk niveau zie je een structuur die ‘ongeveer’ lijkt op de originele Mandelbrotfiguur. Bron: Paul Bourke
20
1.12
Fractal-dimensie
Het woord ‘fractal’ betekent letterlijk: ‘gebroken’. De Sierpinski-driehoek is een meetkundige fractal waarvan de dimensie gelijk is aan ongeveer 1.58, geen geheel getal maar een gebroken getal. Waarom zeggen we dat een lijnstuk dimensie 1 heeft en een rechthoek dimensie 2? Merk op dat beide objecten zelfgelijkvormig zijn. We kunnen een lijnstuk (met dimensie 1) verdelen in bijvoorbeeld vijf zelfgelijkvormige kopieën van zichzelf, waarbij de schalingsfactor gelijk is aan 1/5 (figuur 23). We kunnen een lijnstuk in het algemeen verdelen in n zelfgelijkvormige verkleinde kopietjes met een schalingsfactor gelijk aan 1/n. Figuur 23 – Een MRK-machine produceert n zelfgelijkvormige kopieën van een lijnstuk met schalingsfactor 1/n. In dit voorbeeld is n gelijk aan vijf.
Een rechthoek (met dimensie 2) kunnen we ook bekijken als zelfgelijkvormig met bijvoorbeeld negen verkleinde kopies van zichzelf. De schalingsfactor is hierbij gelijk aan 1/3 (figuur 24). Figuur 24 – Een MRK-machine produceert n zelfgelijkvormige kopieën p van een rechthoek met schalingsfactor 1/ n. In dit voorbeeld is n gelijk aan negen.
Een kubus (met dimensie 3) kan verdeeld worden in bijvoorbeeld zevenentwintig zelfgelijkvormige kubusjes met schalingsfactor 3. (figuur 25).
Figuur 25 – Een MRK-machine produceert n zelfgelijkvormige kopiep ëen van een kubus met schalingsfactor 1/ 3 n. In dit voorbeeld is n gelijk aan 27.
We vatten de berekeningen even samen in tabel 1. Tabel 1 – Relatie tussen aantal zelfgelijkvormige kopies n, schalingsfactor s en de dimensie D
Figuur
D
s
Lijnstuk
1
1/5
Rechthoek
2
1/3
Kubus
3
1/3
21
1
1 D s
=n
1 = 51 = 5 0.2 2 1 = 32 = 9 1/3 3 1 = 33 = 27 1/3
In deze drie gevallen kunnen we telkens een zelfde formule opstellen voor de dimensie D van een meetkundige figuur. De dimensie is dus de exponent waartoe je het omgekeerde van de schalingsfactor moet verheffen om het aantal zelfgelijkvormige stukjes n te vinden. D 1 =n s
Hieruit kunnen we de dimensie D oplossen door middel van logaritmen: log(n) log(1/s) log(Aantal zelfgelijkvormige kopies) . = log(Schalingsfactor)
D = 1/s log n =
(Fractal-dimensie)
Nu kunnen we ook de dimensie berekenen van de Sierpinski-driehoek (figuur 26). Een mrkmachine produceert telkens drie zelfgelijkvormige kopies van de Sierpinski-driehoek met een schalingsfactor 1/2. Bijgevolg is de fractaldimensie van de Sierpinski-driehoek D = 1/s log n =
log(n) log(3) log 3 = = = 1.58. log(1/s) log(1/0.5) log 2
De dimensie van de Sierpinski-driehoek is dus ergens tussen 1 en 2. Een driehoek met oneindig veel gaten is dus ‘meer’ dan een lijnstuk, maar ‘minder’ dan een driehoek. De dimensie van een fractal kan ook geheel zijn. De Sierpinski-piramide met dimensie gelijk aan 2 is hier een voorbeeld van (zie opdracht 6 op pagina 26).
1
3
2
1.13
Figuur 26 – Een MRK-machine produceert drie (‘zwart’, de ‘rood’ en ‘cyaan’) zelfgelijkvormige kopieën van de Sierpinski-driehoek met schalingsfactor 1/2. De fractaldimensie van de Sierpinski-driehoek is dus 1/2 log 3 = 1.58.
De vergelijking van een varenblad
Het model van dit varenblad is van de wiskundige Michael Barnsley [Barnsley and Rising, 1993]. Het is verbazingwekkend dat er slechts vier functies nodig zijn voor het geïtereerd functiesysteem om het varenblad van Barnsley te produceren via een mrk-machine.
22
Figuur 27 – Een MRK-machine met vier transformaties produceert het varenblad van Barnsley. In deze figuur zie je de eerste fase (links) en de zesde fase (rechts) van het iteratieproces. Het huisje in stippellijn is het origineel. Er zijn ook rotaties, spiegelingen (zie plaatsing deur) en scheeftrekkingen gebruikt.
Je ziet de vier transformaties aan het werk in figuur 27. Naast verschuivingen en schalingen zijn er ook rotaties, spiegelingen en scheeftrekkingen gebruikt. We beginnen met een huisje als origineel. De eerste transformatie schaalt het huisje met een factor 0.85 en roteert de kopie over een kleine hoek (2.5°) en schuift het geheel een beetje naar boven (1.6). De volgende twee contracties hebben een schalingsfactor van ongeveer 0.35 en draaien de kopie linksom of rechtsom terwijl de kopie een beetje scheefgetrokken wordt. De meest rechtse kopie is bovendien gespiegeld om zijn as (zie positie van de deur). De vierde transformatie zorgt ervoor dat het huisje samengeperst wordt tot een kort lijnstukje (schaling met factor 0 in de x -richting) en schaling met factor 0.16 in de y -richting. Elk van deze transformaties kan beschreven worden als een matrix-vermenigvuldiging. Het koppel (x, y) is daarbij de coördinaat van een origineel punt en (x ′ , y ′ ) is de coördinaat van de getransformeerde kopie. ⎡ ′⎤ ⎡ ⎤ ⎡ ⎤ x t.x x t.x y t.x x ⎣ y ′ ⎦ = ⎣ t. y x t. y y t. y ⎦ · ⎣ y ⎦ (1) 1 0 0 1 1 Deze matrixvermenigvuldiging stelt een affiene³ transformatie voor en is opgebouwd uit een verschuiving over de vector (t.x, t. y) en een lineaire transformatie met matrix t.x x t.x y t. y x t. y y Samen geeft dit de volgende vectorvergelijking: x′ t.x x t.x y x t.x = · + ′ y t. y x t. y y y t. y Door het extra-coördinaatgetal 1 in te voeren, kan een affiene transformatie altijd geschreven worden als de matrixvermenigvuldiging (1): De vier transformaties voor de constructie van het varenblad zien er zo uit in matrixvorm: ⎡ ′⎤ ⎡ ⎤ ⎡ ⎤ x 0.85 0.04 0 x ⎣ y ′ ⎦ = ⎣−0.04 0.85 1.6⎦ · ⎣ y ⎦ (transformatie 1) 1 0 0 1 1 ³ Een affiene transformatie behoudt collineariteit, en dus ook evenwijdigheid, midden van een lijnstuk, verhouding van afstanden. Afstanden, hoeken en draairichting worden niet per se behouden. Een vierkant kan dus vervormd worden tot een parallellogram, maar een parallellogram blijft een parallellogram.
23
⎡ ′⎤ ⎡ x 0.20 ⎣ y ′ ⎦ = ⎣0.23 1 0
−0.26 0.22 0
⎡ ′⎤ ⎡ −0.15 x ⎣ y ′ ⎦ = ⎣ 0.26 1 ⎡ ′⎤ ⎡ 0 x ⎣ y ′ ⎦ = ⎣0 0 1
0
0 0.16 0
0.28 0.24 0
⎤ ⎡ ⎤ 0 x ⎦ ⎣ 1.6 · y ⎦ 1 1
(transformatie 2)
⎤ ⎡ ⎤ 0 x 0.44⎦ · ⎣ y ⎦ 1
(transformatie 3)
1
⎤ ⎡ ⎤ 0 x ⎦ ⎣ 0 · y⎦ . 1 1
(transformatie 4)
In Asymptote: 1
transformatie[1]=(0,
1.6,
0.85,
2
transformatie[2]=(0,
1.6,
0.2,
3
transformatie[3]=(0,
0.44, -0.15,
4
transformatie[4]=(0,
0,
0,
0.04,
-0.04,
0.85);
-0.26,
0.23,
0.22);
0.28,
0.26,
0.24);
0,
0,
0.16);
Deze vier transformaties vormen de nieuwe spelregels van het chaos-spel. We wijzigen bovendien ook de toevalsregels. We geven we aan elke transformatie een aparte kans om gekozen te worden, in plaats van bij elke zet willekeurig een van de vier transformaties te kiezen. We geven de hoogste kans aan de eerste transformatie, namelijk 85 %, en aan transformaties 2 en 3 een kans van 7 %, en aan de transformatie 4 een kans van 1 %. ⁴ Als je het algoritme kent, en het duizenden keer uitvoert, verschijnt er telkens een punt van de figuur. Je weet nooit waar je het volgende punt kunt verwachten. Maar stilaan verschijnt de vorm van een varenblad (figuur 28). Het is geen écht varenblad, maar een wiskundig object. Het is toch mooi hoe het onvoorspelbare proces de voorafbepaalde vorm ontvouwt. Figuur 28 – Het resultaat van het chaos-spel met 1000, 5 000 en 25 000 iteraties. Het linkse varenblad is in kleur. De eerste contractie (cyaan) maakt een iets verkleinde kopie van het varenblad en schuift dit op naar boven. Onderaan komt er dan plaats vrij voor twee nieuwe takken (purper en rood). Dit zijn twee verkleinde kopies van het varenblad, de rechtse kopie is daarbij gespiegeld. De vierde contractie (zwart) maakt onderaan een stukje steel bij.
⁴ Deze kansverdeling kan gemakkelijk geïmplementeerd worden in een computerprogramma door de computer een pseudo-willekeurig getal te laten genereren tussen 0 en 1. Als dit getal in het interval [0, 0.85[ ligt, wordt transformatie 1 gebruikt, ligt het ‘getrokken’ getal in het interval [0.85, 0.92[, dan komt transformatie 2 aan bod, enzovoort.
24
1.14
Het varenblad programmeren
1
//varenblad.asy
2
size(6cm);
3
srand((int)time("%m%d%H%M%S"));
4
int nn = 4;
5
transform[] contractie;
6
contractie[1] = (0,
1.6,
0.85,
7
contractie[2] = (0,
1.6,
0.2,
8
contractie[3] = (0,
0.44, -0.15,
9
contractie[4] = (0,
10
0,
-0.04,
0.85);
-0.26,
0.23,
0.22);
0.28,
0.26,
0.24);
0,
0.00,
0.16);
picture varenblad( int aantal,
11
real puntdikte = 1.0
12 13
0,
0.04,
){
14
picture pic;
15
pen ppunt = black + linewidth(puntdikte);
16
pair M;
17
int nummercontractie;
18
pair P = (0, 0);
19
for (int nummerzet = 0; nummerzet < aantal; ++nummerzet){
20
real kans = rand()/randMax;
21
if (kans < .85){ nummercontractie = 1;
22
} else if (kans < .92){
23
nummercontractie = 2;
24
} else if (kans < .99){
25
nummercontractie = 3;
26
} else {
27
nummercontractie = 4;
28 29
}
30
M = contractie[nummercontractie]*P;
31
draw(pic, M, ppunt); P = M;
32 33
}
34
return pic;
35
}
36
add(varenblad(aantal = 10000, puntdikte = 1.0));
25
1.15
Opdrachten
3
Hier is het effect van de zes contracties te zien die gebruikt worden in de mrk-machine om een Sierpinski-zeshoek te produceren. Construeer met passer en liniaal de zes contractiecentra.
4
Schrijf een nieuw programma sierpinskizeshoek die een picture huis als origineel neemt en met behulp van een mrk-machine de Sierpinski-zeshoek produceert. (Hint: vertrek van het programma mrk.asy in sectie 1.7 op pagina 15 en wijzig de basisfiguur(), de waarde van aantalhoekpunten, de contractiefactor en eventueel de beginhoek.)
5
Bereken de fractal-dimensie van de Sierpinskizeshoek.
6
Bereken de fractal-dimensie van de Sierpinski-piramide.
26
7
Maak een nieuw programma varenblad.asy die het chaos-spel simuleert met de vier transformaties van Barnsley.
8
Noem drie belangrijke kenmerken van een fractal op.
9
Zoek nog drie voorbeelden van objecten (in de natuur of elders) met een fractale structuur. In deze objecten moet dus een gelijkvormigheid aanwezig zijn met minstens drie opeenvolgende schaalvergrotingen.
27
2
Het logistisch model van Verhulst Stel je een leeg eiland voor met een populatie konijnen. We proberen een wiskundig model te maken om de populatie in een bepaald jaar te voorspellen. Het aantal konijnen in jaar t wordt gegeven door Nt .
Afspraken • In jaar t = 0 zijn er N0 konijnen (de beginpopulatie). • De populatie in jaar t + 1 hangt alleen af van de populatie in jaar t (dus niet van het weer, aantal roofdieren, enzovoort), zie figuur 29.
Nt
Figuur 29 – Er is dus een ‘zwarte doos’ die Nt+1 geeft als je er Nt in stopt. Het aantal konijnen wordt dus van jaar tot jaar berekend door een of andere functie te itereren.
Nt+1
functie
We behandelen achtereenvolgens drie functies: de constante functie, de exponentiële functie en de logistische functie.
2.1
De constante functie
Nt
constant
De populatie blijft elk jaar hetzelfde, namelijk N0 :
Nt+1
Nt+1 = Nt .
(2)
Nt N0
0
2.2 Nt
1
2
3
4
5
6
7
8
9
Figuur 30 – Iteratie met een constante functie: volstrekt oninteressant
10 t
De exponentiële functie exp
r
Exponentiële groei wordt gestuurd door het volgende iteratieproces:
Nt+1
Nt+1 = Nt + r Nt .
28
(3)
1024 Nt
r=1
512 256 1
2
4
8
0
1
2
3
16 32 64 4
5
6
128 7
8
9
Figuur 31 – Iteratie van een lineaire functie Nt+1 = (1+ r)Nt geeft exponentiële groei. In dit voorbeeld is het groeipercentage r = 1.00 (100 %).
10 t
In deze vergelijking is de parameter r het groeipercentage. De parameter r = 1 betekent dus een groeipercentage van 100 %. De wereldbevolking had rond 1800 een groeipercentage van r = 0.028, dus een groeipercentage van 2.8 %. Dit betekent een verdubbeling om de 25 jaar. Zou de wereldbevolking verder blijven groeien aan dit tempo, dan zouden er in het jaar 2000 240 miljard mensen wonen op de planeet aarde. Dit betekent voor elke aardebewoner gemiddeld een lapje grond van 25 m op 25 m, bergen en onherbergzame gebieden inbegrepen. De werkelijke wereldbevolking bedroeg in 2000 slechts zes miljard.
Nt Nt
exp
Nt+1
r
r = 0.2
N0 0
10 t r=0
N0
r = -0.2 N0
Figuur 32 – Op het voorpaneel van de ‘zwarte doos’ zit een ‘regelknop’ (rood) om het groeipercentage r in te stellen. Je ziet hier drie voorbeelden van iteratie van Nt+1 = (1 + r)Nt : exponentiële groei (1 + r > 1 ), nulgroei (1 + r = 1) en exponentieel verval (1 + r < 1).
Voorbeeld Elk konijn krijgt in een jaar twee jongen en gaat dan dood. Je ziet in figuur 33 de populatie evolueren gedurende de eerste negen jaar. Hoeveel konijnen zijn er na 10 jaar? na 20 jaar? na 30 jaar?
29
N0 = 1
N1 = 2
N2 = 4
N3 = 8
N4 = 16
N5 = 32
N6 = 64
N7 = 128
N8 = 256
N9 = 512
Figuur 33 – Exponentiële groei van een populatie konijnen wordt vroeg of laat onhoudbaar. Exponentiële groei is dus vroeg of laat onhoudbaar binnen een beperkt ecosysteem.
De Engels demograaf en econoom Thomas Malthus schreef er in 1798 een pessimistisch essay over [Malthus, 1798]. Volgens hem zouden hongersnood, epidemieën en oorlogen de exponentiële groei van de bevolking afremmen. De Belgische wiskundige Pierre-François Verhulst stelde in 1883 naar aanleiding van dit artikel voor om de wiskundige vergelijking te veranderen om een betere beschrijving te geven van het populatiemodel [Verhulst, 1838]. Hij noemde zijn vergelijking de logistische vergelijking.
2.3
De logistische vergelijking
Een populatie konijnen kan onmogelijk zuiver exponentieel groeien. De belangrijkste oorzaak is de beperkte ecologische draagkracht van het eiland. Konijnen hebben namelijk voedsel en ruimte nodig om te bewegen. Als er meer konijnen komen, wordt de groei afgeremd doordat de voedselvoorraad en de beschikbare ruimte kleiner wordt. Het groeipercentage r (dat typisch is voor de diersoort) wordt dus afgeremd door een factor die evenredig is met de nog beschikbare ruimte. Het logistische model wordt beschreven door de volgende iteratie: Nt Nt+1 = Nt + r Nt 1 − . (4) K Merk de twee regelknoppen op de zwarte doos op: een voor de parameter r en een voor de parameter K . Laten we de ecologische draagkracht voorstellen door K . K is dus het maximum aantal N konijnen dat op het eiland kan leven. De factor 1 − Kt stelt een percentage voor van de draagkracht dat nog niet ingenomen is. We passen het logistisch model van Verhulst toe op een konijnenpopulatie met ecologische draagkracht K = 32 en ongeremd groeipercentage r = 1 (figuur 34).
Nt
logistisch r K
Nt+1
30
N0 = 1
N1 = 2
N2 = 4
N3 = 7
N4 = 13
N5 = 20
N6 = 28
N7 = 31
N9 = 32
N8 = 32 r = 1 K = 32
Nt 30
32
32
20
20
13
10
−1
28
31
1
2
4
0
1
2
N
7
3
4
5
6
7
8
9 t
Figuur 34 – Logistisch model Nt+1 = Nt + r · Nt (1 − Kt ) met r = 1 en K = 32: de populatiegroei wordt afgeremd door beperkte voedselvoorraad en beperkte ruimte.
N
De factor 1− Kt speelt een zelfregelurende rol bij een populatie die beperkt wordt door de ecologische N draagkracht K . Als Nt klein is, zit de factor 1 − Kt dicht tegen 1, en kunnen er nog veel konijnen N bij komen. Maar als Nt groter wordt, komt de factor 1 − Kt dichter bij 0 en wordt de groei van de populatie afgeremd. Als Nt nóg groter wordt, bijvoorbeeld groter dan de ecologische draagkracht N K , dan wordt de factor 1 − Kt negatief, en daalt de populatie. Het idee achter het logistische groeimodel is eenvoudig en effectief, en wordt tot op vandaag gebruikt als een model voor bevolkingsgroei en marktverovering van nieuwe producten en technologieën. De invoering van de mobiele telefoon is een goed voorbeeld: in het begin gaat de verspreiding snel, maar naarmate de markt meer verzadigd geraakt, vertraagt de groei. De verspreiding van geruchten onder een bevolkingsgroep is nog een voorbeeld. Hierbij is Nt het aantal mensen dat reeds op de hoogte is na een tijd t .
2.4
De logistische vergelijking genormaliseerd
De standaardvorm van de logistische vergelijking, zoals die door Robert May in 1976 met het beroemde artikel Simple Mathematical Models with very Complicated Dynamics [May, 1976] bekend werd, is de volgende: (5)
x t+1 = a x t (1 − x t ).
De afleiding van deze formule gebeurt als volgt. We beginnen met vergelikjking (4). Nt Nt+1 = Nt + r Nt 1 − . K
Deel beide leden door K , en stel
N K
= p, we krijgen dan:
p t+1 = p t + r p t (1 − p t ).
31
Stel p =
1+r r
x . Dit geeft:
1+r xt x t+1 = x t + r x t 1 − r = x t (1 + r − (1 + r)x t ) = (1 + r)x t (1 − x t ).
Stel 1 + r = a. We krijgen tenslotte: x t+1 = a x t (1 − x t ).
De logistische vergelijking in de vorm (5) heeft een bijzonder voordeel. Als de startwaarde x 0 in het interval [0, 1] ligt, dan zullen alle volgende waarden x t ook in het interval [0, 1] blijven, tenminste als men voor de parameter a niet al te grote waarden kiest (0 ≤ a ≤ 4, zie opdracht 15 op pagina 50). We noemen de vorm (5) de genormaliseerde logistische vergelijking. N
Als de populatie Nt gelijk is aan de ecologische draagkacht K , dan is de populatiefractie p t (= Kt ) gelijk aan 1. De bijbehorende genormaliseerde populatiefractie x t is dan gelijk aan de bijzondere r 1 waarde 1+r = 1−a a = 1 − a.
Van zodra Nt (precies) gelijk is aan K , blijft de populatie gelijk aan K , p t blijft dan gelijk aan 1 en de genormaliseerde populatiefractie blijft dan gelijk aan 1 − 1a . We noemen 1 − 1a een vast punt van de logistische vergelijking (5). Er is nog een tweede vast punt. Immers, als x t gelijk is aan 0, blijft x t gelijk aan 0. Maar er is iets vreemds aan de hand met de stabiliteit van deze vaste punten. We onderzoeken dit complex gedrag in een volgende sectie.
2.5 xt
Spelen met de parameter a logistisch a
Het logistische model wordt dus ook beschreven door de volgende iteratie:
x t+1
x t+1 = ax t (1 − x t ).
De ‘zwarte doos’ van de genormaliseerde logistische iteratieproces heeft nog slechts één regelknop, namelijk voor de parameter a van de logistische vergelijking, met 0 ≤ a ≤ 4 . Naargelang de waarde van de parameter a krijgen we verschillende situaties. Laten we bijvoorbeeld starten met x 0 = 0.20. We bekijken achtereenvolgens a = 0.80, a = 2.75, a = 3.2, a = 3.5 en a = 4 (figuur 35).
32
xt 1
a = 0.8
0 0
10
20
30
40
50 t
a = 2.75 0 a = 3.2 0 a = 3.5
Figuur 35 – De evolutie van een populatie volgens het logistisch model van Verhulst x t+1 = ax t (1 − x t ). Voor a ≤ 1 sterft de diersoort uit. Voor a > 1 kan de populatie ofwel naar een stabiele evenwichtstoestand evolueren, ofwel cyclisch schommelen, ofwel totaal chaotisch schommelen.
0 a=4 0
x 0 = 0.20
⊵ a = 0.8
x 1 = 0.13
Als a kleiner is dan 1, bijvoorbeeld a = 0.8, dan is het ongeremde groeipercentage r negatief (−0.2) en dan sterft de diersoort uit. Dit is niet interessant. xt
x 2 = 0.09
1 0.8
x 3 = 0.07
0.6
x 4 = 0.05
0.4
a = 0.8
0.2
x 20 = 0.0011 0
x 40 = 0.000013
10
20
30
40
50 t
x∞ = 0
x 0 = 0.20
⊵ a = 2.75
x 1 = 0.44
Als a = 2.75, dan vinden we een populatie die uiteindelijk stabiliseert op 0.636363. . . . xt
1 a = 2.75
0.8
x 2 = 0.6776
0.6
x 3 = 0.60076
0.4
x 4 = 0.65958
0.2
x 20 = 0.636604
0
x 40 = 0.636364 x ∞ = 0.63636363...
33
10
20
30
40
50 t
⊵ a = 3.2
x 0 = 0.20 x 1 = 0.512 x 2 = 0.79954
Voor bijvoorbeeld a = 3.2, zien we dat de populatie na een tijdje cylisch begint te schommelen tussen twee vaste waarden 0.79946 en 0.51304. Het ene jaar groeit de populatie, het volgende jaar daalt ze. xt
x 3 = 0.51288
1
a = 3.2
0.8
x 4 = 0.79947
0.6 0.4
x 20 = 0.79946 x 21 = 0.51304
0.2
twee-cyclus
0
x 22 = 0.79946
x 0 = 0.2
⊵ a = 3.5
40
50 t
a = 3.5
1
0.6
x 3 = 0.41533
0.4
x 4 = 0.84991
0.2
x 40 = 0.82694
0
x 41 = 0.50088 vier-cyclus
10
20
30
40
50 t
Voor a = 4 is het resultaat chaotisch, zonder enige regelmaat.
x 43 = 0.38282 x 44 = 0.82694
30
0.8
x 2 = 0.8624
x 42 = 0.87500
20
Met a = 3.5 schommelt de populatie rond een viercyclus. xt
x 1 = 0.56
10
a=4 xt
1 0.8 0.6 0.4 0.2 0
34
10
20
30
40
50 t
2.6
Een tijdreeks programmeren xt
x 0 = 0.69 a = 3.2
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
1
//tijdreeks.asy
2
import graph;
3
import mijnasy;
4
pen ppunt = blue + 1;
5
picture tijdreeks(
6
real aa = .85,
7
real x0 = .5,
8
int tt = 10
9
10
20
30
40 t
){
10
real[] nummer;
11
real[] x;
12
nummer[0] = 0;
13
picture pic;
14
x[0] = x0;
15
for (int t = 1; t <= tt; ++t){
16
nummer[t] = t;
17
x[t] = aa*x[t - 1]*(1 - x[t - 1]);
18
write (x[t]);
19
}
20
draw(pic, graph(nummer, x), ppunt, MarkFill[0]);
21
xaxis(pic, "$t$", RightTicks );
22
yaxis(pic, "$x_t$", ymin = 0, ymax = 1, LeftTicks(NoZero));
23
string bijschrift = "$x_0=$" + (string)x0 + " " + "~ $a=$" + (string)aa + " ";
24
pair bijschriftpositie = (0.05*tt, 1);
25
label (pic, bijschrift, bijschriftpositie, E); return pic;
26 27
}
28
size(10cm, 7cm, IgnoreAspect);
29
add(tijdreeks(aa = 3.2, x0 = .69, tt = 40));
1
//mijnasy.asy
2
locale("en_US.UTF-8");
3
import graph;
4
usepackage("amsmath");
5
usepackage("textcomp");
6
usepackage("XCharter");
7
usepackage("mathdesign", options="charter");
8
defaultpen(fontsize(10));
9
usepackage("fontenc", options="T1");
10
// decimale punt
usepackage("inputenc", options="utf8");
35
2.7
Een tijdreeks met de grafische rekenmachine ⊵ Stel de rekenmachine in op het gebruik van rijen: mode seq.
⊵ Vul het rij-voorschrift in: Y= . ⊵ ▷ Gebruik ⊴ u ◁voor u en X,T,θ ,n voor n.
⊵ Geef passende vensterinstellingen: window .
Vervolg...
⊵ Plot de grafiek: graph .
⊵ Loop over de grafiek: trace .
⊵ Bekijk de tabel: table .
36
2.8
Vaste punten
Neem eens bijvoorbeeld a = 3.2 en startwaarde x 0 = 0.6875. x 0 = 0.6875 x 1 = 0.6875 x 2 = 0.6875 x 3 = 0.6875 x 4 = 0.6875
.. . De populatie blijft blijkbaar op het zelfde peil van 0.6875: Dit is ook gemakkelijk na te rekenen: x 0 = 0.6875 x 1 = 3.2·0.6875·(1 − 0.6875) = 0.6875.
We zeggen dat 0.6875 een vast punt is van het dynamisch systeem. Je kunt de vaste punten berekenen als volgt: (voorwaarde voor vast punt)
x t+1 = x t .
Een vast punt x voldoet dus aan de volgende vergelijking: x = a x(1 − x)
x = 3.2 · x · (1 − x).
Oplossingen (de twee vaste punten): x =0
of
x =1−
1 = 0.6875. 3.2
Voor de beginwaarde x 0 = 0.6875 krijgen we dus een evenwichtssituatie. Maar deze evenwichtssituatie is niet stabiel. Kijk maar: als de beginwaarde een klein beetje afwijkt van 0.6875, bijvoorbeeld x 0 = 0.69, dan krijg je de volgende tijdreeks: x 0 = 0.69 x 1 = 0.68448 x 2 = 0.69109 x 3 = 0.68314 x 4 = 0.69267
.. . x 40 = 0.79946 x 41 = 0.51304
twee-cyclus
x 42 = 0.79946 x 43 = 0.51304
De tijdreeks stoot zich af van het vast punt 0.6875 en evolueert naar de twee-cyclus {0.79946, 0.51304} (figuur 36). Het ene jaar stijgt de populatie tot ongeveer 80 %, het andere jaar daalt ze 37
terug tot ongeveer 51 %, enzovoort. De oorzaak van dit fenomeen is mooi uit te leggen aan de hand van een zogenaamde webgrafiek van het dynamische model. x 0 = 0.6875
1
xt
0.5
0
20
30
40 t
10
20
30
40 t
x 0 = 0.69
1
xt
10
0.5
0
2.9
Figuur 36 – De evolutie van een populatie is gevoelig voor een kleine verandering in de begintoestand. De populatie ‘stoot zich af’ van het vast punt 0.6875 (evenwichtssituatie) en vervalt in een cyclische schommeling tussen de waarden 0.51304 en 0.79946. In dit voorbeeld is a gelijk aan 3.2.
Webgrafiek
In een webgrafiek kun je de iteratie op een grafische manier volgen. We plotten eerst de grafiek van de kwadratische functie (6)
f (x) = a x(1 − x).
Teken ook de grafiek van de eerste bissectrice y = x . Op de snijpunten van de grafiek van f en y = x liggen de twee vaste punten van het dynamische proces (zie figuur 37 en figuur 38). y
=
x
y 1
0
y 1
y
=
x 0 = 0.2 a = 2.75
y 1
Figuur 37 – De grafiek van de kwadratische functie y = ax(1 − x) van het logistisch model van Verhulst
1 x
x
0
x0
0 0
x1
x0
0 1 x
y 1
x1
Figuur 38 – Webgrafiek van het iteratieproces van Verhulst. Linksboven: de eerste stap. Rechtsboven: de eerste twee stappen. Linksonder: de eerste drie stappen. Rechtsonder: de eerste tien stappen. De baan wordt aangetrokken door het vast punt 0.636363. . . . Begin met de beginwaarde x 0 aan te duiden op de x as. Teken nu een verticaal lijnstukje vanuit dit punt tot aan de grafiek van f . Teken vanaf dit snijpunt een horizontaal lijnstukje totdat je de bissectrice tegenkomt. Teken vanaf dit snijpunt een verticaal lijnstukje naar beneden naar de x -as. Dit wil zeggen dat je de f (x 0 ) neemt als nieuwe beginwaarde.
x2
0
1 x
0
1 x
y 1
0
0 0
1 x
38
Je ziet in figuur 39 dezelfde tijdreeksen uit sectie 2.5 samen met de bijbehorende webgrafiek, telkens met een vijftigtal stappen. xt 1
y 1
y 1
a = 0.8
0
0 0
10
20
30
40
a = 2.75
xt 1
0
50 t
1 x
10
20
30
40
a = 3.2
xt 1
50 t
10
1 x
30
40
a = 3.5
xt 1
50 t
1 x
xt 1
30
40
50 t
10
10
20
1 x
40
50 t
1 x
0
1 x
y 1
y 1
30
0
0 0
0
0 0
1 x
y 1
y 1
10 20 a=4
0
0 0
0 0
1 x
y 1
y 1
20
0
0 0
0 0
1 x
y 1
y 1 0
0
0
0
1 x
Figuur 39 – Tijdreeksen voor verschillende waarden van a met bijbehorende webgrafiek. Uiterst rechts is een tweede webgrafiek getekend zonder de eerste vijftien iteraties. Hier is duidelijk te zien wat de limietwaarden zijn van de tijdreeksen. Voor a = 0.8 is de limietwaarde het vast punt 0, voor a = 2.75 is de limietwaarde het andere vast punt 1 − 1a , voor a = 3.2 wordt de tijdreeks aangetrokken door een 2-cyclus, voor a = 3.5 wordt de tijdreeks aangetrokken door een 4cyclus, en voor a = 4 is de tijdreeks chaotisch. Op de y -as zijn de limietwaarden aangeduid. Je herkent duidelijk een 2-cyclus (bijv. a = 3.2) en een 4-cyclus (bijv. a = 3.5) en de chaotische wirwar van (oneindig) veel limietpunten (a = 4).
Teken op de webgrafieken in potlood nog enkele stappen van het iteratieproces en vul de bijbehorende tabel in. Wat vermoed je voor de limietwaarde(n)? x 0 = 0.11 a = 2.5
y 1
x2 x1 x0
0 0
x0 x1 x2 x3 x4 x5 x6 x7 .. . x 100
0.11 0.24 0.46 ... ... ... ... ... .. .
x0 x1 x2 x3 x4 x5 x6 x7 .. . x 100
0.11 0.33 0.76 ... ... ... ... ... .. .
...
1 x x 0 = 0.11 a = 3.4
y 1
x2
x1
x0
0 0
...
1 x
39
x 0 = 0.5 a = 3.5
y 1
x0 x1 x2 x3 x4 x5 x6 x7 .. . x 100
0.50 0.88 ... ... ... ... ... ... .. .
x0 x1 x2 x3 x4 x5 x6 x7 .. . x 100
0.80 0.64 ... ... ... ... ... ... .. .
x0 x1 x2 x3 x4 x5 x6 x7 .. . x 100
0.50 0.25 ... ... ... ... ... ... .. .
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 .. . x 100
0.35 0.81 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. .
...
0 0
1 x x 0 = 0.8 a=4
y 1
...
0 0
1 x x 0 = 0.5 a=1
y 1
...
0 0
1 x
x 0 = 0.35 a = 3.56
y 1
0 0
1 x
...
40
2.10
Een webgrafiek programmeren
1
//webgrafiek.asy
2
import mijnasy;
3
//import graph;
4
real bissectrice(real x){ return x;
5 6
}
7
picture webgrafiek(real aa=2, real x0=0.2, int nn=1){
8
picture pic;
9
real f(real x) { return aa*x*(1-x);
10 11
}
12
real maximumxy=1;
13
label (pic,"$a$="+(string)aa,
14
label (pic,"$x_0=$"+(string)x0, (0.1, 1.0), E );
15
draw(pic, graph(bissectrice, 0, maximumxy));
16
draw(pic, graph(f, 0, maximumxy));
17
xaxis(pic, "$x$", xmin=0, xmax=maximumxy, RightTicks);
18
yaxis(pic, "$y$", ymin=0, ymax=maximumxy, LeftTicks);
19
real x=x0;
20
real y=f(x);
21
draw (pic, (x,0)--(x,y), Arrow);
22
draw (pic, (x,y)--(y,y));
23
for (int i=0; i
(0.1, 0.9), E );
24
y=f(x);
25
write (y);
26
draw (pic, (x,x)--(x,y)--(y,y));
//beginnen met een pijl
x=y;
27 28
}
29
return pic;
30
}
31
size(6cm);
32
add (webgrafiek(aa=2.75, x0=0.2, nn=50));
41
2.11
Een webgrafiek met de grafische rekenmachine ⊵ Zet de rekenmachine in de modus voor rijen: mode seq
⊵ ⊵ ▷ Vul het rij-voorschrift in: Y= Gebruik ⊴ u ◁voor u en X,T,θ ,n voor n.
⊵▷ Geef passende vensterinstellingen: window , ⊴ zoom ◁5:
Zoomsquare.
Merk op dat de vensterinstellingen automatische gewijzigde worden met zoomsquare.
⊵ Plot de grafiek: format Web.
⊵ Bekijk de grafiek: graph .
⊵ Volg het webdiagram: trace
2.12
Aantrekkende en afstotende vaste punten
We weten al het een en ander over de logistische vergelijking x t+1 = ax t (1 − x t ) (5). Er zijn twee vaste punten: 0 en 1− 1a (zie opdracht 14 op pagina 50) en de groeifactor a kan waarden aannemen tussen 0 en 4. We bekijken dezelfde tijdreeksen uit sectie 2.5 samen met de bijbehorende webgrafiek (zie figuur 39), telkens met een vijftigtal stappen. 42
Als a kleiner of gelijk is aan 1, sterft de populatie uit. Het vaste punt 1 − 1a heeft een negatieve waarde, en is niet interessant omdat het buiten het interval [0, 1] ligt. Er ligt dus maar één vast punt, namelijk 0, in het interval [0, 1]. Dit vaste punt 0 is een aantrekkend vast punt, want de tijdreeks evolueert steevast naar deze waarde. De interessante waarden van de parameter a liggen dus tussen 1 en 4. Als a tussen 1 en 3 ligt, is het vaste punt 1 − 1a een aantrekkend punt, omdat de tijdreeks naar een stabiele evenwichtstoestand evolueert, naar dit vast punt. Als a tussen 3 en 4 ligt, is het vaste punt 1 − 1a niet meer aantrekkend, maar afstotend. De evenwichtstoestand van dit vast punt is niet meer stabiel. Van zodra de beginwaarde x 0 maar een beetje afwijkt van dit vast punt, stoot de baan zich af van deze waarde en wordt aangetrokken door een periodieke cyclus, of wordt volledig chaotisch.
2.13
Wanneer is een vast punt aantrekkend?
Het antwoord is verbluffend eenvoudig. De grafiek mag in de buurt van het vaste punt niet te steil zijn. Meer bepaald moet de hoek tussen de raaklijn en de rechte x -as kleiner zijn dan de hoek die de rechte y = x maakt met de x -as (45°) (zie figuur 40, 41 en 42). Het criterium voor stabiliteit van een vast punt is analytisch zeer mooi te omschrijven: f ′ (x) < 1.
(7)
a = 0.8
y 1
a = 1.5
y 1
0
0 0
1 x
a = 2.75
y 1
0
a = 3.2
y 1
0
1 x
0 0
1 x
Figuur 40 – Links: 0 is een aantrekkend punt (a = 0.8 is kleiner dan 1), want de hoek van de raaklijn met de x -as is kleiner dan 45°. Rechts: 0 is een afstotend vast punt geworden (de hoek tussen raaklijn en x -as is te groot) en 1− 1a wordt een aantrekkend vast punt.
0
1 x
43
Figuur 41 – Links: 1 − 1a is nog een aantrekkend vast punt. Rechts: 1 − 1a is een afstotend vast punt geworden, want de hoek tussen raaklijn en x -as is te groot geworden. De baan wordt aangetrokken door een 2-cyclus.
a = 3.5
y 1
a=4
y 1
0
0 0
2.14
1 x
0
1 x
Figuur 42 – 1− 1a is een afstotend punt, want de hoek met de x -as is groter dan 45°. Links: de baan wordt aangetrokken door een 4-cyclus. Rechts: de baan wordt chaotisch.
Gevoeligheid voor kleine verandering in de beginwaarde
Soms maakt de beginwaarde niet veel uit, zoals blijkt uit figuur 43, maar figuur 44 illustreert een belangrijk aspect van chaotische systemen. Hetzelfde fenomeen treedt op bij weersvoorspellingen op lange termijn. Men kan onmogelijk de vele parameters die het weer beïnvloeden nauwkeurig genoeg bepalen om het weer langer dan een week te kunnen voorspellen. Vandaar de uitspraak van de meteoroloog Lorentz tijdens een lezing in 1972: Predictability: Does the Flap of a Butterfly’s Wings in Brazil set off a Tornado in Texas? Sindsdien wordt de term vlindereffect gebruikt om een aantal chaotische fenomenen te omschrijven. xt
a = 3.2
1
10 t
Figuur 43 – Maakt de beginwaarde iets uit? Voor a = 3.2 blijkbaar niet. De tijdreeksen van twee licht verschillende beginwaarden x 0 = 0.020 (zwart) en x 0 = 0.0205 (rood) naderen naar elkaar. De verschillen worden kleiner.
20 t
Figuur 44 – Het vlindereffect in werking. Kleine verschillen ( x 0 = 0.020 (zwart) versus x 0 = 0.0201 (rood)) in de begintoestand ontsporen al snel tot een grootte-orde van bijna 100 %. Het gevolg op lange termijn is onvoorspelbaarheid.
0.5
0
xt
a=4
1 0.5
0
10
Dat dit geen wiskundige fictie is, bleek op donderdag 19 februari 1998. De weermodellen hadden toen een storm voorspeld boven de Amerikaanse staat Louisiana in het komende weekend. Tegelijkertijd waren echter meteorologen onderzoek aan het doen boven de Pacific, en ze melden een kleine correctie op de modellen. Namelijk, de straalstroom bewoog veel sneller dan verwacht ver buiten de kust van Alaska. Toen men dit gebruikte om de modellen te verbeteren, vond men dat de stormen zouden toeslaan in centraal Florida, en niet in Louisiana. Men zond onmiddellijk een tornado-waarschuwing uit, slechts enkele uren voor een dodelijke tornado Orlando, Florida bereikte. Een klein verschil in de luchtstroming meer dan 6000 km ver zorgde voor een verplaatsing van de storm met verschillende honderden kilometers in het zuidoosten van Amerika. Dit is chaos, een kleine onzekerheid in de parameters kan er voor zorgen dat de functie totaal verschillende waarden aanneemt.
44
2.15
Een overzichtskaart
We hebben al een beetje gespeeld met de regelknop a van de logistische vergelijking (5)
xt
x t+1
logistisch a
x t+1 = ax t (1 − x t ).
We weten ook wat deze parameter a betekent: de ongeremde groeifactor van een populatie. In een zuiver exponentieel groeiproces zou deze a precies de groeifactor zijn. Een groeifactor a = 2 betekent dan dat de konijnenpopulatie zich onbelemmerd zou voortplanten en elk jaar zijn aantal zou verdubbelen. Een groeifactor a = 0.80 betekent langzaam uitsterven. In het logistisch model wordt de groeifactor afgeremd en wordt het gedrag van de populatie ingewikkelder. We vatten het nog even samen in het volgende overzicht (figuur 45). a=4
xt 1
y 1
x∞ 1 0
0 0
10
20
30
40
a = 3.5
xt 1 0
10
0
10
20
30
40
0 xt 1
10
10
x∞ 1 0 0
0 1 2 3 4 a
1 x x∞ 1
y 1 20
30
40
20
0
0
50 t
0
0 1 2 3 4 a
1 x x∞ 1
y 1 30
40
0
0
50 t
0
0 1 2 3 4 a
1 x x∞ 1
y 1
a = 0.8 0
0 1 2 3 4 a
1 x
0
50 t
a = 2.75
xt 1
0 y 1
a = 3.2
xt 1
50 t
20
30
40
0
0
50 t
0
0 1 2 3 4 a
1 x 1
x∞
0 0
1
2 a
3
4
Figuur 45 – Uitertst rechts zijn de limietwaarden van de tijdreeks uitgezet in functie van a. Geheel onderaan zie je het samenvattende bifurcatiediagram.
Groeifactor tussen 0 en 1 0 is een aantrekkend punt. Dit wil zeggen: de populatie sterft uiteindelijk uit, ongeacht de beginpopulatie.
45
Groeifactor tussen 1 en 3 0 is een afstotend punt geworden en het andere vaste punt 1 − 1a wordt aantrekkend. De populatie evolueert dus naar eens stabiele evenwichtssituatie.
Groeifactor tussen 3 en 4 Het vast punt 1 − 1a is niet meer stabiel en wordt afstotend, er ontstaat een periodieke cyclus, p aanvankelijk met periode 2. Als a de waarde 1 + 6 (ongeveer 3.4) heeft, splitst de periode zich plots in een viercyclus. Voor nog grotere waarden van a krijgen we splitsingen in een 8-cyclus, 16-cyclus, enzovoort. De lengte van de intervallen waarover a een zelfde periode geeft, wordt steeds korter en korter tot a de waarde 3.5699457. . . bereikt. Vanaf deze waarde onstaat chaos met het vlindereffect (heel kleine veranderingen in de begintoestand geeft totaal andere banen). De meeste waarden van a boven 3.5699457. . . geven een chaotisch gedrag, maar hier en daar zijn er toch ‘vensters’ met waarden van a met niet-chaotisch gedrag. We noemen deze vensters soms eilandjes van stabiliteit. p Rond a = 1+ 8 = 3.8284 . . . bijvoorbeeld begint duidelijk een stabiele drie-cyclus (zie 47). Periodeverdubbeling begint opnieuw met een 6-cyclus, 12-cyclus, enzovoort, en breekt weer af in chaos. Er zijn nog andere gebiedjes met een 5-cyclus, enzovoort. Cycli met elke mogelijke waarde n schijnen voor te komen. De overgang naar een andere periode heet bifurcatie.
Groeifactor gelijk aan 4 De populatie schommelt voortdurend chaotisch en neemt daarbij alle mogelijke waarden aan in het interval ]0, 1[. Groeifactor groter dan 4 De populatie verlaat het interval ]0, 1[. Het gedrag voor enkele waarden van a (0 ≤ a ≤ 4) is in figuur 45 samengevat in een diagram: de limietwaarde(n) van de baan van x 0 = 0.20 in functie van de waarde van a. Het gedrag voor veel waarden van a (0 ≤ a ≤ 4) is samengevat in figuur 46 in een diagram. Dergelijk diagram heet een bifurcatiediagram. Je ziet er duidelijk vanaf welke waarde van a een splitsing (=bifurcatie) optreedt, bijvoorbeeld van stabiele baan naar een 2-cyclus, van een 2-cyclus naar een 4-cyclus, enzovoort.
46
Figuur 46 – Het bifurcatiediagram van het logistisch model x t+1 = ax t (1 − x t ), een samenvattende kaart van de mogelijke limietwaarde(n) in functie van de (ongeremde) groeifactor a. Van links naar rechts zie je het verloop van een stabiele baan naar een baan met periodieke schommelingen met steeds groter wordende periode, tot chaos intreedt. Bemerk ook afzonderlijke eilandjes van stabiliteit, bijvoorbeeld rond a = 3.82, beter te zien in figuur 47.
Figuur 47 – Het interessante deel van het bifurcatiediagram, met a tussen 3 en 4. Enkele eilandjes van stabiliteit, bijvoorbeeld rond a = 3.82, zijn nu heel goed te zien.
We merken tenslotte op dat het bifurcatiediagram een fractal is. Inderdaad, alle kenmerken van een fractal zijn aanwezig: iteratie, gebroken dimensie (overgang van een eendimensionaal lijnstuk naar een tweedimensionale chaotische wolk) en. . . zelfgelijkvormigheid. Bekijk maar eens het detail in figuur 48.
47
Figuur 48 – Het detail in de rode kader lijkt heel sterk op het hele bifurcatiediagram. Het bifurcatiediagram is dus zelfgelijkvormig.
2.16
Besluit
De opmerkelijke eigenschap van de logistische vergelijking is de eenvoud van het model (kwadratisch) samen met de enorme ingewikkeldheid van het bijbehorende dynamica, zoals May schrijft in zijn artikel van 1976 Simple mathematical models with very complicated dynamics [May, 1976].
48
2.17
Een bifurcatiediagram programmeren
Men neemt in de praktijk een willeukeurig beginzaadje in het interval [0, 1], evalueert de eerste n termen, bijvoorbeeld de eerste 80 (zie de variabele overslaan in het volgende programma. We veronderstellen dat het systeem zich gesettled heeft en plotten vanaf dan de volgende m termen, bijvoorbeeld nog 100 termen (zie de variabele nn in het volgende programma).
1
//bifurcatiediagram.asy
2
import graph; import mijnasy;
3
srand ((int)time("%H%M%S"));
4
size(10cm, 8cm, IgnoreAspect);
5
picture bifurcatiediagram(real minimuma = 0, real maximuma = 4, int na = 1000){
6
picture pic;
7
real[] reeks;
8
real deltaa = (maximuma - minimuma)/na;
9
for (int i = 0; i <= na; ++i){ reeks[i] = minimuma + i*deltaa;
10 11
}
12
int aantal = reeks.length;
13
for (int jj = 0; jj < aantal; ++jj){
14
real aa = reeks[jj];
15
real functie(real x) { return aa*x*(1 - x);
16 17
}
18
real x = 0.2;
19
int nn = 100;
//baan van nn punten berekenen
20
int overslaan = 80;
//begin weggooien, rest = limiet
21
if ( aa < 3.4) { overslaan = nn - 4; //tot 3.4 maximum 1- of 2-cyclus
22 23
}
24
for (int i = 0; i < nn; ++i){
25
real y = functie(x);
26
if (i > overslaan){ draw(pic, (aa, y));
27 28
}
29
x = y; }
30 31
}
32
xaxis(pic, "$x$", xmin = 3, xmax = 4, BottomTop, RightTicks(Step = 0.1, step = 0.01));
33
yaxis(pic, rotate(0)*"$x_{\infty}$", ymin = 0, ymax = 1, LeftRight, LeftTicks); return pic;
34 35
}
36
add(bifurcatiediagram(minimuma = 3,
maximuma = 4,
49
na = 200));
2.18 11
Opdrachten
Experimenteer met het programma tijdreeks.asy. Experimenteer met verschillende waarden van a en x0 van picture tijdreeks(real a, real x0, int t) die een tijdreeks tekent voor het logis-
tisch model van Verhulst. De parameter t is het aantal iteraties van het proces. Zoek een waarde van a waarvoor de tijdreeks wordt aangetrokken door een acht-cyclus. Kun je ook een drie-cyclus opsporen? x t+1 = a x t (1 − x t )
12
Bewijs dat de tijdreeks van het Verhulst-proces x n+1 = a x n (1 − x n )
altijd naar 0 convergeert als a < 1. 13
(a) Ga na dat de afgeleide van de kwadratische functie f (x) = ax(1 − x) in de twee vaste punten gelijk is aan: f ′ (0) = a 1 f′ 1− = 2 − a. a
(8) (9)
Voor welke waarden van a is het vaste punt 0 dan aantrekkend? (b) Voor welke waarden van a is het vaste punt 1 −
1 a
dan aantrekkend?
(c) Ga na dat hoogstens een van de twee vaste punten aantrekkend kan zijn. 14
(a) Zoek de twee vaste punten van het volgende Verhulst-proces x n+1 = 1.5x n (1 − x n )
(b) Zoek de twee vaste punten van het Verhulst-proces x n+1 = a x n (1 − x n )
in functie van de parameter a. 15
Bewijs dat de parameter a in het Verhulst-proces x n+1 = a x n (1 − x n )
moet liggen tussen 0 en 4 als we eisen dat de de populatiegrootte x moet liggen tussen 0 en 1. 16
Het logistische model wordt beschreven door de volgende iteratie: Nt Nt+1 = Nt + r Nt 1 − . K
(10)
Stel dat er in het begin ( t = 0) twee konijnen zijn. Hoeveel konijnen zijn er na 10 jaar? na 20 jaar? na 30 jaar?
50
Oplossingen van de opdrachten 10
x 0 = 0.11 a = 2.5
y 1
0 0
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 .. . x 100
0.11 0.24 0.46 0.62 0.59 0.61 0.60 0.60 0.60 0.60 0.60 .. .
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 .. . x 100
0.11 0.33 0.76 0.63 0.79 0.56 0.84 0.46 0.84 0.45 0.84 .. .
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 .. . x 100
0.50 0.88 0.38 0.83 0.50 0.87 0.38 0.83 0.50 0.87 0.38 .. .
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 .. . x 100
0.80 0.64 0.92 0.29 0.82 0.59 0.97 0.11 0.40 0.96 0.15 .. .
x 100 = 0.60, dit is een aantrekkend vast punt.
...
1 x x 0 = 0.11 a = 3.4
y 1
0 0
De tijdreeks wordt aangetrokken door een tweecyclus.
...
1 x x 0 = 0.5 a = 3.5
y 1
0 0
De tijdreeks wordt aangetrokken door een viercyclus.
...
1 x x 0 = 0.8 a=4
y 1
0 0
De tijdreeks verloopt chaotisch.
...
1 x
51
x 0 = 0.5 a=1
y 1
0 0
a = 3.56
0 0
11
0.50 0.25 0.19 0.15 0.13 0.11 0.10 0.09 0.08 0.08 0.07 .. .
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 .. . x 100
0.35 0.81 0.55 0.88 0.37 0.83 0.50 0.89 0.35 0.81 0.55 0.88 0.37 0.83 0.49 0.89 0.35 .. .
x 100 = 0.00 0 is dus een aantrekkend vast punt.
...
1 x
x 0 = 0.35 y 1
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 .. . x 100
1 x
De tijdreeks wordt aangetrokken door een achtcyclus.
...
Een acht-cyclus en een drie-cyclus: xt
a = 3.567
1
y 1
y 1
0.8 0.6 0.4 0.2 0 0
10
20
30
40
50 t
0 0
1 x
0
1 x
0
1 x
a = 3.83 xt
1
y 1
y 1
0.8 0.6 0.4 0.2 0
16
10
20
30
40
0
50 t
0 0
⊵ ⊵ ⊵ , 32 , 32 . 32
52
1 x
Referenties Barnsley, M. and Rising, H. (1993). Fractals Everywhere. Academic Press, Boston, second edition. Devaney, R. L. (1995). Chaos in the classroom. Boston. http://math.bu.edu/DYSYS/. Malthus, T. (1798). An Essay on the Principle of Population as It Affects the Future Improvement of Society, with Remarks on the Speculations of Mr. Godwin, M. Condorcet, and Other Writers. London: J. Johnson. Mandelbrot, B. (1982). The fractal geometry of Nature. W H Freeman & Co. isbn 0 7167 1186 9. Marquez-Raygoza, A. (2015). The Sierpinski Triangle Page to end most Sierpinski Triangle Pages. http://www.oftenpaper.net/sierpinski.htm. May, R. M. (1976). Simple Mathematical Models with very Complicated Dynamics. Nature 261: 459–467. Peitgen, H.-O. and Richter, P. H. (1986). The Beauty of Fractals: images of complex dynamical systems. Springer. Van de Woestyne, I. (2000). Fractalen. http://www.cmmc.be/topics/download/fractalen.pdf. Van Hirtum, W. (2008).
Programmeren met asymptote.
http://users.skynet.be/
denkendehanden/asyprog.pdf.
Verhulst, F. (2003). Chaos en orde. Epsilon Uitgaven, Zebra-reeks, deel 16, Utrecht. Verhulst, P.-F. (1838). Notice sur la loi que la population suit dans son accroissement. Correspondance mathématique et physique, 10: 113–121.
53
Trefwoordenregister A
H
aantrekken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 aantrekkend vast punt . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 affiene transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 afgeleide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 afstotend vast punt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 attractor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9, 10
hartvorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
I ifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 10, 22 invariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 iteratie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7, 9, 23
B baan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Barnsley, M.F. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 22 bifurcatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 bissectrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
J Julia, Gaston Maurice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
K C cartesiaanse vergelijking. . . . . . . . . . . . . . . . . . . . . . . . . . .7 chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 34 chaos-spel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 18 contractie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 10 cyclisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
D deterministisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Devaney, Robert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11, 17 dimensie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 dobbelsteen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 draagkracht, ecologische . . . . . . . . . . . . . . . . . . . . . . . . . 31 driehoekjes verwijderen . . . . . . . . . . . . . . . . . . . . . . . . . . 18
E ecologische draagkracht . . . . . . . . . . . . . . . . . . . . . . 30, 31
kans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 klokvorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Koch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . zie von Koch Koch-sneeuwvlok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 20
L lineaire transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 logaritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 logistische model van Verhulst . . . . . . . . . . . . . . . . . . . . 31 logistische vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Lorentz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
M Malthus, Thomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Mandelbrot, Benoît . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 matrixvermenigvuldiging . . . . . . . . . . . . . . . . . . . . . . . . . 23 meervoudige-reductiekopieermachine . . . . . . . . . . . . 12 mrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 22
F
P
fractal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 47 fractal-dimensie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
poolcoördinaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
R
G geïtereerd functiesysteem . . . . . . . . . . . . . . . . . . . . . . 9, 10 gelijkvormig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 gelijkvormigheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
raaklijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 rotatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13, 23
54
S schaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 scheeftrekking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Sierpinski arrowhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Sierpinski, Waclaw Franciszek . . . . . . . . . . . . . . . . . . . . . 9 Sierpinski-driehoek . . . . . . . . . . . . . . . . . . . . . . . . 8, 18, 22 Sierpinski-zeshoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 sneeuwvlok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 spiegeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 stabiliteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
T tijdreeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 toeval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
V varenblad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 20, 22 vaste punten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Verhulst, Pierre-François . . . . . . . . . . . . . . . . . . . . . . . . . 30 Verhulst-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 verschuiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 vier-cyclus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 vlindereffect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 von Koch, Helge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
W webgrafiek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Z zaadje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 zelfgelijkvormig . . . . . . . . . . . . . . . . . . . . . . . . . . 13, 19, 21 zelfregulerend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
55