De chaostheorie1 is een onderzoeksdomein binnen de wiskunde met toepassingen in weersvoorspelling, fysica, ingenieurswetenschappen, economie en biologie. Ze onderzoekt het gedrag van dynamische systemen die extreem gevoelig zijn voor kleine schommelingen in de begintoestand. Een effect dat beter bekend is onder zijn populaire Engelse benaming: the butterfly effect2.
Kleine verschillen in de begintoestand van een dynamisch systeem — bijvoorbeeld veroorzaakt door afrondingsfouten bij numerieke berekeningen — kunnen immers een enorme impact hebben op het gesimuleerde gedrag van dergelijke systemen, waardoor voorspellingen op lange termijn schier onmogelijk worden. Dit komt zelfs voor wanneer deze systemen deterministisch zijn, wat erop neerkomt dat het gedrag van het systeem in de toekomst volledig afhangt van de begintoestand, zonder dat er willekeurige invloeden optreden. Met andere woorden, de deterministische aard van dergelijke systemen zorgt er niet voor dat ze voorspelbaar worden.
Het begrip chaos krijgt hierdoor een technische betekenis — te onderscheiden van het losse alledaagse woordgebruik — en betekent dan dat de schijnbare wanorde toch exact bepaald is en geordend tot stand komt volgens een algoritme of een rekenregel. Dit gedrag staat bekend als deterministische chaos, of kortweg chaos. Dit wordt door Edward Lorenz3 als volgt samengevat:
The fluttering of a butterfly's wing in Rio de Janeiro, amplified by atmospheric currents, could cause a tornado in Texas two weeks later.
— Edward Lorenz
Het volgende eenvoudige model voor de groei van een populatie kan bijvoorbeeld toegepast worden op het visbestand in een meer, bacteriën in een proefbuis, of tal van andere gelijkaardige omstandigheden. Hierbij wordt verondersteld dat een populatie kan schommelen tussen 0 (volledig uitgestorven) en 1 (maximale populatie die door de omgeving getolereerd wordt).
Als de grootte of de dichtheid van de populatie op tijdstip $$t_i$$ gelijk is aan $$d$$, dan veronderstellen we dat de populatie op tijdstip $$t_{i+1}$$ gelijk is aan $$rd(1-d)$$, waarbij het argument $$r$$ — de vruchtbaarheidsparameter genoemd — de mate van groei bepaalt.
Drie regels die achtereenvolgens de volgende informatie bevatten i) de initiële populatiedichtheid $$d \in \mathbb{R}$$, ii) de waarde van de vruchtbaarheidsparameter $$r \in \mathbb{R}$$, en iii) het aantal tijdsstappen $$s \in \mathbb{N_0}$$ waarover we de populatiedichtheid willen simuleren (inclusief het tijdstip $$t_0$$).
Als $$r$$ rond de $$2$$ ligt, dan benadert de populatiedichtheid na verloop van tijd de waarde $$1 - \frac{1}{r}$$.
Invoer:
0.1
1.9
6
Uitvoer:
0.1
0.171
0.26934210000000003
0.373914173018421
0.44479449204530547
0.4692094685937818
Als $$r = 3$$ convergeert de populatiedichtheid naar een toestand waarbij alternerend tusssen twee waarden gesprongen wordt.
Invoer:
0.1
3
12
Uitvoer:
0.1
0.2700000000000001
0.5913000000000002
0.7249929299999999
0.5981345443500454
0.7211088336156269
0.603332651091411
0.7179670896552621
0.6074710434816448
0.7153499244388992
0.6108732301324811
0.7131213805199696
Als $$r \geq 4$$ dan wordt het gedrag van het model chaotisch. Dat betekent dat de resultaten extreem kunnen verschillen bij zeer kleine schommelingen van de begintoestand. Vergelijk bijvoorbeeld het verschil in gedrag tussen dit voorbeeld en het volgende voorbeeld.
Invoer:
0.1
4
60
Uitvoer:
0.1
0.36000000000000004
0.9216
... (54 regels) ...
0.977464119602946
0.08811205796713474
0.32139329283172413
Een verschil van $$0.00000000001$$ in de initiële populatiedichtheid resulteert in een groot verschil in de populatiedichtheid op tijdstip $$t_{59}$$. Dit is chaotisch gedrag, en het voorbeeld toont aan dat de populatiedichtheid extreem moelijk te voorspellen is, omdat kleine verschillen bij aanvang op termijn kunnen resulteren in grote verschillen.
Invoer:
0.10000000001
4
60
Uitvoer:
0.10000000001
0.36000000003200006
0.9216000000358401
... (54 regels) ...
0.830632498181969
0.5627286045838009
0.9842604886678766
Het zou goed kunnen dat de resultaten die je krijgt voor de laatste twee voorbeelden sterk afwijken van de resultaten die hier getoond worden. Verschillende programmeertalen en rekenomgevingen gebruiken immers verschillende technieken om floating point getallen af te ronden. Deze kleine verschillen kunnen grote verschillen veroorzaken bij het rekenen met floating point getallen, te wijten aan de chaotische eigenschappen van het model.
Als bijkomende oefening (niet verplicht) moet je maar eens proberen om bij je implementatie de formule $$rd(1-d)$$ te vervangen door de identieke formule (althans wiskundig gezien) $$rd - rd^2$$. De resultaten van deze implementaties kunnen sterk verschillen naargelang de ene dan wel de andere formule gebruikt wordt, aangezien de formules resulteren in andere afrondingsfouten.
De meteoroloog Edward Lorenz4 merkte deze effecten — die veroorzaakt worden door afrondingsfouten — op bij het bestuderen van een model voor atmosferische convectie5. Door zijn onderzoek naar deze effecten werd hij de grondlegger van de chaostheorie6.
Nadat de stad Olympia (Washington, VSA) op 28 februari 2001 was opgeschrikt door een aardbeving met een kracht van 6.8 op de schaal van Richter, ontdekte winkelier Jason Ward dat een zandstraalslinger de aardbeving had vastgelegd zoals te zien is in onderstaande afbeelding.
Seismologen zeggen dat de "bloem" in het midden een weerspiegeling is van de golven met hogere frequentie die het eerst aankwamen. De buitenste oscillaties met grotere amplitude zijn een registratie van de golven met lagere frequentie die later aankwamen. Norman MacLeod — president van Gaelic Wolf Consulting in Port Townsend — zei hierover aan ABC News7
Je denkt nooit aan aardbevingen als iets kunstzinnig — ze zijn doorgaans gewelddadig en destructief. Maar temidden van al die chaos werd dit subtiele kunstwerk gecreëerd.