faculteit wetenschappen
en bio-ingenieurswetenschappen
Vakgroep Wiskunde
Bachelorproef I
Inleiding tot fractalen
Jeroen Ooge
3de Bachelor wiskunde
Promotor: prof. Eva Colebunders
Dank aan dr. Didier Deses voor
de hints inzake gebruik van Matlab.
academiejaar 2014-2015
Inhoudsopgave
Inleiding 1
1 Constructie van de metrische ruimte der fractalen 2
2 Volledigheid van de ruimte der fractalen 5
3 Contracties op de ruimte der fractalen 10
4 Continue afhankelijkheid van parameters 15
5 Het inverse probleem 18
6 Fractale dimensie 20
Conclusie 25
Referenties
Appendix
Inleiding
De wereld rondom ons bevat een ongelooflijke rijkdom aan interessante patronen: veren,
wolken, bergen, varenbladen, bladnerven, kustlijnen, bliksemschichten, groenten zoals
bloemkool en broccoli romanesco... Hun grillige vormen lijken het resultaat van een
willekeurig procede, maar bij nauwkeuriger onderzoek blijkt dat ze op iedere schaal hun
algemene ‘structuur’ behouden.
De wiskundige analoga van deze natuurlijke figuren passen niet in de klassieke Euclidische
meetkunde. De Poolse wiskundige Benoıt Mandelbrot (1924-2010) doopte ze daarom in
1975 fractalen, naar het Latijnse ‘fractus’, wat ‘gebroken’ en ‘onregelmatig’ betekent. Zo
ontstond al snel een geheel nieuwe, boeiende tak van wiskunde: fractale meetkunde.
Met dit instrument kunnen we schijnbare onregelmatigheden in de
natuur verklaren en wiskundig modelleren. Het onderwerp is bij
het ruime publiek gekend door prachtige, computergegenereerde
afbeeldingen, zoals de klassieke varen hiernaast, maar achter deze
illustraties gaat een uitgebreide wiskundige theorie schuil. Om
fractaal-zijn uberhaupt formeel te kunnen definieren, hebben we
een heleboel voorbereidend werk nodig. In deze paper wordt de
fractale geometrie stapsgewijs opgebouwd in een metrisch kader.
In hoofdstuk 1 construeren we de metrische ruimte waarin fractalen
leven, gebruik makend van het werk van de Duitser Felix Hausdorff
(1868-1942) uit 1915. In het volgende gedeelte tonen we aan dat
de ruimte der fractalen volledig is. Dit laat ons toe in hoofdstuk 3
een fundamenteel resultaat van de Pool Stefan Banach (1892-1945) uit 1920 toe te passen.
We voeren daar ook het ietwat modernere concept ‘IFS’ in en illustreren hoe de elegante
theorie daarrond ons toelaat attractoren te tekenen. Het subtiele verschil tussen fractalen
en attractoren kan pas in het laatste hoofdstuk verduidelijkt worden. In de laatste secties
belichten we ten slotte continue afhankelijkheid van parameters en fractale dimensie.
1
1. Constructie van de metrische ruimte der fractalen
In dit hoofdstuk construeren we de metrische ruimte waarin we in deze paper zullen werken:
de ruimte der fractalen. We maken gebruik van de voorkennis over metrische ruimten die
vergaard werd in [5] en [6] en volgen de algemene opbouw van [2] (p. 6-35) en [8] (p. 65-68).
In de hele paper werken we in een volledige metrische ruimte (X, d). Dat wil zeggen dat de
afbeelding d : X ×X → R+ voldoet aan de onderstaande drie voorwaarden en dat iedere
Cauchyrij in X convergent is.
∀x ∈ X : d(x, x) = 0 (reflexiviteit)
∀x, y ∈ X : d(x, y) = d(y, x) (symmetrie)
∀x, y, z ∈ X : d(x, y) ≤ d(x, z) + d(z, y) (driehoeksongelijkheid)
We willen over X een nieuwe metrische ruimte construeren.
Definitie 1.1. H(X) is de ruimte bestaande uit alle niet-lege, compacte delen van X.
We zoeken nu een metriek h op H(X). Daarvoor hebben we eerst twee definities nodig.
Definitie 1.2. We definieren de afstand tussen elke x ∈ X en A ∈ H(X) als volgt:
d(x,A) = min{ d(x, a) | a ∈ A }.
Is deze definitie zinvol? Bestaat er altijd een dergelijk minimum? Aangezien d continu is,
weten we dat ook de afbeelding
d(x, ·) : A→ R : a 7→ d(x, a)
continu is. Omdat A compact is, kunnen we door de stelling van Weierstrass (eigen-
schap 1.4.24 in [6]) besluiten dat d(x, ·) een minimum heeft.
Definitie 1.3. We definieren de afstand tussen elke A en B in H(X) als volgt:
d(A,B) = max{ d(a,B) | a ∈ A }.
Indien de afbeelding
d(·, B) : A→ R : a 7→ d(a,B)
continu is, kunnen we, opnieuw door toepassing van de stelling van Weierstrass op de
compacte verzameling A, besluiten dat het maximum goed gedefinieerd is. Aangezien
2
Lipschitz-zijn (de betekenis van dit concept wordt later in definitie 3.1 herhaald) continuıteit
impliceert, is het voldoende aan te tonen dat
∀ a1, a2 ∈ A : |d(a1, B)− d(a2, B)| ≤ d(a1, a2).
Kies hiertoe een willekeurige b ∈ B. Dan geldt er voor alle a1, a2 ∈ A zeker:
d(a1, B) ≤ d(a1, b) ≤ d(a1, a2) + d(a2, b).
In het bijzonder verkrijgen we dat d(a1, B)− d(a2, B) ≤ d(a1, a2). Door omkering van de
rollen van a1 en a2, volgt ook dat d(a2, B) − d(a1, B) ≤ d(a1, a2), wat het te verkrijgen
resultaat impliceert.
Is de afbeelding d uit definitie 1.3 de metriek h op H(X) die we zoeken? Het is duidelijk
dat voor iedere A ∈ H(X) geldt dat d(A,A) = 0, want door de reflexiviteit van d is
min{ d(a, b) | a, b ∈ A } = 0.
Hoe zit het met de symmetrie van d in H(X)? Beschouw de onderstaande opstelling in het
reele vlak, uitgerust met de Euclidische metriek, waarbij A en B gesloten vierkanten zijn.
A
a1
a2
B
b1
b2
De figuur illustreert duidelijk dat d(a1, b1) = d(A,B) 6= d(B,A) = d(a2, b2). Bijgevolg is
dit een tegenvoorbeeld voor de symmetrie en dus ook van het metriek-zijn van d in H(X).
Voordat we verder gaan, bewijzen we dat ook de driehoeksongelijkheid geldt voor d inH(X).
Eigenschap 1.4. ∀A,B,C ∈ H(X) : d(A,B) ≤ d(A,C) + d(C,B).
Bewijs. We merken op dat voor iedere a ∈ A geldt:
d(a,B) = min{ d(a, b) | b ∈ B }≤ min{ d(a, c) + d(c, b) | b ∈ B }, ∀ c ∈ C= d(a, c) + min{ d(c, b) | b ∈ B }, ∀ c ∈ C= d(a, c) + d(c, B), ∀ c ∈ C.
Specifiek hebben we dus ook:
d(a,B) ≤ min{ d(a, c) | c ∈ C }+ min{ d(c, B) | c ∈ C }≤ d(a, C) + max{ d(c, B) | c ∈ C }= d(a, C) + d(C,B).
3
Hieruit volgt ten slotte dat
d(A,B) = max{ d(a,B) | a ∈ A }≤ max{ d(a, C) | a ∈ A }+ d(C,B)
= d(A,C) + d(C,B).
Aangezien de afbeelding d alleen symmetrie mist om een metriek te zijn (we spreken dan
over een quasimetriek), kon Hausdorff de gezochte metriek h construeren als volgt:
Definitie 1.5. De Hausdorff-afstand h tussen A,B ∈ H(X) is gedefinieerd als volgt:
h(A,B) = d(A,B) ∨ d(B,A).
Deze aanpak werkt in het algemeen, maar we gaan hier toch na dat h voldoet aan alle
voorwaarden. De afbeelding h is per definitie symmetrisch en voldoet aan reflexiviteit,
omdat d reflexief is. We moeten dus alleen controleren of de driehoeksongelijkheid nog
steeds van toepassing is voor alle A,B,C ∈ H(X). Dat is inderdaad zo:
h(A,B) = d(A,B) ∨ d(B,A)
≤(d(A,C) + d(C,B)
)∨(d(B,C) + d(C,A)
)(eigenschap 1.4)
≤(d(A,C) ∨ d(C,A)
)+(d(B,C) ∨ d(C,B)
)= h(A,C) + h(C,B).
Dit toont aan dat(H(X), h
)een metrische ruimte is.
4
2. Volledigheid van de ruimte der fractalen
In dit deel bewijzen we dat(H(X), h
)een volledige ruimte is op basis van [2] (p. 35-41).
We tonen eerst een handige stelling aan, die ons in staat stelt gemakkelijker met de
Hausdorff-metriek te werken.
Afspraak. We noteren voor iedere A ∈ H(X) en elk willekeurig positief reeel getal ε:
A+ ε := {x ∈ X | ∃ a ∈ A : d(a, x) ≤ ε }.
Stelling 2.1. ∀A,B ∈ H(X), ∀ ε ≥ 0: h(A,B) ≤ ε⇔ A ⊆ B + ε en B ⊆ A+ ε.
Bewijs. Het gevraagde volgt meteen uit de definities:
d(A,B) ≤ ε⇔ max{ d(a,B) | a ∈ A } ≤ ε
⇔ ∀ a ∈ A : d(a,B) = min{ d(a, b) | b ∈ B } ≤ ε
⇔ ∀ a ∈ A, ∃ b ∈ B : d(a, b) ≤ ε
⇔ A ⊆ B + ε.
Door het verwisselen van A en B, verkrijgen we tevens dat
d(B,A) ≤ ε⇔ B ⊆ A+ ε.
We besluiten dat
h(A,B) = d(A,B) ∨ d(B,A) ≤ ε⇔ d(A,B) ≤ ε en d(B,A) ≤ ε
⇔ A ⊆ B + ε en B ⊆ A+ ε.
Voordat we de volledigheid van(H(X), h
)kunnen aantonen, hebben we een belangrijk
lemma nodig.
Lemma 2.2 (Uitbreidingslemma). Zij (An)n een Cauchyrij in H(X) en (nk)k een
strikt stijgende rij natuurlijke getallen. Stel dat (ank)k, met ank ∈ Ank voor elke k, een
Cauchyrij is in (X, d). Dan bestaat er een Cauchyrij (an)n waarbij
(1) an ∈ An voor elke n;
(2) ank = ank voor elke k.
5
Bewijs. We contrueren de rij (an)n volgens het onderstaande procede (k ≥ 2).
1 ≤ n ≤ n1.
Kies an willekeurig uit de verzameling { a ∈ An | d(a, an1) = d(an1 , An) }. Dat wil zeggen
dat an een van de punten is die het dichtst bij An liggen. Merk op dat een dergelijk punt
bestaat door de welgedefinieerdheid van d(·, An).
nk + 1 ≤ n ≤ nk+1.
an is een punt uit de verzameling { a ∈ An | d(a, ank) = d(ank , An) }.
We tonen nu aan dat de aldus gedefinieerde rij (an)n voldoet aan de gestelde voorwaarden.
(1) Per definitie is an ∈ An voor elke n.
(2) Kies een willekeurige k. Er geldt:
d(ank , ank) = d(ank , Ank) = 0,
waarbij de laatste gelijkheid van kracht is, omdat ank ∈ Ank . Door de reflexiviteit
van d is dan ank = ank .
We moeten nu alleen nog nagaan dat (an)n een Cauchyrij is. Kies daartoe een willekeurige
ε > 0. Bestaat er een rangnummer N > 0, zodat
∀ p, q ≥ N : d(ap, aq) ≤ ε?
Om deze afschatting maken, beschikken we over de volgende informatie:
� (An)n is Cauchy in(H(X), h
)⇔ ∀ ε > 0, ∃N1 > 0, ∀ p1, q1 ≥ N1 : h(Ap1 , Aq1) ≤ ε
3;
� (ank)k is Cauchy in (X, d)⇔ ∀ ε > 0, ∃N2 > 0, ∀ p2, q2 ≥ N2 : d(anp2 , anq2 ) ≤ ε3.
Stel N = max{N1, N2}. Voor elke p, q ≥ N volgt er dan:
d(ap, aq) ≤ d(ap, anp) + d(anp , anq) + d(anq , aq)
≤ d(ap, anp) +ε
3+ d(anq , aq),
waarbij p ∈ {np−1 + 1, . . . , np} en q ∈ {nq−1 + 1, . . . , nq}. Aangezien h(Ap, Anp) ≤ ε3,
volgt uit stelling 2.1 dat Ap ⊆ Anp + ε3
en dus is d(ap, anp) ≤ ε3
op voorwaarde dat we anpgoed kozen. Volgens dezelfde redenering volgt dat d(anq , aq) ≤ ε
3. We concluderen zoals
gewenst dat d(ap, aq) ≤ ε.
Stelling 2.3 (Volledigheidsstelling). De ruimte(H(X), h
)is volledig en voor elke
Cauchyrij (An)n wordt de limiet A gekarakteriseerd door
A = {x ∈ X | ∀n, ∃Cauchyrij (an)n → x met an ∈ An }.
6
Bewijs. We breken het bewijs voor de duidelijkheid op in vijf delen.
Deel 1. A 6= ∅.
Het is voldoende aan te tonen dat er een Cauchyrij (an)n bestaat met an ∈ An voor elke
n, want door de volledigheid van X is deze convergent. Aangezien (An)n een Cauchyrij is
in H(X), kunnen we voor iedere k ∈ N een bijbehorende Nk vinden, zodat
∀ p, q ≥ Nk : h(Ap, Aq) ≤1
2k.
We bekomen aldus een strikt stijgende rij van rangnummers N1 < N2 < . . . . We bewijzen
nu per inductie op k dat we een Cauchyrij (xNk)k kunnen construeren met xNk ∈ ANk voor
elke k . Kies een xN1 ∈ AN1 willekeurig.
Basisstap. Aangezien h(AN1 , AN2) ≤ 12, kunnen we door stelling 2.1 een xN2 ∈ AN2 vinden,
zodat d(xN1 , xN2) ≤ 12.
Inductiehypothese. Veronderstel dat we voor elke k ∈ {2, . . . , n − 1} een xNk hebben
gevonden, zodat d(xNk−1, xNk) ≤ 1
2k−1 .
Inductiestap. Omdat h(ANn−1 , ANn) ≤ 12n−1 , kunnen we opnieuw een xNn ∈ ANn bepalen,
zodat d(xNn−1 , xNn) ≤ 12n−1 .
Om te controleren dat (xNk)k een Cauchyrij is, kiezen we een willekeurige ε > 0 en een
N > 0, zodat∑∞
i=N12i≤ ε. Dit is mogelijk, omdat de partieelsommen kleiner worden
naarmate i toeneemt. Door het meermaals toepassen van de driehoeksongelijkheid geldt:
∀ p, q ≥ N : d(xNp , xNq) ≤ d(xNp , xNp+1) + . . . + d(xNq−1 , xNq) <∞∑i=N
1
2i≤ ε.
Ten slotte weten we door het uitbreidingslemma 2.2 dat er een Cauchyrij (an)n bestaat
met an ∈ An voor elke n en aNk = xNk voor iedere k.
Deel 2. A is gesloten.
Veronderstel dat (xn)n → x een rij in A is. We moeten nu aantonen dat x ∈ A. Er zou
met andere woorden voor elke n een rij (yn)n → x met yn ∈ An moeten bestaan.
Aangezien (xn)n → x, bestaat er een strikt stijgende rij van rangnummers (Nn)n, zodat
∀n : d(xNn , x) ≤ 12n
. We weten tevens per definitie van A dat er voor iedere xk een rij
(akn)n → xk met akn ∈ An bestaat. In het bijzonder geldt dus: (aNnn )n → xNn . We kunnen
hierdoor een rij van rangnummers (Mn)n vinden, zodat ∀n : d(aNnMn, xNn) ≤ 1
2n. Bijgevolg:
∀n : d(aNnMn, x) ≤ d(aNnMn
, xNn) + d(xNn , x) ≤ 1
n.
Dit betekent dat (aNnMn)n → x met aNnMn
∈ AMn voor elke n. Door toepassing van lemma 2.2,
kunnen we (aNnMn)n uiteindelijk uitbreiden tot een rij (yn)n → x met yn ∈ An voor iedere n.
7
Opmerking. Aangezien A gesloten is en X volledig is, is A ook volledig.
Deel 3. ∀ ε > 0, ∃N > 0, ∀n ≥ N : A ⊆ An + ε.
Kies een willekeurige ε > 0. Door het Cauchy-zijn van de rij (An)n in H(X) hebben we:
∃N1 > 0, ∀ p, q ≥ N1 : Ap ⊆ Aq + ε en Aq ⊆ Ap + ε.
Neem nu een a ∈ A. Er bestaat dan een (an)n → a met an ∈ An voor elke n. Dat betekent:
∃N2 > 0, ∀n ≥ N2 : d(an, a) ≤ ε.
Stel N = max{N1, N2}. Kies q ≥ N vast en veronderstel dat p ≥ q. Dan kunnen we
besluiten dat ap ∈ Aq + ε en dus ook a ∈ Aq + ε op voorwaarde dat Aq + ε gesloten is.
Om dit laatste aan te tonen, beschouwen we een rij (xq)q → x in Aq + ε. We moeten
bewijzen dat x ∈ Aq + ε. Indien die uitspraak vals is, zou er voor elke aq ∈ Aq gelden dat
d(aq, x) > ε. We weten dat er voor elke xn ∈ (xq)q een an ∈ Aq bestaat, zodat d(an, xn) ≤ ε.
Voor deze specifieke an’en geldt echter ook dat d(an, x) > ε. We verkrijgen dan:
ε < d(an, x) ≤ d(an, xn) + d(xn, x) ≤ ε+ d(xn, x)→ ε.
Aangezien dit een contradictie is, moet er wel degelijk een element in Aq bestaan, zodat
de afstand van dit punt tot x kleiner is dan ε en dus is Aq gesloten.
Deel 4: A is totaal begrensd.
Indien A eindig is, is de verzameling meteen totaal begrensd. Veronderstel daarom dat A
oneindig groot, maar niet totaal begrensd is. Dat wil zeggen dat er een ε > 0 is, waarvoor
er geen eindige verzameling Y ⊆ A bestaat, waarvan de elementen een overdekking vormen.
Er bestaat dan een rij (xn)n in A, zodat d(xk, xl) ≥ ε als k 6= l.
Uit het vorige deel weten we dat er een rangnummer bestaat, zodat A ⊆ An+ ε3. Dus geldt:
∀xn ∈ A, ∃ yn ∈ An : d(xn, yn) ≤ ε
3.
Aangezien An compact is, bestaat er een convergente deelrij (ynk)k van (yn)n. We kunnen
steeds een ynk en ynl vinden, zodat d(ynk , ynl) <ε3. Dit leidt tot de volgende contradictie:
ε ≤ d(xnk , xnl) ≤ d(xnk , ynk) + d(ynk , ynl) + d(ynl , xnl) < ε.
A moet dus totaal begrensd zijn.
Opmerking. Door deel 2 van het bewijs kunnen we besluiten dat A compact is.
8
Deel 5: (An)n → A.
Aangezien A ∈ H(X), is het voldoende aan te tonen dat er een rangnummer N is, zodat
∀n ≥ N : h(An, A) ≤ ε.
We bewezen reeds in deel 2 dat A ⊆ An + ε, dus we moeten alleen nog nagaan dat
An ⊆ A+ ε. Neem een vaste ε > 0. Dan geldt er:
∃N > 0, ∀ p, q ≥ N : Ap ⊆ Aq +ε
2.
Kies voor N0 ≥ N een a ∈ AN0 . Het is voldoende een element x ∈ A te vinden, zodat
d(a, x) ≤ ε. We kunnen nu net zoals in deel 1 een strikt stijgende rij van rangnummers
N0 < N1 < N2 < . . . vinden, waarbij voor iedere i geldt dat
∀ p, q ≥ Ni : Ap ⊆ Aq +ε
2i+1, (I)
en elementen xNi ∈ ANi bepalen, zodat (xNi)i een Cauchyrij is. Omdat X volledig is, zal
(xNi)i → x. Vanwege het uitbreidingslemma is x dan een element van A. Uit (I) volgt in
het bijzonder dat
∀ i : ANi ⊆ ANi+1+
ε
2i+1
en dus
∀ i : d(a, xNi) ≤ d(a, xN1) + d(xN1 , xN2) + . . . + d(xNi−1, xNi) ≤
ε
2+
ε
22+ . . . +
ε
2i< ε.
Ten slotte kunnen we concluderen dat d(a, x) ≤ ε. Dit rondt het bewijs van de volledigheid
van H(X) af.
9
3. Contracties op de ruimte der fractalen
Zoals in [2] (p. 43-55, 73, 80-93) en [8] (p. 105-109), tonen we in dit deel dat we contracties
op X kunnen uitbreiden naar H(X) en zo het begrip ‘IFS’ kunnen invoeren. Vervolgens
geven we enkele voorbeelden van attractoren, die getekend werden met een zelfgeschreven
programma in Matlab. De code hiervan is terug te vinden in de appendix.
Definitie 3.1. Een transformatie op een metrische ruimte (X, d) is een functie
f : X → X. We noemen xf ∈ X een fixpunt van de transformatie f indien f(xf ) = xf .
De transformatie f is α-Lipschitz als er een α ≥ 0 bestaat, zodat
∀x, y ∈ X : d(f(x), f(y)
)≤ α d(x, y).
We noemen f een contractie met contractiecoefficient α als f α-Lipschitz is en α < 1.
Uit deze definitie volgt meteen dat de samenstelling van contracties opnieuw een contractie
is. We gaan nu aantonen dat we in(H(X), h
)op niet-triviale wijze een contractie kunnen
construeren, uitgaande van een eindige familie contracties op X. Daarvoor hebben we
eerst een extra eigenschap van de Hausdorff-metriek nodig.
Eigenschap 3.2. ∀A,B,C,D ∈ H(X) : h(A ∪B,C ∪D) ≤ h(A,C) ∨ h(B,D).
Bewijs. Stel ε = h(A,C) ∨ h(B,D). We moeten nu aantonen dat h(A ∪ B,C ∪D) ≤ ε,
wat wegens stelling 2.1 equivalent is met A ∪B ⊆ (C ∪D) + ε en C ∪D ⊆ (A ∪B) + ε.
We weten dat h(A,C) ≤ ε en h(B,D) ≤ ε. Door stelling 2.1 gelden dus de volgende
inclusies: A ⊆ C + ε, C ⊆ A+ ε, B ⊆ D + ε en D ⊆ B + ε. Hieruit kunnen we besluiten:
A ∪B ⊆ (C + ε) ∪ (D + ε)
= {x ∈ X | ∃ c ∈ C : d(x, c) ≤ ε } ∪ { x ∈ X | ∃ d ∈ D : d(x, d) ≤ ε }= {x ∈ X | ∃ y ∈ C ∪D : d(x, y) ≤ ε }= (C ∪D) + ε.
Door het omwisselen van de rollen van A, B, C en D door respectievelijk C, D, A en B,
verkrijgen we ook dat C ∪D ⊆ (A ∪B) + ε.
Lemma 3.3. Als f : X → X een contractie is met contractiecoefficient α, dan is
f : H(X)→ H(X) : A 7→ f(A) := { f(a) | a ∈ A }
een contractie met contractiecoefficient α op(H(X), h
).
10
Bewijs. Aangezien contracties continu zijn, beeldt f compacte delen van X opnieuw af
op compacte delen (eigenschap 1.4.23 in [6]). De transformatie f : H(X)→ H(X) is dus
goed gedefinieerd. We tonen nu dat deze afbeelding een contractie is. Zij A,B ∈ H(X),
dan geldt:
d(f(A), f(B)
)= max
a∈A
{minb∈B
{d(f(a), f(b)
)}}≤ max
a∈A
{minb∈B
{α d(a, b)
}}= α max
a∈A
{minb∈B
{d(a, b)
}}= α d(A,B).
We verkrijgen natuurlijk ook dat d(f(B), f(A)
)≤ α d(B,A) door het omwisselen van de
rollen van A en B en dus kunnen we concluderen dat
h(f(A), f(B)
)= d(f(A), f(B)
)∨ d(f(B), f(A)
)≤ α d(A,B) ∨ α d(B,A)
= α h(A,B).
In de volgende stelling definieren we de gezochte contractie op H(X). Deze afbeelding is
goed gedefinieerd dankzij lemma 3.3 en het gegeven dat eindige unies van compacte delen
compact zijn.
Stelling 3.4. Veronderstel dat f1, . . . , fn een eindig aantal contracties op X is met
overeenkomstige contractiecoefficienten α1, . . . , αn. Dan is
f : H(X)→ H(X) : A 7→n⋃i=1
fi(A)
een contractie met contractiecoefficient α := max{αi | 1 ≤ i ≤ n }.
Bewijs. We passen inductie toe op n en kiezen telkens A,B ∈ H(X) willekeurig.
Basisstap. Als n = 2, geldt er:
h(f(A), f(B)
)= h
(f1(A) ∪ f2(A), f1(B) ∪ f2(B)
)≤ h
(f1(A), f1(B)
)∨ h(f2(A), f2(B)
)(eigenschap 3.2)
≤ α1 h(A,B) ∨ α2 h(A,B)
= α h(A,B).
11
Inductiehypothese. Veronderstel dat ∀ k ∈ {2, . . . , n−1} : h(f(A), f(B)
)≤ α h(A,B) met
f(A) =k⋃i=1
fi(A) en f(B) =k⋃i=1
fi(B).
Inductiestap. We kunnen gemakkelijk controleren dat de ongelijkheid nog steeds geldig is.
h(f(A), f(B)
)= h
( n−1⋃i=1
fi(A) ∪ fn(A),n−1⋃i=1
fi(B) ∪ fn(B)
)
≤ h
( n−1⋃i=1
fi(A),n−1⋃i=1
fi(B)
)∨ h(fn(A), fn(B)
)(eigenschap 3.2)
≤ α h(A,B) ∨ αn h(A,B) (inductiehypothese)
= α h(A,B)
We voeren een definitie in om dit resultaat in een nieuw formalisme te gieten.
Definitie 3.5. Zij (X, d) een volledige metrische ruimte en F een eindige verzameling
van contracties { fi : X → X | 1 ≤ i ≤ n } met contractiecoefficienten αi. Het koppel
(X,F ) heet een geıtereerd functiesysteem (IFS) met contractiecoefficient
α := max{αi | 1 ≤ i ≤ n }.
Afspraak. Voor elke x ∈ X noteren we f 0(x) := f(x) en fn(x) := f(fn−1(x)
). We noemen
de transformaties fn : X → X een iteratie van f .
Waarom spreken we precies over geıtereerde functiesystemen? Dat kunnen we verklaren
door een fundamenteel resultaat van Banach uit 1920 (eigenschap 1.4.9 in [6]).
Stelling 3.6 (Banach-fixpuntstelling). Zij (X, d) een volledige metrische ruimte. Iedere
contractie f : X → X met contractiecoefficient α heeft een uniek fixpunt xf ∈ X, dat
bepaald kan worden door f te itereren over een willekeurige x ∈ X:
xf = limn→∞
fn(x), ∀x ∈ X.
Na iedere iteratie kunnen we tevens meten hoe ver we van het fixpunt verwijderd zijn:
d(xf , f
n(x))≤ αn
1− αd(x, f(x)
), ∀x ∈ X.
We vertalen deze stelling naar ons IFS-formalisme en bundelen dit samen met alles wat
we tot nu toe weten over geıtereerde functiesystemen.
12
Stelling 3.7. Zij(X, { fi : X → X | 1 ≤ i ≤ n }
)een IFS met contractiecoefficient α.
De transformatie
f : H(X)→ H(X) : A 7→n⋃i=1
fi(A)
is een contractie met contractiecoefficient α en heeft een uniek fixpunt Af ∈ H(X),
waarvoor geldt:
Af = limn→∞
fn(A), ∀A ∈ H(X).
Bovendien is de volgende afschatting voor iedere n ∈ N van kracht:
h(Af , f
n(A))≤ αn
1− αh(A, f(A)
), ∀A ∈ H(X).
Definitie 3.8. Het fixpunt van een IFS noemen we een attractor.
De fixpuntstelling van Banach laat toe de attractor van een IFS te vinden door de afbeelding
f uit stelling 3.7 te itereren over een willekeurig compact deel. In het bijzonder kunnen
we dus steeds vertrekken van een singleton in X.
Laten we dit principe eens toepassen op enkele voorbeelden. Voor de eenvoud beperken we
ons tot IFS’en over R2, waarbij de contracties fi affiene transformaties (rotaties, translaties
en herschalingen) zijn. In het algemeen zien deze afbeeldingen er uit als volgt:
fi
([xy
])=
1
βi
[cos θi − sin θi
sin θi cos θi
][x− uiy − vi
]+
[ui
vi
],
waarbij 1βi< 1 de contractiecoefficient is en θi de rotatiehoek is van de rotatie rond (ui, vi).
We kunnen deze vergelijking door matrixvermenigvuldiging herschrijven tot
fi
([xy
])=
[ai11 ai12ai21 ai22
][x
y
]+
[bi1bi2
]
en noteren voor de leesbaarheid de waarden a11, a12, a21, a22, b1 en b2 in tabelvorm:
f a11 a12 a21 a22 b1 b2
1 a111 a112 a121 a122 b11 b12
......
......
......
...
n an11 an12 an21 an22 bn1 bn2
13
f a11 a12 a21 a22 b1 b2
1 0, 5 0 0 0, 5 0 0
2 0, 5 0 0 0, 5 1 0
3 0, 5 0 0 0, 5 1 1
Beschouw nu het nevenstaande, concrete IFS. We
gaan op zoek naar de attractor van dit systeem. In de
eerste stap berekenen we de beelden van de oorsprong
onder f1, f2 en f3.
We tekenen deze drie punten in het reele vlak en
laten het assenstelsel voor de duidelijkheid weg in de
afbeelding. De oorsprong is het onderste punt.
Wanneer we op deze drie beeldpunten opnieuw alle contracties toepassen en dit proces
blijven herhalen, verkrijgen we de volgende figuren.
(2) (4) (6) (15)
Figuur 1: De cijfers onderaan de afbeeldingen zijn het aantal uitgevoerde iteratiestappen.
Dit IFS convergeert naar de beroemde Sierpinski-driehoek. In de appendix, [8] (p. 1-36)
en [11] (p. 25-80) zijn meer voorbeelden met mooie attractoren te vinden.
Het is bewonderenswaardig dat we met enkele eenvoudige transformaties zulke ingewikkelde
figuren kunnen construeren. In ons enthousiasme kan algauw de volgende vraag rijzen: in
de definitie van een IFS spraken we over een eindig aantal contracties; is het mogelijk met
slechts een contractie een interessante attractor te maken? Het antwoord is helaas neen.
Veronderstel namelijk dat we een contractie g op X hebben. Door lemma 3.4 weten we dat
g ook een contractie is op H(X). De Banach-fixpuntstelling garandeert dat g fixpunten xg
en Ag in respectievelijk X en H(X) heeft. We weten dat Ag = limn→∞ gn(A), ∀A ∈ H(X).
In het bijzonder geldt voor A = {x} met x ∈ X willekeurig gekozen dat
Ag = limn→∞
gn({x})
={
limn→∞
gn(x)}
= {xg}
en dus is de attractor van het IFS(X, {g}
)een singleton. Een contractie kan met andere
woorden niet volstaan om pakweg de Sierpinski-driehoek te maken.
14
4. Continue afhankelijkheid van parameters
Veronderstel dat de contracties van een IFS afhangen van een bepaalde parameter. Wat is de
invloed van een continue verandering van deze parameter op de overeenkomstige attractoren
van het IFS? Om dit te onderzoeken, bewijzen we eerst een lemma, dat een uitspraak
doet over het probleem voor een volledige metrische ruimte (X, d). Nadien breiden we dit
resultaat uit tot(H(X), h
). Voor de bewijsvoering in dit hoofdstuk werd er gedeeltelijk
afgeweken van [2] (p. 111-113), omdat Jachymski in [9] aantoonde dat Barnsleys werk een
fout bevat. Die vergissing werd rechtgezet in [3].
Definitie 4.1. We noemen in dit hoofdstuk een metrische ruimte (P, dP ) de parameter-
ruimte. Beschouw de functie f : P ×X → X met (X, d) een volledige metrische ruimte.
We noteren voor p ∈ P het fixpunt van f(p, ·) als xf(p). We zeggen dat het fixpunt
continu afhankelijk is van een parameter p ∈ P als xf : P → X : p 7→ xf (p) continu is.
Lemma 4.2. Zij (X, d) een volledige metrische ruimte en f : P ×X → X een familie
van contracties op X met contractiecoefficient α. Dit betekent dat f(p, ·) voor iedere
p ∈ P een contractie is op X. Er geldt dat als f(·, x) voor elke x ∈ X continu is op P ,
het fixpunt xf (p) continu afhankelijk is van p.
Bewijs. We moeten aantonen dat de afbeelding xf uit definitie 4.1 continu is. Kies hiertoe
een willekeurige ε > 0 en een vaste p ∈ P . Er moet nu een δ > 0 bestaan, zodat
∀ q ∈ P : dP (p, q) < δ ⇒ d(xf (p), xf (q)
)< ε.
Aangezien f(·, x) continu is ∀x ∈ X, weten we in het bijzonder dat f(·, xf (p)
)continu is:
∃ δ1 > 0, ∀ q ∈ P : dP (p, q) < δ1 ⇒ d(f(p, xf (p)
), f(q, xf (p)
))< ε (1− α).
Als we δ = δ1 stellen, kunnen we de gezochte afschatting maken:
d(xf (p), xf (q)
)= d(f(p, xf (p)
), f(q, xf (q)
))(xf (p) en xf (q) zijn fixpunten)
≤ d(f(p, xf (p)
), f(q, xf (p)
))+ d(f(q, xf (p)
), f(q, xf (q)
))< ε (1− α) + α d
(xf (p), xf (q)
). (f(q, ·) is een contractie)
Door de tweede term in het rechterlid naar het linkerlid over te brengen, krijgen we dat
(1− α) d(xf (p), xf (q)
)< ε (1− α).
Hieruit volgt ten slotte dat d(xf (p), xf (q)
)< ε, omdat 0 ≤ α < 1.
15
Intuıtief gezien betekent lemma 4.2 dat een continue verandering van de parameter zorgt
voor een continue verandering van het fixpunt. We willen nu hetzelfde resultaat bekomen
in de ruimte(H(X), h
). Stel dus dat we een functie f : P ×H(X)→ H(X) hebben. Om
te voldoen aan de eerste voorwaarde in lemma 4.2, zou f(·, A) voor iedere A ∈ H(X)
continu moeten zijn. Hoe kunnen we dit goed definieren?
Een eerste poging is te eisen dat f(·, a) voor elke a ∈ A continu moet zijn. Dit betekent:
∀ p ∈ P, ∀ ε > 0,∃ δa > 0, ∀ q ∈ P : dP (p, q) < δa ⇒ d(f(p, a), f(q, a)
)< ε.
Het is cruciaal vast te stellen dat δa steeds afhangt van a. Indien de verzameling A ∈ H(X)
oneindig veel punten bevat, bestaat er dus geen δ = min{ δa | a ∈ A }, die geschikt is
voor heel A. We zijn daarom genoodzaakt een bijkomende voorwaarde op f te leggen. Er
bestaan verscheidene beperkingen die het probleem oplossen (in [9] wordt er bijvoorbeeld
met equicontinuıteit gewerkt), maar aangezien we weten dat Lipschitz-zijn sterker is dan
continuıteit, zullen we proberen met deze eigenschap te werken. De volgende stelling toont
aan dat dit mogelijk is.
Stelling 4.3. Zij(X, {f1(p, ·), . . . , fn(p, ·)}
)een IFS met contractiecoefficient α voor
iedere p ∈ P en fi(·, x) β-Lipschitz met β onafhankelijk van i voor elke x ∈ X en
i ∈ {1, . . . , n}. Dan is de attractor Af ∈ H(X) continu afhankelijk van p.
Bewijs. De afbeelding f is gedefinieerd zoals voorheen:
f : P ×H(X)→ H(X) : (p,A) 7→n⋃i=1
fi(p,A) met fi(p,A) = { fi(p, a) | a ∈ A }.
We zullen aantonen dat de gestelde voorwaarde op f1(·, x), . . . , fn(·, x) impliceert dat
f(·, A) β-Lipschitz en dus continu is voor alle A ∈ H(X). We kunnen dan lemma 4.2
toepassen, zodat het resultaat volgt.
Veronderstel in de rest van het bewijs dat i ∈ {1, . . . , n}, A ∈ H(X) en p, q ∈ P . Indien
fi(·, A) β-Lipschitz is, dat wil zeggen
h(fi(p,A), fi(q, A)
)≤ β dP (p, q), (II)
dan volgt
h(f(p,A), f(q, A)
)= h
( n⋃i=1
fi(p,A),n⋃i=1
fi(q, A)
)≤ max
{h(fi(p,A), fi(q, A)
)}(via inductie op 3.2)
≤ β dP (p, q)
16
en is het gevraagde bewezen. We moeten dus enkel nog (II) aantonen. We weten dat
d(fi(p,A), fi(q, A)
)= max
x∈fi(p,A)
{min
y∈fi(q,A)
{d(x, y)
}}.
Voor elke x ∈ fi(p,A) bestaat er een x ∈ A, zodat x = fi(p, x). Aangezien fi(·, x)
β-Lipschitz is, geldt er:
miny∈fi(q,A)
{d(x, y)}≤ d(x, fi(q, x)
)= d(fi(p, x), fi(q, x)
)≤ β dP (p, q).
Deze afschatting is waar voor iedere x ∈ fi(p,A) en daarom ook voor
maxx∈fi(p,A)
{min
y∈fi(q,A)
{d(x, y)
}}.
We verkrijgen bijgevolg dat d(fi(p,A), fi(q, A)
)≤ β dP (p, q) en door omkering van de
rollen van p en q eveneens dat d(fi(q, A), fi(p,A)
)≤ β dP (p, q). We concluderen dat
h(fi(p,A), fi(q, A)
)= d(fi(p,A), fi(q, A)
)∨ d(fi(q, A), fi(p,A)
)≤ β dP (p, q).
Deze belangrijke stelling houdt in dat kleine veranderingen in de parameters van een
IFS leiden tot kleine veranderingen in de attractor, op voorwaarde dat het systeem een
IFS blijft. Dat betekent dat we attractoren continu kunnen controleren door parameters
in de contracties aan te passen. Dit resultaat speelt bijvoorbeeld een cruciale rol in
beeldcompressie (zie hoofdstuk 5) en computeranimaties.
Voorbeeld 1. De appendix bevat een stukje code dat een filmpje (in gif-formaat) maakt
van de continue verandering van een rotatiehoek θ in een eenvoudig IFS-systeem. Hier
zijn enkele stilstaande beelden:
θ = 0, 30 θ = 0, 35 θ = 0, 40 θ = 0, 45
17
5. Het inverse probleem
In hoofdstuk 3 slaagden we er in complexe afbeeldingen te generen op basis van een eindig
aantal contracties. Kunnen we nu ook omgekeerd te werk gaan? Kunnen we met andere
woorden altijd een IFS opstellen, zodat een gegeven verzameling daarvan de attractor is? Dit
heet het inverse probleem. We gebruiken [2] (p. 96-105), [4] (p. 28-40) en [7] als leidraad.
In onze gedigitaliseerde wereld is het belangrijk dat afbeeldingen zo efficient mogelijk
worden doorgegeven. Daarom streven we naar een minimale behoefte aan data bij het
uitwisselen van beelden. Door bij de beeldverwerking structurele verbanden te herkennen,
wordt overbodige informatie weggewerkt en vermindert het aantal nodige bits. Dit heet
beeldcompressie.
Het zou ideaal zijn als we in plaats van alle pixels van een afbeelding A slechts een IFS
moeten doorgeven, dat A als attractor heeft. Dat principe is helaas een utopie, want het
inverse probleem heeft in het algemeen geen oplossing. Ten eerste is het mogelijk dat de
opgegeven A niet compact is; een noodzakelijke eigenschap bij het werken met IFS’en.
Ten tweede speelt zelfgelijkenis een centrale rol bij een IFS: attractoren zijn opgebouwd
uit transformaties van zichzelf en vertonen daarom op iedere schaal gelijkaardige patronen.
Als A niet zelfgelijkend is, werkt de voorgestelde aanpak dus niet.
Gelukkig kunnen computerschermen slechts tot op een zeker niveau details weergeven,
omdat ze over een eindig aantal pixels beschikken. Daarom is het in de praktijk voldoende
een oplossing te vinden voor een afgezwakte versie van het inverse probleem: kunnen we
een IFS vinden, zodat de attractor ervan A met vooropgestelde nauwkeurigheid ε benadert?
De vereiste nauwkeurigheidsgraad is natuurlijk afhankelijk van een heleboel factoren, zoals
de schermresolutie, de mate waarin het menselijke oog dingen kan onderscheiden...
De oplossing voor het probleem in de vorige paragraaf wordt aangereikt door de Banach-
fixpuntstelling (stelling 3.6). Met notaties zoals in stelling 3.7: we moeten contracties
f1, . . . , fn vinden, zodat
h(A, f(A)
)≤ ε (1− α),
waarbij α de contractiecoefficient van f is. Voor n = 0 geldt er dan namelijk:
h(Af , A) = h(Af , f
0(A))≤ α0
1− αh(A, f(A)
)=
1
1− αh(A, f(A)
)≤ ε.
We illustreren het belang van IFS’en voor beeldcompressie met een voorbeeld.
18
Voorbeeld 2. Beschouw A = [0, 1] in R, uitgerust met de Euclidische metriek. Definieer twee
contracties f1 en f2 als volgt: f1(x) = x2
en f2(x) = x2
+ 12. Dan geldt er dat f1(A) = [0, 1
2]
en f2(A) = [12, 1]. Bijgevolg is
f(A) = f1(A) ∪ f2(A) = [0, 12] ∪ [1
2, 1] = A.
Hieruit kunnen we concluderen dat
h(Af , A) ≤ 1
1− αh(A, f(A)
)= 0
en dus is A zoals gewenst de attractor van f . Om een afbeelding van het lijnstuk [0, 1] te
maken, is het dus voldoende f1 en f2 te kennen.
In het vorige eenvoudige voorbeeld zagen we hoe het eenheidsinterval opgebouwd kan
worden uit twee kleinere ‘kopieen’ van zichzelf. In de literatuur wordt vaak gesproken over
een collage, naar [1] (p. 96-97). Uiteraard is het vinden van een collage in realiteit veel
ingewikkelder. Zo zijn er vier complexe contracties nodig om het onderstaande blad te
construeren.
Collage Attractor
Figuur 3: Het blad in volle lijn wordt afgebeeld op de vier kleinere bladeren in stippellijn.
Het bepalen van deze contracties gebeurt niet lukraak: in de daartoe ontwikkelde algoritmen
speelt de continue afhankelijkheid van parameters, die we in hoofdstuk 4 bespraken, een
grote rol. Deze methodes en andere compressietechnieken vallen echter buiten het bestek
van deze paper. Interessante referenties voor een verdere studie hieromtrent zijn [1],
[4] (p. 28-78), [10] en [12].
19
6. Fractale dimensie
In dit hoofdstuk zullen we eindelijk een definitie voor fractalen geven. Dat doen we door
het verschil in ‘kronkeligheid’ tussen bijvoorbeeld een vierkant en de Sierpinski-driehoek
numeriek uit te drukken: de fractale dimensie. Op die manier kunnen we attractoren met
elkaar vergelijken. We bouwen dit concept nu wiskundig op met behulp van [2] (p. 172-179)
en [8] (p. 184-187).
Definitie 6.1. We schrijven N (A, ε) voor het minimum aantal gesloten bollen met
straal ε > 0 dat nodig is om A ∈ H(X) te overdekken.
Is N (A, ε) goed gedefinieerd? Wanneer we rond iedere a ∈ A een bol met straal ε tekenen,
hebben we A natuurlijk open overdekt. Door de compactheid van A bestaat er een eindige
deeloverdekking met middelpunten a1, . . . , an. We kunnen zonder problemen iedere bol
hiervan sluiten. Noteer nu O voor de verzameling van overdekkingen van A met maximaal
n gesloten bollen met straal ε. Als we iedere o ∈ O afbeelden op het aantal bollen dat o
bevat, vormen deze getallen een eindige verzameling, die ten minste het getal n bevat. De
verzameling heeft dus zeker een minimum N (A, ε).
Om het concept ‘fractale dimensie’ formeel in te voeren, inspireren we ons op een gesloten
interval van lengte 1, een vierkant met zijde 1 en een kubus met zijde 1. Natuurlijk willen
we deze totaal begrensde figuren respectievelijk dimensie 1, 2 en 3 toekennen.
In de bovenstaande afbeelding zien we hoe het gesloten interval, het vierkant en de kubus
worden overdekt door bollen met straal ε ∈ {1, 12, 13} onder de Manhattan-metriek. We
zien meteen dat we telkens respectievelijk ε−1, ε−2 en ε−3 bollen nodig hebben. Merk op
dat de dimensie steeds in de exponent staat. Daarom is het aannemelijk dat we gebruik
zullen maken van een logaritme en dat we de fractale dimensie definieren als volgt:
Definitie 6.2. We noteren de fractale dimensie van A ∈ H(X) met dim(A) en stellen
ze gelijk aan de volgende limiet (indien die bestaat):
dim(A) = limε→0
ln(N (A, ε)
)ln(1ε
) .
Laten we deze definitie eens toepassen op twee eenvoudige voorbeelden.
20
Voorbeeld 3. Beschouw A = {a} in het Euclidische vlak. Iedere gesloten bol rond a met
straal ε overdekt A en dus is N (A, ε) = 1. Bijgevolg is dim(A) = 0.
Voorbeeld 4. Beschouw A = [0, 1] in het Euclidische vlak. Het is meteen duidelijk dat
N (A, ε) =⌈1ε
⌉, het eerstvolgende gehele getal groter of gelijk aan 1
ε. Er geldt:
1 =ln(1ε
)ln(1ε
) ≤ ln(⌈
1ε
⌉)ln(1ε
) ≤ ln(1ε
+ 1)
ln(1ε
) =ln(1ε
(1 + ε))
ln(1ε)
= 1 +ln(1 + 1
ε
)ln(1ε
) ε→0−−→ 1.
Door de insluitstelling verkrijgen we zoals verwacht dat dim(A) =ln(⌈
1ε
⌉)ln(1ε
) = 1.
Om het bepalen van de fractale dimensie te vereenvoudigen, zullen we aantonen dat we de
continue variabele ε uit de definitie kunnen vervangen door discrete variabelen εn.
Stelling 6.3. Zij A ∈ H(X). Stel εn = αβn met α > 0, 0 < β < 1 en n ∈ N0. De
fractale dimensie van A kan berekend worden als volgt:
dim(A) = limn→∞
ln(N (A, εn)
)ln(
1εn
) .
Bewijs. Kies ε ≤ β < 1 en stel f(ε) = max { εn | εn ≤ ε } := εk. Er geldt dan dat
f(ε) ≤ ε ≤ εk−1 = αβk−1 =εkβ
=f(ε)
β
en hieruit leiden we logischerwijze af dat
N(A, f(ε)
β
)≤ N (A, ε) ≤ N
(A, f(ε)
).
Aangezien de natuurlijke logaritme een stijgende functie is, volgt:
ln(
βf(ε)
)≤ ln(1
ε) ≤ ln
(1
f(ε)
)(III)
en
ln(N(A, f(ε)
β
))≤ ln
(N (A, ε)
)≤ ln
(N(A, f(ε)
)).
Alle termen in (III) zijn positief, omdat f(ε) ≤ ε < 1. Daarom krijgen we:
ln(N(A, f(ε)
β
))ln(
1f(ε)
) ≤ln(N (A, ε)
)ln(1
ε)
≤ln(N(A, f(ε)
))ln(
βf(ε)
) .
We nemen nu de limiet voor ε gaande naar 0 van de uiterst linkse en uiterst rechtse breuk
in deze reeks ongelijkheden. We verkrijgen enerzijds
21
limε→0
ln(N(A, f(ε)
β
))ln(
1f(ε)
) = limn→∞
ln(N (A, εn−1)
)ln(
1εn
)= lim
n→∞
ln(N (A, εn−1)
)ln(1β
)+ ln
(1
εn−1
)= lim
n→∞
ln(N (A, εn)
)ln( 1
εn)
= dim(A)
en anderzijds
limε→0
ln(N(A, f(ε)
))ln(
βf(ε)
) = limn→∞
ln(N (A, εn)
)ln(βεn
)= lim
n→∞
ln(N (A, εn)
)ln(β) + ln
(1εn
)= lim
n→∞
ln(N (A, εn)
)ln( 1
εn)
= dim(A).
Door toepassing van de insluitstelling is dan ook
limε→0
ln(N (A, ε)
)ln(1
ε)
= dim(A).
Voorbeeld 3 en voorbeeld 4 tonen aan dat we wel degelijk kunnen
werken met definitie 6.2, maar bij complexere compacte delen A
zullen we N (A, ε) niet altijd gemakkelijk kunnen bepalen. We
bewijzen daarom een veel elegantere manier om de fractale dimensie
van een attractor te bepalen: de Box-Counting-stelling.
A
0 1
1
Stelling 6.4 (Box Counting). Zij A ∈ H(Rm), waarbij Rm uitgerust is met de
Euclidische metriek. We bedekken Rm met een raster van boxen: aaneensluitende,
gesloten m-dimensionale kubussen met zijde 12n
(de bovenstaande afbeelding is een
voorbeeld voor m = n = 2). We noteren Nn(A) voor het aantal boxen uit het raster
dat A snijdt. Er geldt dan dat
dim(A) = limn→∞
ln(Nn(A)
)ln(2n)
.
22
Bewijs. Kies m ∈ N0 willekeurig. We merken voor iedere n ∈ N0 meteen op dat een bol
met straal 12n
maximaal 2m boxen met zijde 12n−1 kan snijden. Dit betekent dat
1
2mNn−1(A) ≤ N
(A,
1
2n
).
We proberen N (A, 12n
) ook langs boven af te schatten door in iedere gesloten bol van de
minimale overdekking van A een box te passen die A snijdt. We beweren dat dit zo is als
de boxen een straal 12κ(n)
hebben, waarbij κ(n) het kleinste gehele getal is, waarvoor geldt
dat κ(n) ≥ n − 1 + 12
log2(m). We kunnen dit gemakkelijk controleren met behulp van
de stelling van Pythagoras, die garandeert dat een bol met straal r een box met zijde s
omvat als r2 ≥ m ( s2)2. In ons geval hebben we inderdaad:
m(s
2
)2= m
(2κ(n)+1
)−2 ≤ m(2n+
12log2(m)
)−2= m
(2nm
12
)−2=( 1
2n
)2= r2.
Hiermee hebben we aangetoond dat
1
2mNn−1(A) ≤ N
(A,
1
2n
)≤ Nκ(n)(A).
Door het stijgende teken van de natuurlijke logaritme volgt:
limn→∞
ln(
12mNn−1(A)
)ln(2n)
≤ limn→∞
ln(N (A, 1
2n))
ln(2n)≤ lim
n→∞
ln(Nκ(n)(A)
)ln(2n)
.
Aangezien
limn→∞
ln(
12mNn−1(A)
)ln(2n)
= limn→∞
ln( 12m
)
ln(2n)+ lim
n→∞
ln(Nn−1(A)
)ln(2n)
= limn→∞
ln(Nn(A)
)ln(2n)
en
limn→∞
ln(Nκ(n)(A)
)ln(2n)
= limn→∞
ln(2κ(n))
ln(2n)
ln(Nκ(n)(A)
)ln(2κ(n))
= limn→∞
ln(Nκ(n)(A)
)ln(2κ(n))
= limn→∞
ln(Nn(A)
)ln(2n)
,
volgt uit de insluitstelling en stelling 6.3 met α = 1 en β = 12
ten slotte dat
limn→∞
ln(Nn(A)
)ln(2n)
= limn→∞
ln(N (A, 1
2n))
ln(2n)= dim(A).
23
Voorbeeld 5. Laten we met behulp van de Box-Counting-stelling proberen de fractale
dimensie te berekenen van de Sierpinski-driehoek, die we in figuur 1 zagen verschijnen.
(3) (9) (27)
Figuur 4: De gearceerde vierkantjes snijden de attractor. Het aantal staat tussen haakjes.
We noteren A voor de Sierpinksi-driehoek en zien in de bovenstaande figuur datNn(A) = 3n.
Bijgevolg geldt wegens stelling 6.4:
dim(A) = limn→∞
ln(3n)
ln(2n)=
ln(3)
ln(2)≈ 1, 565.
De betekenis van fractale dimensie strookt dus niet met de conventionele wijze waarop we
aan ‘dimensie’ denken: de dimensie van attractoren is niet noodzakelijk een geheel getal!
We kunnen nu formeel definieren wat een fractaal is.
Definitie 6.5. Een fractaal is een attractor met een niet-gehele fractale dimensie.
Zijn attractoren en fractalen wel verschillende begrippen? Zo ja, moeten er attractoren
bestaan die een gehele dimensie hebben. We geven een gemakkelijk voorbeeld.
Voorbeeld 6. Het onderstaande IFS heeft een saaie attractor A: een doodnormaal vierkant.
f a11 a12 a21 a22 b1 b2
1 12
0 0 12
0 0
2 12
0 0 12
1 0
3 12
0 0 12
0 1
4 12
0 0 12
1 1
Door de observatie die we maakten bij de intuıtieve aanbreng van definitie 6.2, kunnen we
concluderen dat Nn(A) = 22n. De fractale dimensie
dim(A) = limn→∞
ln(22n)
ln(2n)= 2 · ln(2)
ln(2)= 2
en dus is de attractor van het bovenstaande IFS geen fractaal.
24
Conclusie
Fractalen illustreren prachtig de wisselwerking tussen zuivere wiskunde en de werkelijkheid.
Enerzijds bood de natuur inspiratie voor het creeren van een volledig nieuwe wiskundetak,
die gebaseerd is op het gegeven dat bepaalde vormen schijnbaar onregelmatige patronen
vertonen op ieder niveau. Anderzijds laat de wiskundige modellering toe met eenvoudige
transformaties de meest complexe afbeeldingen te genereren en zo gedeeltelijk het mecha-
nisme achter de natuurlijke schoonheid te ontsluieren. De theorie over fractalen heeft tevens
bijgedragen aan de ontwikkeling van een heleboel toepassingen, zoals beeldcompressie en
computeranimatie.
Het is fascinerend dat dit allemaal perfect past in een analytisch, metrisch kader. Banach
en Hausdorff legden als ware avant-gardisten – nota bene zonder gebruik te kunnen maken
van computers – de basis voor een elegante theorie die pas een halve eeuw later toepassingen
in de praktijk zou krijgen. Fractale meetkunde is daarom een mooi voorbeeld van het nut
van abstracte wiskunde en de noodzaak tot bestudering ervan.
25
Referenties
[1] BARAHONA, F., CABRELLI, C., MOLTER, U. Computing the Hutchinson Distance
by Network Flows. Random Computational Dynamics, vol. 1, 1992. (p. 117-129.)
[2] BARNSLEY, M. Fractals Everywhere. Academic Press, San Diego, 1988. (p. 6-25,
29-59, 73, 75-93, 96-113, 172-179)
[3] BARNSLEY, M. Fractals Everywhere. Dover, 2012. (p. 101-111)
[4] BASTIAENS, E. Fractal Compressie door middel van Genetische Algoritmen. Master-
thesis VUB, Brussel, 1994. (p. 18-78)
[5] COLEBUNDERS, E. Verzamelingen en reele getallen. Dienst Uitgaven VUB, Brussel,
2012.
[6] COLEBUNDERS, E. Analyse II. Dienst Uitgaven VUB, Brussel, 2013.
[7] COLEBUNDERS, E. Geıtereerde functiesystemen en beeldverwerking meer dan een
halve eeuw na Banach en Hausdorff. Wiskunde en Onderwijs, Brussel, 1995.
[8] EDGAR, G. Measure, Topology and Fractal Geometry. Springer-Verlag, New York,
1990. (p. 1-36, 65-68, 105-109, 184-187)
[9] JACHYMSKI, J. Continuous Dependence of Attractors of Iterated Function Systems.
Journal of Mathematical Analysis and Applications, vol. 198, 1996. (p. 221-226)
[10] MANTICA, G., SLOAN, A. Chaotic Optimization and the Construction of Fractals:
Solution of an Inverse Problem. Complex Systems Publications, vol. 3, 1989. (p. 37-62)
[11] MANDELBROT, B. The Fractal Geometry of Nature. W. H. Freeman and Company,
New York, 1982. (p. 1-19, 25-80)
[12] SHONKWILER, R., MENDIVIL, F., DELIU, A. Genetic Algorithms for the 1-D
Fractal Inverse Problem. Morgan Kaufmann, Proceedings of the 4th International
Conference on Genetic Algorithms, San Diego, 1991. (p. 495-501)
Appendix
Extra voorbeelden van IFS’en en hun attractoren
f a11 a12 a21 a22 b1 b2
1 13
0 0 13
0 0
2 13
0 0 13
1 0
3 13
0 0 13−1 0
4 13
0 0 13
0 1
5 13
0 0 13
0 −1
Figuur 5: Een fractaal ijskristal.
f a11 a12 a21 a22 b1 b2
1 13
0 0 13
1 0
2 13
0 0 13−1 0
3 13
0 0 13
0 1
4 13
0 0 13
0 −1
5 13
0 0 13
1 1
6 13
0 0 13
1 −1
7 13
0 0 13−1 1
8 13
0 0 13−1 −1
Figuur 6: Het tapijt van Menger.
f a11 a12 a21 a22 b1 b2
1 c2− s
2s2
c2
1 0
2 c2− s
2s2
c2−1 0
3 c2− s
2s2
c2
0 1
4 c2− s
2s2
c2
0 −1
met c = cos(0, 5) en s = sin(0, 5)
Figuur 7: Attractor met spiralen.
Matlab-code
De onderstaande Matlab-procedure ‘attractor’ genereert afbeeldingen van het iteratieproces
dat beschreven wordt in hoofdstuk 3. Bij de code is begeleidende tekst in het groen voorzien.
function [ ] = attractor (M,it)
% Deze functie tekent de attractor van een gegeven matrix M in het vlak en
% voert het gevraagde aantal iteraties 'it' uit. Voor de Sierpinski-
% driehoek ziet M er bijvoorbeeld uit als volgt:
%
% M =
%
% 0.5 0 0 0.5 0 0
% 0.5 0 0 0.5 1 0
% 0.5 0 0 0.5 1 1
% We slaan het aantal contracties (het aantal rijen in M) op in een
% variabele 'm'.
[m,~] = size(M);
% Om performantieredenen geven we enkele variabelen, die we verderop in de
% functie zullen tegenkomen, een startwaarde.
A = cell(1,m);
B = cell(1,m);
x = zeros(1,mˆit);
y = zeros(1,mˆit);
% De transformaties zijn van de vorm A{i}*[x,y]+B{i}. Gemakkelijkheidshalve
% bepalen we de matrices A{i} en B{i} op basis van M.
for i = 1:m
A{i} = [M(i,1:2); M(i,3:4)];
B{i} = M(i,5:6)';
end
% We kiezen de oorsprong als startpunt van het iteratieproces en bewaren
% de abscis en ordinaat in een array P.
P = {[0;0]};
for i = 1:it
Q = cell(1,mˆi);
p = length(P);
% We berekenen de beelden van de punten in P onder alle contracties.
for j = 1:m
for k = 1:p
% We slaan de berekende beelden op in een array Q.
Q{(j-1)*p+k} = A{j}*P{k}+B{j};end
end
% De berekende beelden zijn de startverzameling voor de volgende
% iteratiestap.
P = Q;
end
% We tekenen nu de punten die we in laatste iteratiestap hebben berekend.
for i = 1:length(P)
x(i) = P{i}(1);y(i) = P{i}(2);
end
plot(x,y,'.','Color',[0 0 0],'Markersize',1)
set(gcf,'color','white')
axis('square','off')
end
Met de procedure ‘attractormovie’ kan men gif-bestanden maken, die weergeven hoe de
attractor van het opgegeven IFS in iedere iteratiestap ‘groeit’.
function [ ] = attractormovie (M,it,name)
% Deze functie tekent voor iedere waarde i kleiner of gelijk aan 'it' de
% i-de iteratiestap met de functie 'attractor' en maakt een gif-bestand met
% de naam 'name' van deze beelden.
% We slaan het aantal contracties (het aantal rijen in M) op in een
% variabele 'm'.
[m,~] = size(M);
% Om performantieredenen geven we enkele variabelen, die we verderop in de
% functie zullen tegenkomen, een startwaarde.
A = cell(1,m);
B = cell(1,m);
% De transformaties zijn van de vorm A{i}*[x,y]+B{i}. Gemakkelijkheidshalve
% bepalen we de matrices A{i} en B{i} op basis van M.
for i = 1:m
A{i} = [M(i,1:2); M(i,3:4)];
B{i} = M(i,5:6)';
end
% We kiezen de oorsprong als startpunt van het iteratieproces en bewaren
% de abscis en ordinaat in een array P.
P = {[0;0]};plot(0,0,'.','Color',[0 0 0],'Markersize',1);
set(gcf,'color','white')
axis('square','off')
F(1) = getframe(gcf);
for i = 1:it
Q = cell(1,mˆi);
x = zeros(1,mˆi);
y = zeros(1,mˆi);
p = length(P);
% We berekenen de beelden van de punten in P onder alle contracties.
for j = 1:m
for k = 1:p
% We slaan de berekende beelden op in een array Q.
Q{(j-1)*p+k} = A{j}*P{k}+B{j};end
end
% De berekende beelden zijn de startverzameling voor de volgende
% iteratiestap.
P = Q;
% We tekenen de punten die we in laatste iteratiestap hebben berekend.
for j = 1:length(P)
x(j) = P{j}(1);y(j) = P{j}(2);
end
plot(x,y,'.','Color',[0 0 0],'Markersize',1);
set(gcf,'color','white')
axis('square','off')
F(i+1) = getframe(gcf);
end
% De gif blijft eindeloos doorspelen met een pauze van 1 seconde tussen de
% beelden. Dit commando is niet standaard ingebouwd in Matlab, maar kan
% gedownload worden op het onderstaande webadres.
% www.mathworks.com/matlabcentral/fileexchange/17463-movie-to-gif-converter
movie2gif(F,name,'LoopCount',Inf,'DelayTime',1)
end
Deze code creeert het gif-filmpje dat in voorbeeld 1 ter sprake kwam. Op analoge wijze
kan men in ieder IFS-systeem een parameter continu laten veranderen.
i=1;
for h=0:0.01:pi/2
c=cos(h);
s=sin(h);
M=[1/2*c -1/2*s 1/2*s 1/2*c 1 0;
1/2*c -1/2*s 1/2*s 1/2*c 0 1;
1/2*c -1/2*s 1/2*s 1/2*c -1 0;
1/2*c -1/2*s 1/2*s 1/2*c 0 -1];
attractor(M,9);
F(i)=getframe(gcf);
i=i+1;
end
movie2gif(F,'vierkantcont.gif','LoopCount',Inf,'DelayTime',0.1);
Top Related