Fraktale: Theorie und Visualisierung [lectures, free web version ed.] [PDF]


147 78 13MB

German Pages 429 Year 2004

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Wie baut man ein Fraktal?......Page 11
Weg von der Physik, hin zur Mathematik......Page 12
Grafische Iteration......Page 13
Eigenschaften des Sierpinski-Dreiecks......Page 15
Pascalsches Dreieck......Page 16
Das Chaosspiel......Page 17
Beispiel: Quadratische Iteration......Page 20
Logistische Iteration......Page 21
Beispiele......Page 23
Wie lang ist die Küstenlinie?......Page 25
Dreieck......Page 26
Teppich......Page 28
Cantor-Menge......Page 29
Teufelstreppe......Page 31
Koch-Kurve und -Schneeflocke......Page 32
Koch-Kurve......Page 33
Schneeflocke......Page 36
Dimension......Page 37
Konstruktion......Page 40
Konstruktion......Page 42
Cantor-Menge......Page 43
Hilbert-Kurve......Page 45
Peano-Kurve......Page 46
Der Raum der Fraktale......Page 49
Vollständige metrische Räume......Page 50
H(X), der Raum der Fraktale......Page 53
Die Dimension einer flächenfüllenden Kurve......Page 63
Definition der fraktalen Dimension......Page 64
Theoretische Berechnung der fraktalen Dimension......Page 67
Implementierung des „Box-Counting“-Satzes......Page 68
Die Hausdorff-Besicovitch-Dimension......Page 72
Mathematischer Hintergrund......Page 75
Farbmuster im Pascalschen Dreieck......Page 77
Juliamenge......Page 81
Zentrale Idee......Page 82
Approximation der Menge Pc......Page 83
Visualisierung verschiedener Juliamengen......Page 85
Chaos-Spiel......Page 89
Selbstähnlichkeit......Page 90
Wann ist eine Menge zusammenhängend?......Page 91
Das Apfelmännchen......Page 93
Wie erstellt man bunte Bilder von Mandelbrotmengen?......Page 95
Fraktale Eigenschaften des Apfelmänchens......Page 97
Die Mandelbrotmenge ist zusammenhängend......Page 103
Gemeinsame Strukturen von Juliamengen und Mandelbrotmenge......Page 104
Andere Mandelbrotmengen......Page 107
Implementierung......Page 109
Der Sierpinski-Teppich......Page 111
Menger-Schwamm......Page 113
Linearisierung......Page 119
Konvergenzbeweis für eine Beispielfunktion......Page 120
Ausblick auf andere Verfahren......Page 121
Konvergenz......Page 124
Allgemeines zweidimensionales Newton-Verfahren......Page 126
Einzugsbereich......Page 127
Konvergenzgeschwindigkeit......Page 130
Fazit......Page 131
Konstruktionsprozess......Page 133
Variationsmöglichkeiten......Page 134
Welche Formen ergeben sich?......Page 135
Wiederholung......Page 138
Anwendung auf pythagoräische Bäume......Page 139
Implementierung in MATLAB......Page 141
vertex.m......Page 142
ptree.m......Page 143
Definition und Eigenschaften:......Page 145
Überall stetig......Page 146
Nirgends differenzierbar......Page 147
Selbstähnlichkeit bzw. Symmetrie......Page 148
Die Funktionenklasse n=0an(bnx+n)......Page 149
Nirgends differenzierbar......Page 150
Beispiele......Page 152
Anwendung auf obige Beispiele......Page 153
distZ.m......Page 154
Was ist eine Zufallszahl?......Page 155
Zufallszahlen-Generatoren......Page 156
Beispiele verschiedener Zufallszahlengeneratoren......Page 157
Zusammenfassung......Page 161
Motivation......Page 163
Die Koch-Kurve......Page 164
Das Sierpinski-Dreieck (Modell 1)......Page 168
Das Sierpinski-Dreieck (Modell 2)......Page 170
Erstes Beispiel: Clusterbildung im Dreieck......Page 173
Zweites Beispiel: Waldbrände......Page 175
Folgerungen......Page 180
Zusammenfassung......Page 181
Die eindimensionale symmetrische Irrfahrt......Page 183
Die mehrdimensionale Irrfahrt......Page 185
Mathematische Aussagen zur Irrfahrt......Page 194
Irrfahrten als Modelle......Page 196
Implementierung......Page 197
Definition und Eigenschaften der Brownschen Bewegung......Page 200
Die Brownsche Bewegung am Beispiel der Aggregation......Page 202
Implementierung......Page 204
Analyse eines Aktienkurses......Page 208
Begriffserklärungen......Page 209
Die Formel von Black und Scholes......Page 211
Implementierung......Page 212
Beispiel zur Diffusion......Page 213
Echte Landschaften......Page 225
Der „konstante“ Bergdurchschnitt......Page 227
Der Erwartungswert......Page 241
Die Varianz......Page 243
Die Standardabweichung......Page 244
Diskrete Wahrscheinlichkeitsverteilungen......Page 245
Kontinuierliche Wahrscheinlichkeitsverteilungen......Page 249
Noch natürlichere Berge …......Page 251
Landschaftsbeispiele......Page 252
Zweidimensionale Wolken......Page 254
Dreidimensionale Wolken......Page 256
Affine Transformationen......Page 257
Der Algorithmus der MRCM......Page 259
Beispiele in MATLAB......Page 262
Das Prinzip der IFS......Page 265
Der Algorithmus der IFS......Page 267
Beispiele in MATLAB......Page 268
Das Prinzip der L-Systems......Page 273
Beispiele zu den L-Systems......Page 274
Die Algorithmen......Page 276
Geschichte......Page 284
Begriffe......Page 285
Methoden......Page 286
Nachteile......Page 291
Was sind zelluläre Automaten?......Page 293
Nachbarschaften......Page 294
1of8-Rule......Page 296
Binäraddition (Sierpinski-Dreieck-Regel)......Page 297
Parity-Rule......Page 299
Anwendungen......Page 300
HPP-Modell......Page 301
Majority-Rule......Page 302
Sand......Page 303
Feuer......Page 304
Game of Life......Page 306
Regeln......Page 307
Eigenschaften......Page 308
Universal Computing......Page 309
Timer......Page 311
Regelset......Page 312
Visualisierung einer Matrix......Page 313
Fazit......Page 314
Einführung......Page 315
Sensitivität......Page 316
Die Mischungseigenschaft......Page 324
Periodische Punkte......Page 325
Kneten durch Strecken und Falten......Page 326
Vergleich der Knetvorgänge......Page 327
Formeln für die Knetvorgänge......Page 329
Kneten und der quadratische Iterator......Page 331
Die Sägezahnfunktion anders notiert......Page 332
Chaos für die Sägezahnfunktion......Page 334
Chaos für die Zeltfunktion......Page 338
Chaos für den quadratischen Iterator......Page 342
Wie vererbt sich Chaos?......Page 346
Sind die Eigenschaften von Chaos unabhängig?......Page 348
Fehlerhafte Computerberechnungen......Page 350
Das Beschattungslemma......Page 351
Parabel......Page 354
Quadratischer Iterator (inkl. Iteration von Intervallen)......Page 355
Sägezahnfunktion......Page 356
Differenz von zwei Zeitreihen......Page 357
Was ist ein Attraktor?......Page 359
Seltsame oder chaotische Attraktoren......Page 360
Dynamische Systeme......Page 361
Numerische Lösungsverfahren......Page 362
Der Rössler-Attraktor......Page 364
Was beschreibt das Lorenz-Modell?......Page 366
Grundgleichungen des Systems......Page 368
Das Lorenz-Modell......Page 370
Die Attraktor-Eigenschaft......Page 372
Der Henon-Attraktor......Page 373
Geometrische Betrachtung......Page 376
Dynamische Betrachtung......Page 377
Was bedeutet Selbstähnlichkeit in der Musik?......Page 381
Wie sieht Musik in MATLAB aus?......Page 383
Selbstähnlichkeit durch Rekursivität......Page 387
Selbstähnlichkeit durch Kopieren und Skalieren......Page 391
Andere Arten der Erzeugung......Page 400
Die assemble-Funktion......Page 404
Die c-Funktion......Page 406
Fazit......Page 407
Abbildungsverzeichnis......Page 409
Tabellenverzeichnis......Page 419
Literaturverzeichnis......Page 421
Papiere empfehlen

Fraktale: Theorie und Visualisierung [lectures, free web version ed.] [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Universität Stuttgart Institut für Angewandte Analysis und Numerische Simuation Lehrstuhl für Numerische Mathematik für Höchstleistungsrechner

FRAKTALE: Theorie und Visualisierung Proseminar im Wintersemester 2004/2005 Kerstin Albrecht Zuo Chen Sylvia Frey Markus Hanselmann Sebastian Hösch Pascal Märkl Matthias Nagl Melanie Reichner Markus Schrade

Stefan Baur Verena Fink Marko Grob Fabian Hantsch Alexander Lenz Natali Mavrovi´c Damaris Nowak Irmgard Rucker Jochen Schurr

Eva Brauch Tanja Fischer Markus Hablizel Wiebke Heidelberg Raphael Löchner Lukas Michelbacher Jonas Offtermatt Stefanie Schetter

Version vom: 15. März 2005 Dieses Dokument wurde im Rahmen des Proseminars „Fraktale“ im Wintersemester 2004/05 unter der Leitung von Frau Prof. Dr. Barbara Wohlmuth erstellt. Die einzelnen Artikel wurden von Corinna Hager bearbeitet und zusammengefügt.

Inhaltsverzeichnis

1

Feedbackprozesse

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 2

1

Wie baut man ein Fraktal? . . . . . . . Weg von der Physik, hin zur Mathematik Grafische Iteration . . . . . . . . . . . Das Sierpinski-Dreieck . . . . . . . . . Eigenschaften des Sierpinski-Dreiecks . Pascalsches Dreieck . . . . . . . . . . . Das Chaosspiel . . . . . . . . . . . . . Das 3A + 1-Problem . . . . . . . . . . . Beispiel: Quadratische Iteration . . . . Logistische Iteration . . . . . . . . . . Beispiele . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

Klassische Fraktale I

2.1 2.2

2.3

2.4

2.5

2.6 2.7 2.8

Was ist ein Fraktal? . . . . . . . . . . 2.1.1 Wie lang ist die Küstenlinie? . Sierpinski-Dreieck und -Teppich . . . 2.2.1 Dreieck . . . . . . . . . . . . 2.2.2 Teppich . . . . . . . . . . . . Cantor-Menge und Teufelstreppe . . . 2.3.1 Cantor-Menge . . . . . . . . 2.3.2 Teufelstreppe . . . . . . . . . Koch-Kurve und -Schneeflocke . . . . 2.4.1 Koch-Kurve . . . . . . . . . . 2.4.2 Schneeflocke . . . . . . . . . Wie können wir Fraktale vergleichen? 2.5.1 Selbstähnlichkeit . . . . . . . 2.5.2 Dimension . . . . . . . . . . Hilberts raumfüllende Kurve . . . . . 2.6.1 Konstruktion . . . . . . . . . Peano-Kurve . . . . . . . . . . . . . 2.7.1 Konstruktion . . . . . . . . . MATLAB-Implementierung . . . . . 2.8.1 Koch-Kurve . . . . . . . . . .

1 2 3 5 5 6 7 10 10 11 13 15

. . . . . . . . . . . . . . . . . . . .

15 15 16 16 18 19 19 21 22 23 26 27 27 27 30 30 32 32 33 33

iii

Inhaltsverzeichnis 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 3

3.2

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

33 33 35 35 36

Der Raum der Fraktale . . . . . . . . . . . . . . . . . . . 3.1.1 Vollständige metrische Räume . . . . . . . . . . . 3.1.2 H (X), der Raum der Fraktale . . . . . . . . . . . Fraktale Dimension . . . . . . . . . . . . . . . . . . . . . 3.2.1 Die Dimension einer flächenfüllenden Kurve . . . 3.2.2 Definition der fraktalen Dimension . . . . . . . . 3.2.3 Theoretische Berechnung der fraktalen Dimension 3.2.4 Implementierung des „Box-Counting“-Satzes . . . 3.2.5 Die Hausdorff-Besicovitch-Dimension . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

39 40 43 53 53 54 57 58 62

39

Klassische Fraktale II

4.1

4.2

4.3

4.4

iv

. . . . .

Der Raum der Fraktale und die fraktale Dimension

3.1

4

Sierpinsk-Dreieck Cantor-Menge . . Teufelstreppe . . . Hilbert-Kurve . . . Peano-Kurve . . .

Pascalsches Dreieck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Prinzip des Pascalschen Dreiecks . . . . . . . . . . . . . . . . . 4.1.2 Mathematischer Hintergrund . . . . . . . . . . . . . . . . . . . . 4.1.3 Warum erhält man die richtigen Koeffizienten? . . . . . . . . . . 4.1.4 Farbmuster im Pascalschen Dreieck . . . . . . . . . . . . . . . . Juliamengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Konvergenz oder Divergenz ins Unendliche? . . . . . . . . . . . 4.2.2 Juliamenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Iteration f c (z) = z2 + c . . . . . . . . . . . . . . . . . . . . . . . 4.2.4 Zentrale Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.5 Approximation der Menge Pc . . . . . . . . . . . . . . . . . . . 4.2.6 Visualisierung verschiedener Juliamengen . . . . . . . . . . . . . 4.2.7 Chaos-Spiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.8 Selbstähnlichkeit . . . . . . . . . . . . . . . . . . . . . . . . . . Die Mandelbrotmenge . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Wann ist eine Menge zusammenhängend? . . . . . . . . . . . . . 4.3.2 Das Apfelmännchen . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Wie erstellt man bunte Bilder von Mandelbrotmengen? . . . . . . 4.3.4 Fraktale Eigenschaften des Apfelmänchens . . . . . . . . . . . . 4.3.5 Die Mandelbrotmenge ist zusammenhängend . . . . . . . . . . . 4.3.6 Gemeinsame Strukturen von Juliamengen und Mandelbrotmenge 4.3.7 Andere Mandelbrotmengen . . . . . . . . . . . . . . . . . . . . 4.3.8 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . Menger-Schwamm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Die Cantor-Menge . . . . . . . . . . . . . . . . . . . . . . . . .

65

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. 65 . 65 . 65 . 67 . 67 . 71 . 71 . 71 . 72 . 72 . 73 . 75 . 79 . 80 . 81 . 81 . 83 . 85 . 87 . 93 . 94 . 97 . 99 . 101 . 101

Inhaltsverzeichnis 4.4.2 4.4.3 5

Newton-Verfahren im Komplexen

5.1

5.2

5.3 6

109

Allgemeines Newton-Verfahren . . . . . . . . . . . . . . . 5.1.1 Linearisierung . . . . . . . . . . . . . . . . . . . . 5.1.2 Konvergenzbeweis für eine Beispielfunktion . . . . 5.1.3 Divergenz . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Ausblick auf andere Verfahren . . . . . . . . . . . . 5.1.5 Konvergenz . . . . . . . . . . . . . . . . . . . . . . Zweidimensionales Newton-Verfahren . . . . . . . . . . . . 5.2.1 Allgemeines zweidimensionales Newton-Verfahren . 5.2.2 Beispiel für das zweidimensionale Newton-Verfahren 5.2.3 Einzugsbereich . . . . . . . . . . . . . . . . . . . . 5.2.4 Konvergenzgeschwindigkeit . . . . . . . . . . . . . Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

Pythagoräische Bäume

6.1

6.2

6.3 6.4

7

Der Sierpinski-Teppich . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Menger-Schwamm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

109 109 110 111 111 114 116 116 117 117 120 121 123

Konstruktion . . . . . . . . . . . . . . . . . . 6.1.1 Konstruktionsprozess . . . . . . . . . . 6.1.2 Variationsmöglichkeiten . . . . . . . . 6.1.3 Welche Formen ergeben sich? . . . . . Selbstähnlichkeitsdimension . . . . . . . . . . 6.2.1 Wiederholung . . . . . . . . . . . . . . 6.2.2 Anwendung auf pythagoräische Bäume Implementierung in MATLAB . . . . . . . . . MATLAB-Dateien . . . . . . . . . . . . . . . 6.4.1 pythtree.m . . . . . . . . . . . . . . . 6.4.2 vertex.m . . . . . . . . . . . . . . . . . 6.4.3 factors.m . . . . . . . . . . . . . . . . 6.4.4 ptree.m . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

123 123 124 125 128 128 129 131 132 132 132 133 133

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

135 135 136 137 138

Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen

Die Takagi-Funktion . . . . . . . . . . . 7.1.1 Definition und Eigenschaften: . . 7.1.2 Überall stetig . . . . . . . . . . . 7.1.3 Nirgends differenzierbar . . . . . 7.1.4 Selbstähnlichkeit bzw. Symmetrie

7.2

Die Funktionenklasse ∑ an ψ (bn x + φn ) . . . . . . . . . . . . . . . . . . . . . 139



. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

135

7.1

n=0

7.2.1 7.2.2 7.2.3

Lipschitz- und Zuwachsklassen: . . . . . . . . . . . . . . . . . . . . . 140 Nirgends differenzierbar . . . . . . . . . . . . . . . . . . . . . . . . . 140 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

v

Inhaltsverzeichnis 7.3

7.4

8

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Zufallszahlen-Generatoren

8.1 8.2

8.3

8.4 9

Box-Counting-Dimension dieser Funktionenklasse 7.3.1 Erläuterungen . . . . . . . . . . . . . . . . 7.3.2 Anwendung auf obige Beispiele . . . . . . MATLAB-Quellcodes . . . . . . . . . . . . . . . . 7.4.1 nondiff.m . . . . . . . . . . . . . . . . . . 7.4.2 distZ.m . . . . . . . . . . . . . . . . . . .

145

Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Was ist eine Zufallszahl? . . . . . . . . . . . . . . 8.2.2 Erzeugung von Zufallszahlen . . . . . . . . . . . . 8.2.3 Pseudozufallszahlen . . . . . . . . . . . . . . . . Zufallszahlen-Generatoren . . . . . . . . . . . . . . . . . 8.3.1 Formale Definition: Pseudozufallszahlen-Generator 8.3.2 Beispiele verschiedener Zufallszahlengeneratoren . Zusammenfassung . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

Randomisierung deterministischer Fraktale

9.1 9.2 9.3

9.4 9.5

9.6

Begriffsklärung . . . . . . . . . . . . . . . . . . . Motivation . . . . . . . . . . . . . . . . . . . . . . Die Randomisierung klassischer Fraktale . . . . . 9.3.1 Die Koch-Kurve . . . . . . . . . . . . . . 9.3.2 Das Sierpinski-Dreieck (Modell 1) . . . . . 9.3.3 Das Sierpinski-Dreieck (Modell 2) . . . . . Cluster . . . . . . . . . . . . . . . . . . . . . . . . Perkolation . . . . . . . . . . . . . . . . . . . . . 9.5.1 Erstes Beispiel: Clusterbildung im Dreieck 9.5.2 Zweites Beispiel: Waldbrände . . . . . . . 9.5.3 Korrelationslänge ξ . . . . . . . . . . . . 9.5.4 Folgerungen . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . .

vi

145 145 145 146 146 146 147 147 151 153

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

10 Irrfahrten und ihre Auswirkungen

10.1 Irrfahrten . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Einleitung . . . . . . . . . . . . . . . . . . 10.1.2 Die eindimensionale symmetrische Irrfahrt 10.1.3 Die mehrdimensionale Irrfahrt . . . . . . . 10.1.4 Mathematische Aussagen zur Irrfahrt . . . 10.1.5 Irrfahrten als Modelle . . . . . . . . . . . 10.1.6 Implementierung . . . . . . . . . . . . . . 10.1.7 Fazit . . . . . . . . . . . . . . . . . . . . . 10.2 Brownsche Bewegung . . . . . . . . . . . . . . .

143 143 143 144 144 144

153 153 154 154 158 160 163 163 163 165 170 170 171 173

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

173 173 173 175 184 186 187 190 190

Inhaltsverzeichnis 10.2.1 Die Geschichte der Brownschen Bewegung . . . . . . . 10.2.2 Definition und Eigenschaften der Brownschen Bewegung 10.2.3 Die Brownsche Bewegung am Beispiel der Aggregation 10.2.4 Implementierung . . . . . . . . . . . . . . . . . . . . . 10.3 Finanzmathematik . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.1 Die Geschichte des Börsenhandels . . . . . . . . . . . . 10.3.2 Analyse eines Aktienkurses . . . . . . . . . . . . . . . 10.3.3 Begriffserklärungen . . . . . . . . . . . . . . . . . . . 10.3.4 Die Formel von Black und Scholes . . . . . . . . . . . . 10.3.5 Implementierung . . . . . . . . . . . . . . . . . . . . . 10.4 Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.1 Diffusionsprozesse . . . . . . . . . . . . . . . . . . . . 10.4.2 Beispiel zur Diffusion . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Echte Landschaften . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 „Konstante“ fraktale Landschaften . . . . . . . . . . . . . . . . . . 11.3.1 Der „konstante“ Bergdurchschnitt . . . . . . . . . . . . . . 11.4 Einschub: Wahrscheinlichkeitsverteilungen . . . . . . . . . . . . . 11.4.1 Das Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.2 Der Erwartungswert . . . . . . . . . . . . . . . . . . . . . 11.4.3 Die Varianz . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.4 Die Standardabweichung . . . . . . . . . . . . . . . . . . . 11.4.5 Diskrete Wahrscheinlichkeitsverteilungen . . . . . . . . . . 11.4.6 Kontinuierliche Wahrscheinlichkeitsverteilungen . . . . . . 11.4.7 Vergleich unterschiedlicher Wahrscheinlichkeitsverteilungen 11.4.8 Schlussfolgerung . . . . . . . . . . . . . . . . . . . . . . . 11.5 Noch natürlichere Berge . . . . . . . . . . . . . . . . . . . . . . . . 11.5.1 Landschaftsbeispiele . . . . . . . . . . . . . . . . . . . . . 11.5.2 Zusammenfassung der Implementierung . . . . . . . . . . . 11.6 Wolken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.1 Zweidimensionale Wolken . . . . . . . . . . . . . . . . . . 11.6.2 Dreidimensionale Wolken . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

11 Fraktale Landschaften

215

12 Codierung von fraktalen Bildern mit einfachen Transformationen

12.1 Multiple Reduction Copy Machine (MRCM) 12.1.1 Das Prinzip der MRCM . . . . . . . 12.1.2 Affine Transformationen . . . . . . . 12.1.3 Formale Funktionsweise der MRCM . 12.1.4 Der Algorithmus der MRCM . . . . . 12.1.5 Beispiele in MATLAB . . . . . . . . 12.1.6 Idealisierte MRCM . . . . . . . . . .

190 190 192 194 198 198 198 199 201 202 203 203 203

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

215 215 217 217 231 231 231 233 234 235 239 241 241 241 242 244 244 244 246 247

. . . . . . .

. . . . . . .

. . . . . . .

247 247 247 249 249 252 255

vii

Inhaltsverzeichnis 12.2 Iterated Function Systems (IFS) . . 12.2.1 Das Prinzip der IFS . . . . . 12.2.2 Der Algorithmus der IFS . . 12.2.3 Beispiele in MATLAB . . . 12.3 L-Systems . . . . . . . . . . . . . . 12.3.1 Geschichte . . . . . . . . . 12.3.2 Das Prinzip der L-Systems . 12.3.3 Beispiele zu den L-Systems 12.3.4 Die Algorithmen . . . . . . 12.4 Fraktale Bildkompression . . . . . . 12.4.1 Geschichte . . . . . . . . . 12.4.2 Begriffe . . . . . . . . . . . 12.4.3 Methoden . . . . . . . . . . 12.4.4 Vorteile . . . . . . . . . . . 12.4.5 Nachteile . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

13.1 Einleitung . . . . . . . . . . . . . . . . . . . . . 13.2 Was sind zelluläre Automaten? . . . . . . . . . . 13.2.1 Nachbarschaften . . . . . . . . . . . . . 13.3 Beispiele . . . . . . . . . . . . . . . . . . . . . 13.3.1 1of8-Rule . . . . . . . . . . . . . . . . . 13.3.2 Binäraddition (Sierpinski-Dreieck-Regel) 13.3.3 Parity-Rule . . . . . . . . . . . . . . . . 13.3.4 Seeds-Rule . . . . . . . . . . . . . . . . 13.4 Anwendungen . . . . . . . . . . . . . . . . . . . 13.4.1 HPP-Modell . . . . . . . . . . . . . . . 13.4.2 Majority-Rule . . . . . . . . . . . . . . . 13.4.3 Verkehrsnetz . . . . . . . . . . . . . . . 13.4.4 Sand . . . . . . . . . . . . . . . . . . . 13.4.5 Feuer . . . . . . . . . . . . . . . . . . . 13.4.6 Forest-Fire . . . . . . . . . . . . . . . . 13.5 Game of Life . . . . . . . . . . . . . . . . . . . 13.5.1 Regeln . . . . . . . . . . . . . . . . . . 13.5.2 Eigenschaften . . . . . . . . . . . . . . . 13.5.3 Universal Computing . . . . . . . . . . . 13.6 Implementierung . . . . . . . . . . . . . . . . . 13.6.1 Grafische Benutzeroberfläche . . . . . . 13.6.2 Timer . . . . . . . . . . . . . . . . . . . 13.6.3 Regelset . . . . . . . . . . . . . . . . . . 13.6.4 Visualisierung einer Matrix . . . . . . . . 13.7 Fazit . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

13 Zelluläre Automaten

viii

255 255 257 258 263 263 263 264 266 274 274 275 276 281 281 283

283 283 284 286 286 287 289 290 290 291 292 293 293 294 296 296 297 298 299 301 301 301 302 303 304

Inhaltsverzeichnis

14 Chaos

305

14.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 Die Eigenschaften von Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.1 Sensitivität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.2 Die Mischungseigenschaft . . . . . . . . . . . . . . . . . . . . . . . . 14.2.3 Periodische Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 Eine Metapher für Chaos: Das Kneten von Teig . . . . . . . . . . . . . . . . . 14.3.1 Versuch einer Definition von Chaos . . . . . . . . . . . . . . . . . . . 14.3.2 Kneten, ein deterministischer Vorgang . . . . . . . . . . . . . . . . . . 14.3.3 Kneten durch Strecken und Falten . . . . . . . . . . . . . . . . . . . . 14.3.4 Kneten durch Strecken, Schneiden und Kleben . . . . . . . . . . . . . 14.3.5 Vergleich der Knetvorgänge . . . . . . . . . . . . . . . . . . . . . . . 14.3.6 Formeln für die Knetvorgänge . . . . . . . . . . . . . . . . . . . . . . 14.3.7 Kneten und der quadratische Iterator . . . . . . . . . . . . . . . . . . . 14.3.8 Die Sägezahnfunktion anders notiert . . . . . . . . . . . . . . . . . . . 14.4 Analyse von Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.1 Chaos für die Sägezahnfunktion . . . . . . . . . . . . . . . . . . . . . 14.4.2 Chaos für die Zeltfunktion . . . . . . . . . . . . . . . . . . . . . . . . 14.4.3 Chaos für den quadratischen Iterator . . . . . . . . . . . . . . . . . . . 14.5 Sensitivität folgt aus Mischungseigenschaft und dichten, periodischen Punkten 14.5.1 Wie vererbt sich Chaos? . . . . . . . . . . . . . . . . . . . . . . . . . 14.5.2 Sind die Eigenschaften von Chaos unabhängig? . . . . . . . . . . . . . 14.6 Chaos am Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6.1 Fehlerhafte Computerberechnungen . . . . . . . . . . . . . . . . . . . 14.6.2 Das Beschattungslemma . . . . . . . . . . . . . . . . . . . . . . . . . 14.7 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7.1 Parabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7.2 Quadratischer Iterator (inkl. Iteration von Intervallen) . . . . . . . . . . 14.7.3 Zeitreihe des quadratischen Iterators . . . . . . . . . . . . . . . . . . . 14.7.4 Sägezahnfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7.5 Differenz von zwei Zeitreihen . . . . . . . . . . . . . . . . . . . . . . 15 Der Lorenz-Attraktor und andere Attraktoren

15.1 Was ist ein Attraktor? . . . . . . . . . . . . . 15.1.1 Seltsame oder chaotische Attraktoren 15.2 Dynamische Systeme . . . . . . . . . . . . . 15.2.1 Numerische Lösungsverfahren . . . . 15.3 Der Rössler-Attraktor . . . . . . . . . . . . . 15.4 Der Lorenz-Attraktor . . . . . . . . . . . . . 15.4.1 Was beschreibt das Lorenz-Modell? . 15.4.2 Grundgleichungen des Systems . . . 15.4.3 Das Lorenz-Modell . . . . . . . . . . 15.4.4 Die Attraktor-Eigenschaft . . . . . .

305 306 306 314 315 316 316 316 316 317 317 319 321 322 324 324 328 332 336 336 338 340 340 341 344 344 345 346 346 347 349

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

349 350 351 352 354 356 356 358 360 362

ix

Inhaltsverzeichnis 15.5 Der Henon-Attraktor . . . . . . . . . . 15.6 Charakterisierung seltsamer Attraktoren 15.6.1 Geometrische Betrachtung . . . 15.6.2 Dynamische Betrachtung . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

16.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . 16.1.1 Was bedeutet Selbstähnlichkeit in der Musik? . 16.1.2 Wie sieht Musik in MATLAB aus? . . . . . . . 16.2 Arten der Erzeugung . . . . . . . . . . . . . . . . . . 16.2.1 Selbstähnlichkeit durch Rekursivität . . . . . . 16.2.2 Selbstähnlichkeit durch Kopieren und Skalieren 16.2.3 Andere Arten der Erzeugung . . . . . . . . . . 16.3 Implementierung . . . . . . . . . . . . . . . . . . . . 16.3.1 Die    -Funktion . . . . . . . . . . . . 16.3.2 Die c-Funktion . . . . . . . . . . . . . . . . . 16.4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

16 Selbstähnlichkeit in moderner elektronischer Musik

363 366 366 367 371

371 371 373 377 377 381 390 394 394 396 397

Abbildungsverzeichnis

399

Tabellenverzeichnis

409

Literaturverzeichnis

411

x

1 Feedbackprozesse von Raphael Löchner Zusammenfassung: Feedbackprozesse sind ein unverzichtbares Mittel, um Fraktale zu generieren. Dieser Text beschreibt grundlegende Formeln, erläutert die Ergebnisse und erlaubt einen Ausblick auf kommende Anwendungen in der fraktalen Welt.

1.1 Wie baut man ein Fraktal? Wie man ein Haus baut, ist bereits aus Kinderliedern hinlänglich bekannt. Stein auf Stein. Es werden also gleichartige Objekte aufeinander angeordnet, so dass sich am Ende ein bewohnbares Gebilde erhebt. Das Fraktal entsteht anders. Es möchte etwas besonderes sein und beschließt daher, sich aus ständig veränderten Teilen gestalten zu lassen. Die Art dieser Vorschriften sei in diesem Abriss erläutert und anhand von Beispielen verständlich gemacht. Allgemein gesprochen geht es um Rückkopplung. Der Begriff ist den meisten vor allem aus misslungenen Karaokeabenden oder Ansprachen bekannt: Der Verantwortliche am Mischpult passt für einen Moment nicht auf, das Mikrofon kommt einer Box gefährlich nahe, und schon fängt es den Schall der Anlage auf. Da es jedoch selbst in den Boxen verstärkt wiedergegeben wird, wiederholt sich das Spiel und es ertönt ein immer lauter werdender Lärm. Soweit klingt die Sache für jeden verständlich, selbst für jemanden, der dieses Phänomen selbst noch nicht miterlebt hat. Was würde dieser jemand wohl sagen, wie dieser Lärm klingt? Vermutlich wie das immer lauter werdende Echo des zuletzt gesprochenen Satzes . . . oder? Die Erfahrung zeigt etwas anderes: Die Rückkopplung ist ein lauterwerdender Ton, der variiert, je nachdem, wie weit das Mikrofon von der nächsten Box entfernt ist. Woher kommt dieser eine Ton?

Abbildung 1.1: Schematische Darstellung eines Feedbackprozesses Und das ist Rückkopplung allgemein: Eine Anordnung aus einer Eingabeeinheit, einem Prozessor mit Kontrolleinheit, und einer Ausgabeeinheit, die ihrerseits wieder mit der Eingabeeinheit verbunden ist. Im Beispiel der Anlage wäre die Eingabeeinheit das Mikrofon, der Prozessor der Verstärker, die Kontrolleinheit das Mischpult, und die Ausgabeeinheit die Boxen.

1

1 Feedbackprozesse Entsprechend ließe sich das Experiment auch visuell realisieren. Mit zwei Spiegeln passiert nicht viel, da man sich ja selbst dazwischen befindet und das Prinzip der Prozessoreinheit wegfällt . . . Was geschieht, wenn man eine Kamera einem Monitor gegenüberstellt? Ein mögliches Bild sei hier präsentiert:

Abbildung 1.2: Beispiel für einen Feedback-Prozess

1.2 Weg von der Physik, hin zur Mathematik Wir wollen uns ein einfaches Beispiel mathematischer Natur ansehen. Setzen wir also in das Schema eine mathematische Formel ein: xn+1 = x2n + c Dabei ist die Gleichung der Prozessor und c die zugehörige Kontrolleinheit. Das Ergebnis (Ausgabe) fungiert jeweils als Eingabe für den nächsten Schritt. Diese Folge werden wir später eingehender betrachten. Sie ist eine Einschritt-Maschine, weil sie jeweils aus dem Ergebnis eines Schritts den nächsten Schritt vollziehen kann. Eine Erweiterung erfährt das Zweischritt-Verfahren, dem typischerweise die Ausgaben der letzten zwei Schritte als Eingabe zur nächsten Iteration zugeführt werden. Das wohl bekannteste Beispiel ist die Berechnung der Fibonacci-Zahlen. Fibonacci – Leonardo aus Pisa – veröffentlichte 1202 das Liber Abaci, das Europa die indisch-arabischen Ziffern (0,1,2, . . . ) nahe brachte. Unter anderem enthielt es folgendes Problem: Man stelle sich vor, es existiert ein unsterbliches Kaninchenpaar, das jeden Monat ein neues Kaninchenpaar gebiert. Jedes Kaninchenpaar kann nach einem Monat intensiv genossener Jugend selbst junge Kaninchen hervorbringen. Wie viele Paare gibt es nach n Monaten? Offensichtlich entspricht die Anzahl der jungen Paare eines Monats jeweils der Anzahl der alten im Vormonat. Die Anzahl der alten Paare wiederum setzen sich aus der Anzahl der Jungen und Alten des Vormonats zusammen.

2

1.3 Grafische Iteration Formell ausgedrückt: Jn+1 = En

oder

Jn = En−1

damit: En+1 = En + Jn = En + En−1 Daraus ergibt sich die Folge der Fibonacci-Zahlen: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, . . . Interessanterweise konvergiert der Quotient

En+1 En

gegen den goldenen Schnitt

√ 1+ 5 1, 618033988749894848820 · · · = 2 Eine Zweischritt-Schleife sieht in unserem Diagramm also so aus:

Abbildung 1.3: Schematische Darstellung einer Zweischritt-Schleife Dem Diagramm ist leicht anzusehen, dass sich die Zweischritt-Maschine (wie übrigens jede Mehrschritt-Maschine) auf die Einschritt-Maschine zurückführen lässt, indem man die Folgenglieder als Vektoren versteht, auf die der Prozessor einen Satz von Formeln anwendet.

1.3 Grafische Iteration Entsprechend der Wiederholung von mathematischen Rückkopplungsprozessen lassen sich auch mit grafischen Prozessen Rückkopplungen vollziehen. Einfachstes Beispiel sind hier wohl Kopiergeräte. Insbesondere kann eine Verkleinerungskopie sehr reizvoll sein: Egal, was auf der ursprünglichen Kopiervorlage abgebildet ist – es wird nach einer ausreichenden Anzahl von Kopiervorgängen zu einem Punkt reduziert.

Abbildung 1.4: Schema einer grafischen Iteration

3

1 Feedbackprozesse

Abbildung 1.5: Beispiel für eine grafische Iteration Stellen wir uns nun eine entsprechende Mehrfach-Verkleinerungs-Kopier-Maschine (Multiple Reduction Copy Machine, MRCM) vor. Besonderheit dieser Maschine: Sie kopiert die Vorlage mehrfach in einer bestimmten Anordnung nebeneinander. Nehmen wir eine Maschine, die eine Verkleinerungen um 50% vornimmt und die Ergebnisse in Dreiecksform nebeneinander platziert. Man kann sie sich so vorstellen:

Abbildung 1.6: Darstellung der Verkleinerungsmaschine Was passiert nun, wenn man diese Maschine wieder mit ihrem eigenen Ergebnis füttert? 1. Die Größe der Ausgabe bleibt gleich, da die Eingabe um 50% verkleinert wurde, die Höhe und Breite jedoch zweimal die Verkleinerung beträgt. 2. Das Gebilde wird selbstähnlich , da die großen Strukturen im Kleinen wieder auftreten. 3. Die Folge dieser Kopien konvergiert, egal bei welcher anfänglichen Eingabe, gegen einen Attraktor, nämlich das Sierpinski-Dreieck (Waclaw Sierpinski, 1882–1969).

4

1.4 Das Sierpinski-Dreieck

Abbildung 1.7: möglicher Output der Verkleinerungsmaschine

1.4 Das Sierpinski-Dreieck

Abbildung 1.8: Waclaw Sierpinski Waclaw Sierpinski war ein polnischer Mathematikprofessor in Lemberg und Warschau. Er präsentierte 1916 das nach ihm benannte Dreieck mit folgenden Konstruktionsgrundschritten: Man nehme ein gefülltes Dreieck, verbinde die Mittelpunkte der drei Seiten und entferne die davon eingeschlossene Fläche. Dadurch entstehen drei kleinere aneinandergrenzende Dreiecke, bei denen das Verfahren rekursiv angewendet wird.

1.5 Eigenschaften des Sierpinski-Dreiecks Die Fläche verringert sich bei jedem Schritt um ein Viertel. Dadurch ergibt sich nach dem n-ten Schritt: µ ¶n 3 · A0 An = 4 An ist eine Nullfolge. Die Fläche des „fertigen“ Sierpinskidreiecks ist also 0. Hingegen wachsen die Ränder des Dreiecks in jedem Schritt um die Hälfte.

5

1 Feedbackprozesse

Abbildung 1.9: Verschiedene Arten des Sierpinski-Dreiecks

Abbildung 1.10: Das klassische Sierpinskidreieck Nach dem n-ten Schritt: In =

3n · I0 2

Die Randlänge In strebt also gegen unendlich. Offensichtlich besteht nicht nur eine Möglichkeit, ein bestimmtes Fraktal zu generieren. Es seien im folgenden für das Sierpinski-Dreieck noch zwei weitere Varianten aufgezeigt.

1.6 Pascalsches Dreieck Um Terme der Form (a + b)n = c1 an b0 + c2 an−1 b1 + . . . + cn a0 bn zu berechnen, bekommt man in der Schule ein einfaches Hilfsmittel an die Hand, um die sonst recht aufwändige Ermittlung der Binomialkoeffizienten (c 1 , c2 , . . . , cn ) zu vermeiden: das Pascalsche Dreieck.

6

1.7 Das Chaosspiel Man beginnt mit einer 1 zwischen lauter Nullen in der ersten Zeile. Ein Element der nächsten Zeile wird berechnet, indem man die zwei jeweils direkt darüberliegenden Zahlen addiert. So ergibt sich ein mit Zahlen unendlich großes gefülltes Dreieck, das von Einsen eingeschlossen wird.

Abbildung 1.11: Das Pascalsche Dreieck Bei eingehender Betrachtung fällt auf, dass die ungeraden Zahlen in diesem Dreieck wieder das Sierpinski-Dreieck ergeben. Hier eingefärbt:

Abbildung 1.12: Das klassische Sierpinski-Dreieck Diese Struktur setzt sich beliebig lange fort.

1.7 Das Chaosspiel Michael F. Barnsley ersann eine Art Würfelspiel, das folgendermaßen abläuft: Auf einem Blatt Papier werden drei Bezugspunkte markiert, ein vierter ist der Spielpunkt. Man würfelt, und je nach Ergebnis wird der Mittelpunkt zwischen dem Spielpunkt und Bezugspunkt 1, 2 oder 3 markiert.

7

1 Feedbackprozesse Es sei niemandem empfohlen, dieses Spiel von Hand zu spielen, aber am Computer ergeben sich nach etwa 1000 Würfen Muster, die an das Sierpinski-Dreieck erinnern.

Abbildung 1.13: Die Ergebnisse des Chaosspiels Erklärung: Das Stichwort lautet Adressierung. Man kann, ausgehend von einem bestimmten Punkt, auf genau 3 Punkte gelangen. Wenn man die Bezugspunkte als Adressierungshilfe nimmt, ergibt sich ein Baum, an dessen Zweigenden jeweils ein Punkt des Sierpinski-Dreiecks befindet. Wichtig für die Generierung eines Sierpinski-Dreiecks war also offensichtlich, dass es drei Bezugspunkte gab (Dreifachkopie), und dass die Strecke zwischen dem Spiel- und dem Bezugspunkt jeweils halbiert wurde (Verkleinerung auf die Hälfte). Es wird klar, dass es für alle durch eine MRCM gebaute Fraktale auch ein entsprechendes Chaosspiel geben muss.

Abbildung 1.14: Die Adressierung der Punkte im Chaosspiel Jede Richtung bekommt eine Zahl zugewiesen. Hier sei oben (T) 1, rechts (R) 2 und links (L) 3. Der Punkt A hat in diesem Beispiel die Adresse 3111 - oder aber 1333. Die Adressierung ist im

8

1.7 Das Chaosspiel Falle des Sierpinskidreiecks ein ternäres System. Ein ähnlicher Vergleich, dass zwei Adressen das gleiche bezeichnen, findet sich übrigens in unserem Dezimalsystem: 0.9 = 1.

Abbildung 1.15: Welche MRCMs gibt es denn noch? Prinzipiell sind sehr viele Fraktale durch eine Mehrfach-Verkleinerungs-Kopier-Maschine erstellbar. Ein Farn z.B. lässt sich als MRCM so beschreiben:

Abbildung 1.16: Farn durch eine MRCM erzeugt Kommen wir zurück zur mathematisch formellen Einschritt-Maschine:

9

1 Feedbackprozesse

1.8 Das 3A + 1-Problem Lothar Collatz (1910–1990) formulierte 1975 folgenden Algorithmus: 1. A sei eine positive ganze Zahl. 2. Falls A = 1, dann STOP. 3. Falls A gerade, ersetze A durch

A 2

und gehe zu Schritt 2.

4. Falls A ungerade, ersetze A durch 3A + 1 und gehe zu Schritt 2. Ein paar Beispiele für verschiedene Anfangswerte A: • 1, STOP • 2, 1, STOP • 3, 10, 5, 16, 8, 4, 2, 1, STOP • 4, 2, 1, STOP • 5, 16, 8, 4, 2, 1, STOP • 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1, STOP • 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, STOP • 75, 226, 113, 340, 170, 85, 256, 128, 64, 32, 16, 8, 4, 2, 1, STOP Offenbar ist die Anzahl der Durchläufe für einen bestimmten Eingabewert schwer zu vorherzusagen, da selbst kleine Zahlen wie 27 den Algorithmus vergleichsweise lange rechnen lassen. Ob der Algorithmus jedoch für jeden Wert hält, ist bis heute ungeklärt.

1.9 Beispiel: Quadratische Iteration xn+1 = x2n + c Beispieldurchlauf: Initialisierung:

10

Kontrollwert: c := −3 Startwert x0 := 1, 5

1.10 Logistische Iteration Tabelle 1.1: Anfang einer quadratischen Iteration xn 1,5 -0,75 -2,4375 2,94140625

x2n + c -0,75 -2,4375 2,94140625 5,6518707275390625

Wagen wir ein Experiment: Da die Kapazitäten jedes Taschenrechners beschränkt sind, schneiden wir einmal nach der 8. Nachkommastelle und einmal nach der 16. Stelle ab. Tabelle 1.2: Die vollständige quadratische Iteration xn x0 x1 x2 x3 x4 x5 x6 x7 x8

8 Stellen 1,5 -0,75 -2,4375 2,94140625 5,65187073 28,94364275 834,73445564 696778,61143261 485500433346,95611099

16 Stellen 1,5 -0,75 -2,4375 2,94140625 5,6518707275390625 28,9436427208129316 834,7344539500674019 696778,6086113171959788 485500429415,3231540948516371

Bereits nach acht Schritten weicht der der Wert des Taschenrechner mit 8 Nachkommastellen von dem mit 16 Stellen um fast viertausend ab (genau: 3931,6329568951483629). Offenbar scheinen selbst die letzten Stellen nach dem Komma für Feedbackprozesse äußerst wichtig zu sein. Selbst der kleinste Fehler vermag sich nach einigen Schritten beträchtlich fortzupflanzen. Diese Fehler treten ohne Zweifel auf, denn auf Grund der Quadratbildung verdoppelt sich die Anzahl der Nachkommastellen in jedem Durchlauf. Taschenrechner und Computer haben jedoch nur eine sehr begrenzte Speicherkapazität, daher kann man diese Folge nicht beliebig genau berechnen, ohne an Grenzen zu stoßen.

1.10 Logistische Iteration Der Belgier Pierre Verhulst (1804–1849) schlug 1837 ein Modell vor, um Populationsgrößen von Tierarten vorauszusagen. Sei die Wachstumsrate r der Population konstant, dann gilt: r=

Pn+1 − Pn Pn

11

1 Feedbackprozesse Für eine sich unbegrenzt ausbreitende Tierart gelte dann: Pn = (1 + r) n P0 Jedoch ist die maximale Population durch Nahrungsvorrat, Ausbreitungsgebiet usw. beschränkt, daher führte Verhulst p als Anteil der tatsächlichen Populationsgröße P an der Sättigungsgrenze ein. Dadurch lässt sich das Modell unabhängig von tatsächlichen Populationsgrößen allgemein betrachten. Die ausgearbeitete Gleichung lautet: pn+1 = pn + rpn (1 − pn ) Diese Gleichung berechnet pn mit der durch die Umwelt vorgegebenen Wachstumshöchstgrenze nach n Zeiteinheiten. Das ist das logistische Modell von Verhulst. Natürlich lässt es sich in der Natur kaum zur realistischen Anwendung bringen, da dort andere Faktoren, wie natürliche Feinde, äußere Einwirkungen etc. mitspielen – es funktioniert aber wohl in abgeschlossenen Szenarien wie z.B. einer Petrischale mit einer Bakterienpopulation bei konstanter Nahrungszufuhr und Temperatur. Es lässt sich zeigen, dass diese Gleichung äquivalent ist zur quadratischen Gleichung xn+1 = x2n + c. Beweis: Mit c= und x0 =

1 − r2 4

(1.1)

1+r − rp0 2

folgt 1+r − rpn (1.2) 2 Es gilt also einfach, die x- und p-Werte jeweils in einer anderen Skala zu verstehen (in etwa wie Temperatur in Celsius oder Fahrenheit: x = 59 (p − 32), wobei x in ◦ C und p in ◦ F. Setzen wir Gleichung (1.2) in die Formel der logistischen Iteration ein, erhalten wir: xn =

xn+1 = (

1+r ) − rpn − r2 pn (1 − pn ) 2

Die Gleichungen (1.1) und (1.2) in die quadratische Formel eingesetzt, ergibt: xn+1 = (

1+r 1 − r2 − rpn )2 + 2 4

Durch Umformung ergibt sich auf der logistischen wie auf der quadratischen Seite: xn+1 = r2 p2n − (1 + r)pn +

1+r 2 ¤

12

1.11 Beispiele

1.11 Beispiele Sei die Wachstumsrate r = 3 und der Anfangswert p 0 = 0, 01. Ab der 10. Nachkommastelle wird gerundet. Tabelle 1.3: Beispielrechnung für das logistische Modell Rechenzyklen 1 2 3 4 5 10

ohne Stop 0,0397 0,15407173 0,5450726260 1,288978001 0,1715191421 0,7229143012

Edward Lorenz (geboren 1917) ließ 1956 Wettervorhersagen mit Hilfe von Computern berechnen. Als er einige Zwischenergebnisse ausdruckte, gab er diese Werte als neue Anfangsbedingungen wieder ein. Als er einige Zeit später wieder zurückkehrte und die Werte mit denen verglich, die der Computer mit den Originaleingaben ausgab, stellte er fest, dass diese sich eklatant unterschieden. Eine erneute Berechnung ergab die gleiche Differenz. Führen wir ein ähnliches Experiment mit der logistischen Gleichung durch: Die Ziffern nach der dritten Nachkommastelle werden abgeschnitten und das Modell weiter berechnet: Tabelle 1.4: Beispielrechnung mit Neustart Rechenzyklen 10 15 20 25 30 100

ohne Stop 0,7229143012 1,270261775 0,5965292447 1,315587846 0,3742092321 0,7355620299

mit Stop und Neustart 0,722 1,257214733 1,309731023 1,089173907 1,33105032 1,327362739

Es zeigt sich, dass sich für das gleiche Modell und den gleichen Rechner völlig unterschiedliche Werte ergeben. Noch verblüffender ist die Tatsache, dass sogar ein und derselbe mathematische Ausdruck – auf verschiedene Weise berechnet – völlig verschiedene Werte produzieren kann, wie man anhand von Tabelle 1.5 sehen kann. So ergibt sich, dass das Chaos bei rückgekoppelten Funktionen künftig dringend beachtet werden muss, um krass abweichende Werte zu vermeiden.

13

1 Feedbackprozesse Tabelle 1.5: Beispielrechnung mit verschiedenen Rechenwegen Rechenzyklen 1 2 3 4 5 10 11 12 13 14 15 20 25 30 35 40 45

p + rp(1 − p) 0,0397 0,15407173 0,5450726260 1,288978001 0,1715191421 0,7229143012 1,323841944 0,03769529734 0,146518383 0,5216706225 1,270261775 0,5965292447 1,315587846 0,3742092321 0,9233215064 0,0021143643 1,219763115

(1 + r)p − rp 2 0,0397 0,15407173 0,5450726260 1,288978001 0,1715191421 0,7229143012 1,323841944 0,03769529724 0,1465183826 0,5216706212 1,270261774 0,5965293261 1,315588447 0,3741338572 0,9257966719 0,0144387553 0,0497855318

Fazit

Feedback ist im Stande, sowohl sehr chaotische als auch stark konvergierende Folgen hervorzubringen. Es existieren sogar Attraktoren, die für jede Eingabe den Grenzwert darstellen.

14

2 Klassische Fraktale I von Jonas Offtermatt und Melanie Reichner

2.1 Was ist ein Fraktal? Der Begriff Fraktal kommt vom lateinischen Adjektiv fractus. Das dazugehörige Verb bedeutet zerbrechen, unregelmäßige Bruchstücke erzeugen. So meint es sowohl in Stücke zerbrochen als auch irregulär. Der Begriff wurde von Mandelbrot erfunden, um eine Klasse von Objekten, die in der Entwicklung der reinen Mathematik eine historische Rolle gespielt haben, unter einem Begriff zu vereinen. 2.1.1 Wie lang ist die Küstenlinie?

Abbildung 2.1: Englands Küste – [Aufnahme aus dem Lexikon] Diese Frage haben sich die Könige der jeweiligen Länder schon lange gefragt, doch wollen wir heute einmal nachmessen. Misst man mit einem Maßstab 1:100.000, so kommen Buchten zum Vorschein, die gemessen werden. Wiederholt man den Vorgang mit einem Maßstab 1:10.000 so treten kleinere Buchten in Erscheinung. Wird jedoch ein Maßstab von 1:1.000 verwendet, so werden noch mehr Details sichtbar. Wird der Maßstab immer weiter verringert, so erscheinen immer weitere Einzelheiten, so dass die Küste immer weiter in die Länge wächst. Dies hat zur

15

2 Klassische Fraktale I Folge, dass in verschiedenen Büchern andere Längenangaben für die selbe Küste angegeben werden.

2.2 Sierpinski-Dreieck und -Teppich

Abbildung 2.2: Waclaw Sierpinski – [52] Waclaw Sierpinski (1882–1969) war Professor in Lvov und Warschau in der Ukraine. Er war einer der einflussreichsten Mathematiker seiner Zeit und stellte, 40 Jahre nach der Cantor-Menge, 1916 sein Dreieck vor. Ihm wurde an zehn verschiedenen Universitäten der Ehrendoktortitel verliehen und er wurde zum Vizepräsidenten der polnischen Wissenschaftsakademie gewählt. Ein Krater auf dem Mond wurde nach ihm benannt.

2.2.1 Dreieck

Dieses Fraktal ist von großer Bedeutung, weil es auf die verschiedensten Arten berechnet werden kann und damit auch als Lösung für sehr viele Probleme in Frage kommt. Hier werden wir nur einen einfachen geometrischen Ansatz zeigen.

Konstruktion

Wir beginnen mit einem gleichseitigen Dreieck. Die Mitten der drei Seiten werden miteinander verbunden, so dass insgesamt vier Dreiecke entstehen. Das mittlere wird entfernt, was den ersten Schritt fertig stellt. Nach diesem ersten Schritt sind drei gleichseitige Dreiecke vorhanden, deren Seiten jeweils genau die halbe Länge des Ausgangsdreiecks haben. Nun wird dieser erste Schritt beliebig oft wiederholt, so dass aus 3, 9, 27, 81, 243 . . . Dreiecke werden. Jedes dieser Dreiecke ist eine verkleinerte Kopie der vorherigen.

16

2.2 Sierpinski-Dreieck und -Teppich

Abbildung 2.3: 1. und 2. Schritt des Sierpinskidreiecks

Abbildung 2.4: 3. und 4. Schritt des Sierpinskidreiecks

Abbildung 2.5: 5. und 6. Schritt des Sierpinskidreiecks Eigenschaften

Der Umfang dieses Dreiecks nach n Iterationen kann berechnet werden durch 1 Un = 3n · 3 · a · ( )n 2

17

2 Klassische Fraktale I Die Anzahl der Dreiecke verdreifacht sich mit jedem Konstruktionsschritt; d. h. für den gesamten Umfang gilt: 1 3 lim (3n · 3a · ( )n ) = lim (( )n · 3a) = ∞ n→∞ 2 2

n→∞

Der Umfang wächst also bis ins Unendliche. Der Flächeninhalt des Dreiecks nach n Iterationen berechnet sich durch: An =

√ 1 2 3 n 3· ·a ·( ) 4 4

Daraus folgt für die Gesamtfläche des Sierpinski-Dreiecks: 1 √ 1 ASierpinski = lim (3n · ( )n · · 3 · a2 ) = 0 n→∞ 4 4 Das Sierpinski-Dreieck hat also einen unendlichen Umfang, der eine Fläche der Größe 0 umschließt.

2.2.2 Teppich Konstruktion

Wir beginnen mit einen Quadrat, das in neun kleinere gleich große Quadrate zerteilt wird. Das mittlere dieser Quadrate wird wieder entfernt, und damit ist der erste Schritt beendet. Wird dies beliebig oft wiederholt, ergibt sich der Sierpinski-Teppich:

Abbildung 2.6: Sierpinski-Teppich – [44]

18

2.3 Cantor-Menge und Teufelstreppe

2.3 Cantor-Menge und Teufelstreppe 2.3.1 Cantor-Menge

Abbildung 2.7: Georg Cantor (1845-1918) – [8] 1862 begann Cantor mit seinem Mathematikstudium in Zürich, zog dann nach Berlin. Dort nahm er an Vorlesungen von bekannten Mathematikern wie z.B. Weierstraß teil. 1867 wurde seine Doktorarbeit im Gebiet der Zahlentheorie „De aequationibus secundi gradus indeterminatis“ fertig. 1868 wurde ihm der Doktortitel verliehen. Später wurde er Professor an der Universität in Halle, wo er im Gebiet der Mengenlehre forschte. Veröffentlicht wurde die Cantor-Menge 1883. Heutzutage spielt die Cantor-Menge in vielen Bereichen der Mathematik eine Rolle, wobei der Anteil bei chaotischen dynamischen Prozessen recht groß ist. Die Cantor-Menge (oder auch Cantor-Staub genannt) ist das einfachste und am frühesten entdeckte Fraktal. Konstruktion

Die normale Cantormenge ist eine unendliche Menge an Punkten auf dem Intervall [0,1]. Wir starten mit dem Intervall [0,1]. Nun wird das offene Intervall ] 31 , 23 [ entfernt; d. h. es verschwindet das mittlere Drittel des Intervalls, jedoch nicht die Punkte 31 und 23 . Übrig bleiben zwei Intervalle: [0, 13 ] ∪ [ 32 ,1] mit einer Länge von jeweils 31 . Das war der erste Konstruktionsschritt. Im nächsten Schritt werden aus den zwei Intervallen wieder jeweils das mittlere Drittel ohne die Randpunkte entfernt wird. Jetzt bleiben vier Intervalle 2 3 6 7 8 1 ([0, ]) ∪ [ , ]) ∪ ([ , ]) ∪ [ , 1]) 9 9 9 9 9 9 mit einer Länge von jeweils 91 . Dieser Konstruktionsschritt wird mit jeder verbleibenden Teilmenge wiederholt. Wird diese Iteration unendlichen wiederholt, so ergibt sich eine Menge, die aus unendlich vielen kleinsten Strecken besteht; daher die Bezeichnung Cantor-Staub.

19

2 Klassische Fraktale I Tabelle 2.1: Streckenlängen und -anzahl der Cantor-Menge Schritt 0

Anzahl 1

Länge 1

1

2

2

4

3

8

1 3 1 9 1 27

...

...

...

n

2n

( 13 )n

Von Schritt zu Schritt verdoppelt sich die Anzahl der Strecken. Wenn m die Zahl der Teilmengen nach n Iterationen ist, dann gilt m = 2 n . Auf der anderen Seite nimmt die Streckenintervalllänge l jeweils um ein Drittel ab. Somit ist l = ( 13 )n . Betrachtet man den Grenzwert für unendlich viele Iterationen, so ergibt dies: µ ¶n 2 =0 lim n→∞ 3 Wenn die Konstruktion unendlich oft durchgeführt wird, sind es genau die Punkte des Intervalls [0,1], die nicht verschwinden, wie z.B. 1 2 1 2 8 1 2 0, 1, , , , , , , , . . . 3 3 9 9 9 27 27

Abbildung 2.8: 1. bis 6. Schritt der Cantor-Menge Triadisches System

Gewöhnlich wird im Dezimalsystem gerechnet, doch auch das Dualsystem findet seine Verwendung in Computern. Zur Untersuchung des Cantor-Staubs eignet sich das triadische System. Hier ist die Basis 3, so dass es nur die Ziffern 0, 1 und 2 gibt. Wenn wir einen Schritt weiter gehen, können wir auch sagen, dass Randpunkte von NichtRandpunkten unterschieden werden können. Die Endpunkte der Cantor-Menge werden in in

20

2.3 Cantor-Menge und Teufelstreppe Tabelle 2.2: Beispiele für triadische Zahlen Dezimalzahl 1 3 1 9 2 9 2 3

Triadische Zahl 0, 1 = 0, 02 0, 01 = 0, 002 0, 02 = 0, 012 0, 2 = 0, 12

der triadischen Darstellung durch eine unendliche Folge einer der Ziffern 0 oder 2 dargestellt. So ist also z.B. 32 = 0, 2 ein Randpunkt, weil man sich noch unendlich viele Nullen ans Ende der Zahl geschrieben denken kann (0, 2000000 . . . ). Ein Beispiel für eine Zahl, die kein Randpunkt ist, wäre 0, 0020222202200020 . . . 2.3.2 Teufelstreppe

Die Cantor-Menge und die Teufelstreppe werden schnell miteinander in Verbindung gebracht. Konstruktion

Wir beginnen mit einem weißen Quadrat mit einer Seitenlänge von 1 und betrachten dabei die untere Grundseite. Hier wird die Konstruktion der Cantor-Menge angewandt, d. h. immer wird das mittlere Drittel entfernt. Nun entsteht für jedes entfernte Stück in der n-ten Iteration ein schwarzes Rechteck mit Länge ( 31 )n und einer bestimmten Höhe. Bei der ersten Iteration wird ein schwarzes Rechteck auf dem Intervall [ 13 , 32 ] mit einer Höhe von 12 errichtet. Bei der zweiten Iteration sollen zwei Rechtecke erstellt werden: Eines auf dem Intervall [ 91 , 29 ] mit Höhe 41 und das andere auf [ 79 , 98 ] mit einer Höhe von 34 .

Abbildung 2.9: 1. und 2. Schritt der Teufelstreppe Im dritten Schritt werden 4 Rechtecke mit 81 , 83 , 58 und 87 als Höhe benötigt. n Im n-ten Schritt werden 2(n−1) Rechtecke mit Höhen von ( 12 )n , ( 32 )n , . . . , ( (2 2−1) ) errichtet. n Mit zunehmender Iterationszahl nimmt der Weißanteil ab und der Schwarzanteil zu. Wird dieser Prozess unendlich oft durchgeführt, so wird das Schwarz eine exakte Kopie des weißen Bereichs,

21

2 Klassische Fraktale I

Abbildung 2.10: 3. und 4. Schritt der Teufelstreppe der um 180◦ gedreht wurde. Eine Folgerung daraus ist, dass das Quadrat in zwei gleiche Hälften geteilt wird, wobei die Grenze zwischen weiß und schwarz die Teufelstreppe genannt wird.

Aschwarz = =

1 1 1 1 3 1 1 3 5 7 · + · ( + ) + · ( + + + +...) 3 2 9 4 4 27 8 8 8 8 2 4 2k 1 1 + · (1 + + + . . . + k + . . . ) 6 9 3 9 3

Die Summer der geometrischen Reihe in den Klammern ist 3, womit das Ergebnis lautet: Aschwarz =

1 3 1 + = 6 9 2

Abbildung 2.11: 5. und 6. Schritt der Teufelstreppe

2.4 Koch-Kurve und -Schneeflocke 1904 stellte Helge von Koch, schwedischer Mathematiker, seine Kurve vor, die heute eines der bekanntesten Fraktale ist. Er wurde 1870 in Stockholm geboren. Sein Vater war beim Militär. Er besuchte eine gute Schule in Stockholm und anschießend ab 1887 die Universität von Stockholm. Seine ersten Veröffentlichungen schrieb er über „infinitely many linear equations in infinitely many unknowns“. 1892 erhielt er seinen Doktortitel. Zwischen 1893 und 1905 war er Hilfsprofessor der Mathematik und wurde 1891 Professor an der Stockholmer Universität.

22

2.4 Koch-Kurve und -Schneeflocke

Abbildung 2.12: Helge von Koch – [27] 2.4.1 Koch-Kurve

Die Koch-Kurve ist auch deshalb wichtig, weil sie wohl Mandelbrot als Vorlage für seine großartige Arbeit gedient haben muss. Konstruktion

Wir beginnen mit dem Initiator, einer geraden Linie. Im mittleren Drittel wird ein gleichseitiges Dreieck platziert und dann dessen Grundseite entfernt, dieser Teil des ersten Schritts wird Generator genannt. Dies war schon der gesamte Grundschritt.

Abbildung 2.13: 1. Schritt der Koch-Kurve Die Iteration besteht nun darin, dass alle Streckenabschnitte der Kurve 1. in drei gleichlange Abschnitte unterteilt werden, 2. auf dem jeweils mittleren Abschnitt ein gleichseitiges Dreieck errichtet wird, und 3. die Basis dieses Dreiecks und damit der ursprüngliche mittlere Steckenabschnitt entfernt wird.

Abbildung 2.14: 2. und 3. Schritt der Koch-Kurve

23

2 Klassische Fraktale I Diese Iteration wird nun beliebig oft wiederholt, wobei die Dreiecke stets zur selben Seite der Kurve hin zu errichten sind. Das Konstruktionsprinzip ist eng verwandt mit dem für die Erzeugung der Cantor-Menge, die man erhält, wenn man das mittlere Drittel der Strecke nicht ersetzt, sondern entfernt.

Abbildung 2.15: 4. und 5. Schritt der Koch-Kurve

Eigenschaften

• Die Koch-Kurve ist nach ihrer Konstruktionsvorschrift streng selbstähnlich, d. h. es erscheinen bei beliebiger Vergrößerung immer wieder die gleichen Strukturen. • Die Kurve ist überall stetig, aber nirgends differenzierbar, d.h. sie ist an „Knickstellen“ nicht differenzierbar. Solche Knickstellen wären also die Eckpunkte der konstruierten gleichseitigen Dreiecke. Bei einer unendlichen Iteration gibt es jedoch unendlich viele dieser Knickstellen; die Kurve besteht nur noch aus Knickstellen. Demnach kann sie auch nirgends differenzierbar sein. • Da die Länge der Abschnitte ( 13 )n ist, sind die Veränderungen bald nicht mehr mit dem Auge erkennbar. • Angenommen, die gerade Linie zu Beginn hat die Länge L, so wird zuerst 31 entfernt, aber dann 23 wieder zugefügt, so dass der Längenzuwachs nach dem ersten Schritt 13 be1 trägt. Insgesamt beträgt die Länge nun 43 L. Nach dem nächsten Iterationsschritt sind 4· 12 1 entfernt und dann 8· 12 zugefügt, so dass eine Länge von 53 L entsteht. Länge der Kurve

Sei a die Länge zu Beginn. Die Länge der Strecken nach n Konstruktionsschritten ist µ ¶n 1 GL = L · 3 Die Anzahl der Stecken vervierfacht sich in jedem Konstruktionsschritt: µ µ ¶n ¶ µ µ ¶n ¶ 1 4 lim 4n · L · = lim L · =∞ n→∞ n→∞ 3 3

24

2.4 Koch-Kurve und -Schneeflocke

Flächeninhalt der Kurve

Zuerst muss der Flächeninhalt des ersten Dreiecks mit Hilfe der Höhe h ausgerechnet werden:

π sin( ) = 3 =⇒

h = = =

h L 3

π L · sin( ) 3 3 L 1 √ · · 3 3 2 1 √ L 3 6

Abbildung 2.16: Berechnung des Flächeninhalts Der Flächeninhalt des ersten Dreiecks ergibt sich dadurch mit:

A1 = =

1 1 1 √ · L· L 3 2 3 6 1 2√ L 3 36

Der Strahlensatz hilft, die Höhe des nächsten Dreiecks zu bestimmen:

Abbildung 2.17: Strahlensatz zur Höhe der Koch-Kurve

h = h0

L 2 L 9

+

L 18



h0 =

1 ·h 3

25

2 Klassische Fraktale I Allgemein gilt also für den Flächeninhalt eines Dreiecks nach der n-ten Iteration: 1 1 √ 1 1 n 1 · ( ) · L · [( ) · L 3] An = 2 3 3 3 6 1 n 1 2√ = ( ) · L 3 9 36 1 n = ( ) · A1 9 Mit jeder Iteration vervierfacht sich zudem die Anzahl der Dreiecke. Damit ergibt sich folgende Formel für den Gesamtflächeninhalt der Figur (die nach unten durch die gedachte Ausgangslinie begrenzt ist): AKoch-Kurve = A0 + 41 · A1 + 42 · A2 + . . . + 4(n−1) · An−1 1 1 1 = A0 + 41 ( )1 A0 + 42 ( )2 A0 + . . . + 4(n−1) ( )n−1 9 9 9 4 2 4 n−1 4 1 = A0 · [1 + ( ) + ( ) + . . . + ( ) ] 9 9 9 9 = A0 · 5 1 2√ = L 3 20 Die eckige Klammer ergibt eine geometrische Reihe, die gegen 95 konvergiert. Somit ergibt sich eine endliche Fläche, die von einer unendlich langen Kurve umgeben wird. 2.4.2 Schneeflocke

Die Koch-Schneeflocke ist eine Erweiterung der Kurve; jedoch wird hier nicht von einer Strecke, sondern von einem gleichseitigen Dreieck ausgegangen. Konstruktion

Ausgangsobjekt ist wie erwähnt ein gleichseitiges Dreieck. Jede Seite wird als Strecke der KochKurve betrachtet. Nun folgen die gleichen Iterationsschritte wie oben: Seite dritteln, mittleres Drittel entfernen und ein gleichseitiges Dreieck ohne Grundseite auf die Stelle setzen. Aufgrund der sehr starken Verwandtschaft mit der Koch-Kurve besitzt die Schneeflocke auch ähnliche Eigenschaften. Sie ist genau wie diese stetig, nirgends differenzierbar und von unendlicher Länge. Für den Flächeninhalt, den die Koch-Schneeflocke umschließt, ergibt sich ein anderer Wert: 1 1 √ L · L 3 + 3 · AKoch-Kurve AKoch-Schneeflocke = 2 2 1 2√ 1 √ = L 3 + L2 3 4 9 13 2 √ = L 3 36

26

2.5 Wie können wir Fraktale vergleichen?

2.5 Wie können wir Fraktale vergleichen? Wie können wir Fraktale mathematisch vergleichen, wenn wir nicht ihre Länge feststellen können? Mandelbrots Möglichkeit ist eine qualitative Messung, die vom Maßstab unabhängig ist. Er führte hierzu einen Begriff der Dimension ein. Jedoch wird zuerst der Begriff der Selbstähnlichkeit eingeführt. 2.5.1 Selbstähnlichkeit

Den Begriff der Selbstähnlichkeit kann man intuitiv leicht erklären und erkennen. Betrachtet man zum Beispiel einen Blumenkohl. Bricht man aus diesem einen Teil heraus und betrachtet das herausgerissene Teil etwas genauer, so erkennt man dieselben Strukturen wie vorher bei dem ganzen Kopf, nur etwas verkleinert. Dies führt zur einer einfachen Definition: Definition 2.1. Eine Struktur ist selbstähnlich, wenn sie sich in kleine, willkürliche Teile zerlegen lässt, von denen ein jedes eine kleinere Kopie des Ganzen ist. Bei vielen Fraktalen ist dies der Fall. Betrachtet man die Kochkurve auf der zweiten und der dritten Iterationsstufe, so sieht man leicht: Die dritte Stufe lässt sich leicht in vier kleinere Teile zerlegen, die, wenn man sie einzeln verdreifacht, genau die zweite Stufe ergeben.

Abbildung 2.18: Die Koch-Kurve als Beispiel für Selbstähnlichkeit Dies bedeutet, dass sich die Kochkurve in vier Teile mit Reduktionsfaktor

1 3

zerlegen lässt.

Nun darf man aber nicht den Schluss ziehen, wenn eine Struktur selbstähnlich ist, sei sie ein Fraktal. Betrachtet man z. B. eine Linie, so ist diese im höchsten Grade selbstähnlich, aber sicher kein Fraktal. 2.5.2 Dimension

Der Begriff Dimension war zu Beginn des Jahrhunderts noch nicht so festgefahren wie heute. Damals wurde noch viel darüber debattiert, was man unter Dimension versteht. Heutzutage dagegen denkt man sofort an die euklidische Dimension, in der eine Linie Dimension 1, eine Ebene Dimension 2 und einen Raum Dimension 3 besitzt. Dabei gibt es viele verschiedene Dimensionen: die Hausdorff-Dimension, die topologische Dimension, die Selbstähnlichkeitsdimension, die Box-Counting-Dimension und viele andere. Es ist von Fall zu Fall unterschiedlich, welchen Dimensionsbegriff man anwenden kann.

27

2 Klassische Fraktale I

Selbstähnlichkeitsdimension

Wir wollen nun die Formel für die Selbstähnlichkeitsdimension herleiten. Dazu betrachten wir eine Linie, ein Quadrat und einen Würfel. Tabelle 2.3: Anzahl der Teile eines Fraktals vs. Reduktionsfaktor Objekt

Anzahl der Teile a

Reduktionsfaktor s

Linie

3

Linie

6

Linie

173

Quadrat

9=32

Quadrat

36 = 62

Quadrat

529 = 232

Würfel

27 = 33

Würfel

216 = 63

Würfel

12167 = 233

Koch-Kurve

4

Koch-Kurve

16

Koch-Kurve

4k

1 3 1 6 1 173 1 3 1 6 1 23 1 3 1 6 1 23 1 3 1 9 1 k (3)

Es ist nicht allzu schwer, den unteren Zusammenhang zwischen Anzahl der Teile und Reduktionsfaktor zu sehen. Es ergibt sich: 1 a= D s Hierbei ist D = 1 für die Linie, D = 2 für das Quadrat und D = 3 für den Würfel. Dies stimmt mit der euklidischen Dimension überein. Löst man die Gleichung nun nach D auf, so ergibt sich für die Selbstähnlichkeitsdimension: DS =

log a log 1s

Setzt man hier nun die Werte der Koch-Kurve ein, so ergibt sich: =⇒

28

DKoch-Kurve =

log 4 ≈ 1.2619 log 3

2.5 Wie können wir Fraktale vergleichen? Für andere Fraktale ergeben sich ebenso gebrochene Dimensionen: DCantor-Menge = DSierpinski-Dreieck

=

DSierpinski-Teppich

=

log 2k ≈ 0.6309 log 3k log 3k ≈ 1.5850 log 2k log 8k ≈ 1.8928 log 3k

Box-Counting-Dimension

Die Box-Counting-Dimension findet häufige Anwendungen in den Wissenschaften, da sie sehr einfach von einem Computer berechnet werden kann. Darüber hinaus lässt sich sogar von völlig unregelmäßigen Gebilden, zum Beispiel vom Gekritzel eines kleinen Kindes, diese Dimension bestimmen. Man geht hierbei folgendermaßen vor: Man legt über das zu bestimmende Gebilde ein gleichmäßiges Gitter mit gleich großen Boxen, die die Seitenlänge s besitzen. Nun zählt man die Boxen, welche das Gebilde berühren oder ein Stück des Gebildes beinhalten. Diese Anzahl nennen wir N. Sie hängt stark von der Länge der Boxen ab, deshalb ist N = N(s). Nun verkleinert man die Seitenlänge der Boxen und zählt erneut die Boxen. Als nächstes erstellt man ein Schaubild, in dem auf der y-Achse die Werte log(N) und auf der x-Achse die Werte log(s) eingetragen werden. Erhält man für die eingetragenen Punkte eine Gerade, so besitzt dieses Gebilde eine Box-Counting-Dimension. Man definiert dann die Steigung der Geraden als Box-Counting-Dimension. So ergibt sich folgende Formel für die Box-counting-Dimension: DBox-counting =

log N(s2 ) − log N(s1 ) log s12 − log s11

Beispiel 2.1. Die Dimension der Küste von Großbritannien und Irland

Abbildung 2.19: Großbritannien – [44]

29

2 Klassische Fraktale I Wir setzen die Gesamtbreite des Gitters auf 1. So ergeben sich als Seitenlängen s 1 = 24 und s2 = 32. Zählt man nun die Boxen, welche die Küstenlinie beinhalten oder berühren, so ergibt sich: N(s1 ) = 194

und

N(s2 ) = 283

Damit ergibt sich als Dimension: DG =

log 283 − log 194 2.45 − 2.29 ≈ ≈ 1.31 log 32 − log 24 1.51 − 1.38

2.6 Hilberts raumfüllende Kurve

Abbildung 2.20: David Hilbert – [23] David Hilbert wurde in Königsberg geboren. Sein Vater und sein Großvater waren Richter. Er promovierte 1885 auf dem Gebiet der Invariantentheorie. Zuerst war er Professor in Königsberg, ging dann aber nach Göttingen, wo er bis zu seiner Emeritierung im Jahre 1930 blieb. Auf dem Internationalen Mathematikerkongreß 1900 in Paris stellte Hilbert seine berühmte Liste von 23 Problemen vor, denen sich seiner Meinung nach die Mathematiker verstärkt zuwenden sollten. Einige dieser Probleme sind noch immer ungelöst. 2.6.1 Konstruktion

Wir gehen von einem Quadrat aus, das gefüllt werden soll. Es wird in vier Teile geteilt, wobei die Mittelpunkte der entstandenen Quadrate durch eine Kurve aus drei Teilstücken verbunden ist. Dies ist die erste Stufe der Hilbert-Kurve. In nächsten Schritt ersetzt man dieses „eckige Hufeisen“ durch vier ähnliche Figuren, die aber nur halb so groß sind. Zwei von ihnen werden gedreht. Um die zweite Stufe der Hilbert-Kurve zu vervollständigen, werden die Teile durch drei weitere Streckenstücke verbunden.

30

2.6 Hilberts raumfüllende Kurve

Abbildung 2.21: 1. und 2. Schritt der Hilbert-Kurve

Abbildung 2.22: 3. und 4. Schritt der Hilbert-Kurve

Abbildung 2.23: 6. und 10. Schritt der Hilbert-Kurve

31

2 Klassische Fraktale I

2.7 Peano-Kurve

Abbildung 2.24: Guiseppe Peano (1858–1932) – [42] Guiseppe Peano wuchs in einen kleinen Dorf in Italien auf und musste täglich fünf Kilometer zur nächsten Schule laufen. Sein Onkel brachte ihn 1870 nach Turin, wo er eine gute Schule besuchte um dann 1876 zur Turiner Universität zu gehen. 1880 bekam er seinen Doktorgrad verleihen. 1889 veröffentlichte er seine berühmten Axiome. Die raumfüllende Kurve erfand er 1890, jedoch beschrieb Hilbert 1891 ähnliche raumfüllende Kurven. 2.7.1 Konstruktion

Ausgang ist wieder ein Quadrat. Nun wird die Winkelhalbierenden eingefügt und der nullte Konstruktionschritt ist fertig. Im nächsten Schritt wird das Ausgangsquadrat in neun kleinere unterteilt. Die Quadrate werden durchnummeriert und von der Geraden in einer Art „Schlangenlinie“ von links unten und nach rechts oben durchzogen. Diese Schlangenlinie durchquert jedes der kleinen Quadrate mit möglichst wenigen Schritten, so dass die Gerade genau einmal durch jedes Quadrat geht.

Abbildung 2.25: Verdeutlichung der Konstruktion der Peano-Kurve – [44]

32

2.8 MATLAB-Implementierung Im ersten Schritt wurden neun Quadrate verwendet. Im nächsten Schritt werden schon 9 2 Felder benötigt.

Abbildung 2.26: 1. und 2. Schritt der Peano-Kurve – [44] Um den n-ten Schritt zu definieren, wird das Quadrat in 9 n gleiche Teile zerlegt. Die Durchgehensweise ist dieselbe wie zuvor. Auf der Makroebene wird wieder in der gleichen Schlangenlinie vorgegangen. Auf der Mikroebene wird dann jeweils wieder dieses Muster angewandt. Das Vorgehen wird in Abbildung 2.28 noch einmal deutlich gemacht.

Abbildung 2.27: 3. und 4. Schritt der Peano-Kurve – [44]

2.8 MATLAB-Implementierung 2.8.1 Koch-Kurve

Diese Kurve ist vorhanden unter [29]. 2.8.2 Sierpinsk-Dreieck

Diese Kurve wurde bereits im Vortrag der Vorwoche vorgestellt. 2.8.3 Cantor-Menge

33

2 Klassische Fraktale I

Abbildung 2.28: Die einzelnen Peano-Schritte – [44] function [x , y ] = cantor ( n ) % [ X , Y ] = CANTOR (N) c a l c u l a t e s , r e t u r n s and draws t h e e d g e p o i n t s % o f t h e n−t h i t e r a t i o n o f t h e C a n t o r s e t . % end o f r e c u r s i o n i f n 0 gibt, so dass gilt: d(a, x) < R ∀x ∈ X; • absolut beschränkt, falls ∀ε > 0 ∃ {y1 , y2 , . . . ., yn } ⊂ S : ∀x ∈ X :

d(x, y) < ε .

Abbildung 3.4: Spiraldrehung – [16] Theorem 3.1 (Heine-Borel). A ⊂ Rn ist kompakt genau dann, wenn A beschränkt und abgeschlossen ist.

42

3.1 Der Raum der Fraktale Theorem 3.2. Sei (X, d) ein metrischer Raum und sei C ⊂ X kompakt. Sei {C i : i ∈ I} so, dass c ∈C



∃ i ∈ I : (c ∈ Ci ).

Dann gibt es eine endliche Teilmenge {C1 ,C2 , . . . .,CN }, so dass C⊂

N [

Ci ,

i=1

d. h., es gibt eine endliche Teilüberdeckung von C. 3.1.2 H (X ), der Raum der Fraktale

Abbildung 3.5: Blattstrukturen – [16] Definition 3.9 (H (X)). Sei (X, d) ein vollständiger metrischer Raum. Dann definiere H (X) als die Menge aller kompakten Teilmengen von (X, d). Definition 3.10 (Abstand). Sei (X, d) ein vollständiger metrischer Raum. Sei weiterhin x ∈ X und A, B ∈ H (X). Dann definiere d(x, B) = min {d(x, y) : y ∈ B} als den Abstand von der Menge B zum Punkt x, und d(A, B) = max {d(x, B) : x ∈ A} als den Abstand zwischen den Mengen A und B. • Die Definitionen sind wohldefiniert, da A und B kompakt sind sowie d stetig ist. • Für ein geeignetes y ∈ B gilt d(x, B) = d(x, y).

Für geeignete x ∈ A, y ∈ B gilt d(A, B) = d(x, y).

43

3 Der Raum der Fraktale und die fraktale Dimension Eigenschaften: Seien A, B,C ∈ H (X), dann gilt: • A⊂B



d(A, B) = 0) und (d(x, B) ≤ d(x, A)

• Im allgemeinen ist

d(A, B) 6= d(B, A).

• A 6= B



(d(A, B) 6= 0) oder (d(B, A) 6= 0)

• B ⊂C



d(A,C) ≤ d(A, B)

• d(A ∪ B,C) = d(A,C) ∨ d(A, B),

wobei ∨ für das Maximum der beiden Werte steht.

Abbildung 3.6: Ein endloses geflochtenes Band – [16] Definition 3.11 (Hausdorff-Abstand). Sei (X, d) ein vollständiger metrischer Raum. Dann ist der Hausdorff-Abstand zwischen zwei Punkten A, B ∈ H (X) definiert als h(A, B) = d(A, B) ∨ d(B, A),

wobei

A ∨ B := max {A, B} .

Theorem 3.3. Der Hausdorff-Abstand definiert eine Metrik auf H (X). Beweis: Seien A, B,C ∈ H (X). 1. h(A, A) = d(A, A) ∨ d(A, A) = d(A, A) = max {d(x, A) : x ∈ A} = 0 2. h(A, B) = d(A, B) ∨ d(B, A) = d(B, A) ∨ d(A, B) = h(B, A) 3. Für A 6= B folgt 0 < h(A, B) < ∞ direkt aus der Definition von h und der Kompaktheit der Mengen. 4. Sei o.B.d.A. h(A, B) = d(A, B), also ist zu zeigen: d(A, B) ≤ d(A,C) + d(C, B) ∀a ∈ A : d(a, B) = min {d(a, b) : b ∈ B}

≤ min {d(a, c) + d(c, b) : b ∈ B}

= d(a, c) + min {d(c, b) : b ∈ B}

44

∀c ∈ C

∀c ∈ C

3.1 Der Raum der Fraktale Also gilt für alle a aus A: d(a, B) ≤ min {d(a, c) : c ∈ C} + max {min {d(c, b) : b ∈ B} : c ∈ C} = d(a,C) + d(C, B)



d(A, B) ≤ d(A,C) + d(C, B)

¤

Definition 3.12. Sei S ⊂ X und Γ ≥ 0. Dann definiere S + Γ = {y ∈ X | ∃ x ∈ X : d(x, y) ≤ Γ}.

Abbildung 3.7: Juliamenge – [16] Theorem 3.4. Seien A, B ∈ H (X) und sei ε > 0. Dann gilt: h(A, B) ≤ ε

⇐⇒

(A ⊂ (B + ε )) ∧ (B ⊂ (A + ε )).

Beweis: Sei o.B.d.A. h(A, B) = d(A, B). Dann zeigen wir zuerst den Fall d(A, B) ≤ ε

⇐⇒

A ⊂ (B + ε ),

d(A, B) ≤ ε

⇐⇒

B ⊂ (A + ε )

der Fall geht analog. (⇒) Sei d(A, B) ≤ ε . ⇒

max {d(a, B) : a ∈ A} ≤ ε



∀a ∈ A a ∈ (B + ε )

⇒ ⇒

∀a ∈ A d(a, B) ≤ ε A ⊂ (B + ε )

45

3 Der Raum der Fraktale und die fraktale Dimension (⇐) Sei nun A ⊂ (B + ε ). ⇒

∀a ∈ A a ∈ (B + ε )



∀a ∈ A



⇒ ⇒

∃ b ∈ B ∀a ∈ A

d(a, b) ≤ ε

min{d(a, b) : b ∈ B} ≤ ε

∀a ∈ A d(a, B) ≤ ε d(A, B) ≤ ε

¤

Bemerkungen: • Sei {An }n∈N eine Cauchy-Folge in (H (X), h): ⇐⇒

∀ε > 0 ∃ N ∈ N ∀n, m ≥ N :

h(An , Am ) < ε

An ⊂ Am + ε und Am ⊂ An + ε .

• Wir wollen die Cauchy-Folge {An }n∈N in (H (X), h) auf eine Cauchy-Folge in (X, d) zurückführen, und zwar so, dass (xn )n∈N mit xn ∈ An eine Cauchy-Folge in (X, d) ist.

Abbildung 3.8: Rote Verwirbelungen – [16] Theorem 3.5 (Existenzlemma). Sei (X, d) ein metrischer Raum und (A n )n∈N eine CauchyFolge in (H (X), h). Sei {xn j : 0 < n1 < n2 < n3 < . . .} eine Folge natürlicher Zahlen. Angenommen, (xn j ) j∈N ist eine Cauchy-Folge in (X, d) mit x n j ∈ An j . Dann gibt es eine CauchyFolge (yn )n∈N in (X, d) mit yn ∈ An , für die gilt: xn j = y n j .

46

3.1 Der Raum der Fraktale

Abbildung 3.9: Fraktale Spielzeuge – [2] © ª Beweis: Wir konstruieren die gesuchte Folge: Für alle n ∈ 1, 2, 3, . . . , n j wähle ein yn ∈ An so, dass yn ∈ {x ∈ An : d(x, xn1 ) = d(x, An )}, d.h yn ist der Punkt aus An , der den kleinsten Abstand zu xn1 hat.ª © Genauso: Zu jedem j ∈ N\{1} und jedem n ∈ n j + 1, . . . , n j+1 wähle ein yn ∈ {x ∈ An : d(x, xn j ) = d(x, An )}.

Jetzt zeigen wir, dass (yn )n∈N eine Cauchy-Folge ist. Klar nach Konstruktion: yn j = xn j und yn ∈ An . Sei ε > 0. Dann gibt es folgende Zahlen: N ε3 = N1 : ∀nk , n j ≥ N1 e ε = N2 : ∀m, n ≥ N2 N 3

ε 3 ε d(Am , An ) ≤ . 3 d(xnk , xn j ) ≤

Sei N = N1 ∨ N2 , und damit gilt für alle m, n ≥ N: d(ym , yn ) ≤ d(ym , xn j ) + d(xn j , xnk ) + d(xn j , yn ). Wegen h(Am , An j ) ≤

ε 3

gibt es ein ym ∈ Am ∩ ({xn j } + ε ), so dass

ε d(ym , xn j ) ≤ . 3

Genauso

ε d(xnk , yn ) ≤ . 3 Damit ist d(ym , yn ) ≤ ε und (yn )n∈N ist eine Cauchy-Folge.

¤

47

3 Der Raum der Fraktale und die fraktale Dimension

Abbildung 3.10: Grün-blaue Spirale – [16] Theorem 3.6. Sei (X, d) ein vollständiger metrischer Raum. Dann ist (H (X), h) auch ein vollständiger metrischer Raum, und es gilt für A = lim An n→∞

wobei (An )n∈N eine Cauchy-Folge in H (X) ist, dass A = {x ∈ X : es gibt eine Cauchy-Folge (x n ∈ An )n∈N , so dass lim xn = x}. n→∞

Beweis: Seien A und (An )n∈N wie oben definiert.Wir beweisen den Satz in fünf Schritten: a) A 6= 0/ b) A ist abgeschlossen und vollständig, falls X vollständig ist. c) Für jedes ε > 0 gibt es ein N, so dass für n ≥ N gilt: A ⊂ A n + ε . d) A ist total beschränkt und mit b) kompakt. e) limn→∞ An = A

a) A ist nicht leer: Seien Ni ∈ N mit N1 < N2 < N3 < . . . < Nn < . . . so, dass für ε = ⇒

∀ m, n ≥ Ni : h(An , Am )
0 ∃ Nε ∈ N ∀ n ≥ Nε :

d(an , a) < ε

49

3 Der Raum der Fraktale und die fraktale Dimension 1 1 gibt es Nε = Ni , so dass d(ai , a) < . i i Weiterhin gibt es eine Folge mi ∈ N mit ⇒

Für ε =

d(xNi ,mi , aNi )
0 gibt es ein N, so dass für n ≥ N : A ⊂ A n + ε : Sei ε > 0, dann gibt es ein Nε ∈ N so, dass ∀ n, m ≥ Nε :

h(An , Am ) < ε .

Für n ≥ N und m ≥ n gilt: Am ⊂ An + ε .

Sei a ∈ A, dann gibt es eine Folge (an )n∈N mit an ∈ An , so dass limn→∞ an = a. Es gilt also für ein geeignetes Nε und ∀ m ≥ Nε : d(am , a) < ε . Wegen Am ⊂ An + ε gilt am ∈ An + ε . An ist kompakt, also ist An + ε abgeschlossen.

50

3.1 Der Raum der Fraktale Da am ∈ An + ε für m ≥ N gilt, liegt auch a in An + ε . Damit ist A ⊂ An + ε für n groß genug. d) A ist absolut beschränkt: Angenommen, A ist nicht absolut beschränkt. Dann gibt es eine Folge (x i )i∈N mit d(xi , x j ) ≥ ε

für i 6= j.

Laut c) gibt es ein n ∈ N groß genug, so dass A ⊂ A n + ε3 . Für jedes xi gibt es ein yi , so dass d(xi , yi ) ≤ ε3 .

Da An kompakt ist, gibt es eine konvergente Teilfolge (y ni )i∈N , d.h. wir finden ein yni und yn j , so dass ε d(yni , yn j ) < . 3 Nun gilt aber d(xni , xn j ) ≤ d(xni , yni ) + d(yni , yn j ) + d(yn j , xn j )
0 ein N ∈ N gibt, so dass für n ≥ N gilt: A n ⊂ A + ε . Sei also ε > 0 und Nε so, dass ∀ n, m ≥ Nε

h(An , Am )
0, dass NA,ε = 1, und somit folgt: ln(NA,ε ) D(A) = lim = 0. ε →0 ln( 1 ) ε b) (X, d) = (R, eukl.) und A = [0, 1]. Es gilt für alle ε > 0, dass NA,ε = [ ε1 ], also gilt: ln(NA,ε ) = 1. ε →0 ln( 1 ) ε

D(A) = lim

54

3.2 Fraktale Dimension Theorem 3.7. Sei (X, d) ein metrischer Raum und A ∈ H (X). Sei ε n = c · rn für 0 < r < 1 und für c > 0, n ∈ N. Falls der Grenzwert ln(NA,εn ) n→∞ ln( 1 ) εn

D = lim existiert, dann gilt D = D(A).

Theorem 3.8 (Box-Counting). Sei (X, d) ein metrischer Raum, A ∈ H (X) und sei die Überdeckung von A gegeben durch abgeschlossene Würfel der Seitenlänge 21n . Sei Nn (A) die Anzahl dieser Würfel. Falls der Grenzwert ln(Nn (A)) n→∞ ln(2n )

D = lim existiert, so gilt D = D(A).

Beweisidee: Wir benutzen das sogenannte „Sandwich-Lemma“. Sei E = {εn : n ∈ N} und f (ε ) = max{εn ∈ E : εn ≤ ε } für ⇒

f (ε )



ε





NA, f (ε )



NA,ε





ln(NA, f (ε ) ) ln( f (rε ) )



ln(NA,ε ) ln( ε1 )



ε ≤ r < 1. f (ε ) r

NA, f (ε ) r ln(NA, f (ε ) ) r

ln( f (1ε ) )

wegen der Monotonie des ln. Betrachte nun: ln(NA, f (ε ) ) ε →0 ln( r ) f (ε ) ln(NA, f (ε ) ) r lim ε →0 ln( 1 ) f (ε ) lim

= =

ln(NA,εn ) n→∞ ln( r ) εn lim

lim

n→∞

Mit dem Sandwich-Lemma gilt nun:

ln(NA,εn−1 ) ln( r·ε1n−1 )

= =

ln(NA,εn ) n→∞ ln( 1 ) εn lim

lim

n→∞

ln(NA,εn−1 ) 1 ln( εn−1 )

= (#) = (#)

Falls ln(NA,εn ) n→∞ ln( 1 ) εn lim

existiert, so ist dies die fraktale Dimension.

¤

55

3 Der Raum der Fraktale und die fraktale Dimension Beweisidee: Andere Möglichkeit: Wir führen den Beweis auf Satz 3.7 zurück. Der Beweis basiert auf folgender Aussage: Für m = 1, 2, 3, . . . gilt 2−m Nn−1 ≤ NA, 1n ≤ Nk(n)

für alle n = 1, 2, 3, . . .

2

wobei k(n) die kleinste natürliche Zahl ist, welche 1 k ≥ n − 1 + log2 m 2 erfüllt. Nun folgt ln(Nk(n) ) lim n→∞ ln(2n )

= =

lim

n→∞

lim

n→∞

Ã

ln(2k(n) ) ln(Nk(n) ) · ln(2n ) ln(2k(n) )

!

ln(Nk(n) ) ln(2k(n) )

= D da

Betrachte

k(n) →1 n

für

n → ∞.

ln(Nn−1 ) ln(2−m Nn−1 ) = lim = D. n→∞ ln(2n−1 ) n→∞ ln(2n ) lim

Wende jetzt Satz 3.7 mit r =

1 2

¤

an.

Abbildung 3.16: Fraktale mit gebrochener Dimension - [2] Beobachtung: Sind zwei Fraktale A, B äquivalent, so gilt D(A) = D(B). („Äquivalent“ bedeutet: Es gibt eine bijektive Abbildung, welche das eine Fraktal in das andere überführt.) Die Fraktale oben sind nicht äquivalent, haben aber die gleiche Dimension D = Beispiel 3.2 b) ).

56

ln(3) ln(2)

(siehe

3.2 Fraktale Dimension Beispiel 3.2.

a) Sei 2 = {(x, y) ∈ R2 : 0 ≤ x1 ≤ 1, 0 ≤ x2 ≤ 1} N1 (2) = 4,

Man sieht leicht:

N2 (2) = 16,

Nn (2) = 4n





N3 (2) = 32,

...

ln(Nn (2)) = 2. n→∞ ln(2n )

D(2) = lim

b) Betrachte das Sierpinski-Dreieck. Es gilt:

N1 (4) = 3, ⇒

N2 (4) = 9,

Nn (4) = 3n



N3 (4) = 27,

...

ln(Nn (4)) ln(3) = . n→∞ ln(2n ) ln(2)

D(4) = lim

3.2.3 Theoretische Berechnung der fraktalen Dimension

Definition 3.15 (fraktale Dimension). Sei (X, d) ein Banachraum, A ∈ H (X) und N(ε ) sei wie üblich definiert. Falls ln(N(ε )) D = lim sup ln( ε1 ) ε →0 existiert, dann heißt D die fraktale Dimension von A. Dies ist eine Verallgemeinerung der vorherigen Definition.

Abbildung 3.17: Schwarze Magie – [16] Theorem 3.9. Sei (X, d) = (Rm , euklidisch.). Dann existiert die fraktale Dimension für alle A ∈ H (Rm ). Im Allgemeinen gilt: 0 ≤ D(A) ≤ m. Beweisidee: Für m = 2: O.B.d.A. sei A ⊂ 2; somit gilt NA,ε ≤ N2,ε für alle ε > 0. Also folgt für 0 < ε < 1, dass



lim sup ε →0

ln(NA,ε ) ln( ε1 ) ln(N2,ε ) ≤ lim sup ln( ε1 ) ε →0



0 ln(NA,ε ) ln( ε1 )



ln(N2,ε ) ln( ε1 )

=

2. ¤

57

3 Der Raum der Fraktale und die fraktale Dimension Definition 3.16 (IFS). Ein IFS („Iterated Function System“) besteht aus einem vollständigen metrischen Raum (X, d), einer endlichen Menge von Kontraktionen w 1 , . . . , wN und den dazugehörigen Kontraktionskonstanten s 1 , . . . , sN . Notation: {X; w1 , . . . , wN }. Theorem 3.10. Sei {Rm ; w1 , w2 , . . . , wN } ein hyperbolisches IFS und sei A ∈ H (R m ). Seien sn die Lipschitzkonstanten der wn für jedes n ∈ {1, . . . , N}. Dann ist die fraktale Dimension D(A) gegeben durch N

∑ |sn |D(A) = 1,

D(A) ∈ [0, m].

n=1

a) Betrachte das Sierpinski-Dreieck im (R 2 , d) mit sn = 0.5.

Beispiel 3.3.

3

⇒ ⇒

∑ (0.5)D = 1

n=1

D=

ln( 31 ) ln( 12 )

=

ln(3) ln(2)

b) Betrachte nun die Cantor-Menge mit dem folgenden IFS: 1 1 2 {[0, 1]; w1 (x) = x, w2 (x) = x + } 3 3 3 1 ⇒ s1 = s2 = 3 ln(2) ⇒ D= ln(3) 3.2.4 Implementierung des „Box-Counting“-Satzes

Bei der Implementierung ist zu beachten, dass die Fraktale durch Koordinatenmatrizen beschrieben werden müssen, da man so am leichtesten die Koordinaten der Boxen berechnen kann - zum Beispiel eine 3 × 2-Matrix zur Beschreibung eines Dreiecks A: · ¸ 4 3, 5 4, 5 A= 2 1 1 Box-Counting

f u n c t i o n f r a c _ d i m = b o x c o u n t ( coordmat , maxstep , p l o t f l a g ) % % % % %

58

f r a c _ d i m = b o x c o u n t ( coordmat , m a x s t e p , p l o t f l a g ) c a l c u l a t e s t h e f r a c t a l d i m e n s i o n o f a s e t i n t h e 2D p l a n e u s i n g t h e box c o u n t i n g method . INPUT :

coordmat

coordinates of the set points

3.2 Fraktale Dimension

% maxstep % plotflag % % % OUTPUT: f r a c _ d i m

maximum s t e p number f o r t h e b o x c o u n t i n g method = 0 do n o t p l o t a n y t h i n g = 1 p l o t some s t u f f the estimated f r a c t a l dimension

% AUTHOR: Bernd F l e m i s c h , IANS , U n i v e r s i t y o f S t u t t g a r t % VERSION: 1 . 0 , 2 1 . 1 0 . 2 0 0 4 % EMAIL : f l e m i s c h @ i a n s . u n i −s t u t t g a r t . de i f nargin < 2 e r r o r ( [ ’ At l e a s t two i n p u t a r g u m e n t s a r e r e q u i r e d . P l e a s e ’ . . . ’ type ’ ’ help boxcount ’ ’ f o r usage i n f o r m a t i o n . ’ ] ) ; end i f nargin < 3 pl otf la g = 0; end g l o b _ l l x = min ( c o o r d m a t ( : , 1 ) ) ; % l o w e r l e f t c o r n e r , x−c o o r d i n a t e g l o b _ l l y = min ( c o o r d m a t ( : , 2 ) ) ; % l o w e r l e f t c o r n e r , y−c o o r d i n a t e g l o b _ u r x = max ( c o o r d m a t ( : , 1 ) ) ; % u p p e r r i g h t c o r n e r , x−c o o r d i n a t e g l o b _ u r y = max ( c o o r d m a t ( : , 2 ) ) ; % u p p e r r i g h t c o r n e r , y−c o o r d i n a t e g l o b _ w i d t h = g l o b _ u r x − g l o b _ l l x ; % w i d t h o f t h e i n i t i a l box g l o b _ h e i g h t = g l o b _ u r y − g l o b _ l l y ; % h e i g h t o f t h e i n i t i a l box x = z e r o s ( m a x s t e p +1 , 1 ) ; % d a t a f o r t h e l e a s t s q u a r e s method y = z e r o s ( m a x s t e p +1 , 1 ) ; % d a t a f o r t h e l e a s t s q u a r e s method for s t e p = 0 : maxstep % loop over t h e s u b d i v i s i o n s t e p s n _ b o x e s = 0 ; % number o f b o x e s c o n t a i n i n g p o i n t s o f t h e s e t n _ s d s = 2^ s t e p ; % number o f s u b d i v i s i o n s i n one d i r e c t i o n l o c _ w i d t h = g l o b _ w i d t h / n _ s d s ; % w i d t h o f one box l o c _ h e i g h t = g l o b _ h e i g h t / n _ s d s ; % h e i g h t o f one box f o r sd_x = 1 : n _ s d s % l o o p o v e r l o c a l b o x e s i n x−d i r e c t i o n l o c _ l l x = g l o b _ l l x + ( sd_x − 1 ) ∗ l o c _ w i d t h ; % l l c o r n e r , x−c o o r . l o c _ u r x = g l o b _ l l x + sd_x ∗ l o c _ w i d t h ; % u r c o r n e r , x−c o o r . % detect the set points inside the s t r i p [ loc_llx , loc_urx ]: f o u n d _ i d x = f i n d ( ( c o o r d m a t ( : , 1 ) >= l o c _ l l x ) & . . . ( coordmat ( : , 1 ) < l o c _ u r x ) ) ; % t h e i n d i c e s f o u n d _ y = c o o r d m a t ( f o u n d _ i d x , 2 ) ; % t h e y−c o o r d i n a t e s f o r sd_y = 1 : n _ s d s % l o o p o v e r l o c a l b o x e s i n y−d i r e c t i o n l o c _ l l y = g l o b _ l l y + ( sd_y − 1 ) ∗ l o c _ h e i g h t ; % l l c o r n e r , y l o c _ u r y = g l o b _ l l y + sd_y ∗ l o c _ h e i g h t ; % u r c o r n e r , y−c o o r . % d e t e c t t h e s e t p o i n t s i n s i d e t h e l o c a l box : i n s i d e _ i d x = f i n d ( ( f o u n d _ y >= l o c _ l l y ) & ( f o u n d _ y < l o c _ u r y ) ) ; i f ( length ( i n s i d e _ i d x ) > 0) n _ b o x e s = n _ b o x e s + 1 ; % l o c a l box c o n t a i n s p o i n t s o f t h e s e t end end % l o o p o v e r l o c a l b o x e s i n y−d i r e c t i o n

59

3 Der Raum der Fraktale und die fraktale Dimension

end % l o o p o v e r l o c a l b o x e s i n x−d i r e c t i o n x ( s t e p +1) = s t e p ∗ l o g ( 2 ) ; y ( s t e p +1) = l o g ( n _ b o x e s ) ; end % l o o p o v e r t h e s u b d i v i s i o n s t e p s % To e s t i m a t e t h e f r a c t a l d i m e n s i o n , t h e s l o p e o f t h e l i n e % " c l o s e s t " ( in the l e a s t square sense ) % to the points (x , y ) is calculated : A = z e r o s ( m a x s t e p +1 , 2 ) ; % s e t up t h e m a t r i x A ( : , 1 ) = x ; % t h e f i r s t column A ( : , 2 ) = o n e s ( m a x s t e p + 1 , 1 ) ; % t h e s e c o n d column [Q, R ] = qr (A ) ; % compute t h e QR−d e c o m p o s i t i o n c = Q’ ∗ y ; % s o l u t i o n s t e p 1 param = R \ c ; % s o l u t i o n s t e p 2 f r a c _ d i m = param ( 1 ) % t h e e s t i m a t e d f r a c t a l d i m e n s i o n % plotting stuff if ( plotflag ) % figure ; p l o t ( x , y , ’ o ’ , [ x ( 1 ) , x ( end ) ] , [ param ( 1 ) ∗ x ( 1 ) + . . . param ( 2 ) , param ( 1 ) ∗ x ( end ) + param ( 2 ) ] , ’− ’ ) ; s t r i n g = s p r i n t f ( ’ E s t i m a t e d f r a c t a l d i m e n s i o n = %f ’ , f r a c _ d i m ) ; title ( string ); x l a b e l ( ’ n∗ l n ( 2 ) ’ ) ; y l a b e l ( ’ l n ( n \ _boxes ) ’ ) ; end

Abbildung 3.18: Ergebnisse von    für das Sierpinski-Dreieck Cantor-Funktion

Da die Cantormenge rekursiv bestimmt wird, kann die Koordinatenmatrix erst am Schluss berechnet werden. Die Rekursion lautet: function cantorfun ( a , b , le vel )

60

3.2 Fraktale Dimension

global coordvec ; i f ( l e v e l == 1 ) c o o r d v e c ( end + 1 : end +4) = [ a , ( 2 ∗ a + b ) / 3 , ( a + 2∗b ) / 3 , b ] ; else c a n t o r f u n ( a , (2∗ a + b ) / 3 , l e v e l −1); c a n t o r f u n ( ( a + 2∗b ) / 3 , b , l e v e l − 1 ) ; end

Abbildung 3.19: Die Cantor-Funktion nach 4 bzw. 8 Iterationen

Abbildung 3.20: Die Ergebnisse von     für die Cantor-Funktion

61

3 Der Raum der Fraktale und die fraktale Dimension 3.2.5 Die Hausdorff-Besicovitch-Dimension

• Die Hausdorff-Dimension wurde von Felix Hausdorff (1868-1942) eingeführt.

Abbildung 3.21: Felix Hausdorff – [60]

• Er gilt als Mitbegründer der modernen Topologie und lieferte wesentliche Beiträge zur Mengenlehre und Maßtheorie. • Die Hausdorff-Dimension ist viel komplexer und feiner als der am Anfang eingeführte Dimensionsbegriff; z. B. kann man Fraktale vergleichen, welche die gleiche fraktale Dimension haben. • Ab jetzt betrachten wir nur noch Fraktale im (R m , d), wobei d die euklidische Metrik ist.

Abbildung 3.22: Farbenzauber – [16]

62

3.2 Fraktale Dimension Definition 3.17. Sei A ⊂ Rm beschränkt. Wir definieren diam(A) := sup{d(x, y) : x, y ∈ A}. Definition 3.18. Sei A wie oben, 0 < ε < ∞ und 0 ≤ p < ∞. Sei A die Menge der Folgen von Teilmengen (A i )i∈N , für welche gilt A=

∞ [

Ai .

i=1

Dann definieren wir ∞

M (A, p, ε ) := inf { ∑ (diam(Ai )) p : {Ai } ∈ A und diam(Ai ) < ε } i∈N i=1

und M (A, p) := sup{M (A, p, ε )}, ε >0

wobei diam(Ai )0 = 0, falls Ai = 0. / Definition 3.19 (Hausdorff-Maß). Sei m ∈ N und A ⊂ R m beschränkt. Für jedes 0 ≤ p ≤ ∞ ist die Zahl M (A, p) das Hausdorff p-dimensionale Maß von A. Beispiel 3.4. Sei A eine Menge von 7 Punkten im (R 2 , d). 1. Zeige: M (A, 0) = 7. M (A, 0) = sup{M (A, 0, ε )} ε >0 ( ( 7

= sup inf ε >0

i∈N

∑ (diam(Ai ))

0

i=1

: {Ai } ∈ A und diam(Ai ) < ε

))

: {Ai } ∈ A und diam(Ai ) < ε

))

7

=

∑1

i=1

= 7 2. Zeige: M (A, p) = 0 für p > 0. M (A, p) = sup{M (A, p, ε )} ε >0 ( ( 7

= sup inf ε >0

i∈N

∑ (diam(Ai ))

i=1

p

= 0

63

3 Der Raum der Fraktale und die fraktale Dimension Theorem 3.11. Sei A eine beschränkte Teilmenge von (R m , d). Sei M (A, p) wie oben definiert mit 0 ≤ p ≤ ∞. Dann gibt es genau eine relle Zahl D H ∈ [0, m], so dass ½ ∞ falls p < DH und 0 ≤ p ≤ ∞ M (A, p) = 0 falls p > DH und 0 ≤ p ≤ ∞ Definition 3.20. Sei A eine beschränkte Teilmenge von (R m , d) und sei DH wie oben definiert. Dann heißt DH die Hausdorff-Besicovitch-Dimension der Menge A. Bemerkung: Da die Hausdorff-Besicovitch-Dimension feiner ist als die fraktale Dimension, gilt: DH (A) ≤ D(A) ≤ m.

Abbildung 3.23: fraktales Feuerwerk – [16]

64

4 Klassische Fraktale II von Jochen Schurr und Sylvia Frey

4.1 Pascalsches Dreieck Das Pascalsche Dreieck wurde nicht von seinem Namensgeber Blaise Pascal (1623-1662) erfunden, sondern eine chinesische Version existierte bereits im Jahr 1303. Pascal jedoch verwendete das Zahlendreieck, um Gewinnwahrscheinlichkeiten bei Glückspielen zu berechnen. Seine Untersuchungen stellten später die Grundlage der Wahrscheinlichkeitstheorie dar. 4.1.1 Prinzip des Pascalschen Dreiecks

Das Pascalsche Dreieck gibt die Koeffizienten a 0 bis an an, die sich ergeben, wenn man (x + y)n = a0 x0 yn + a1 x1 yn−1 + . . . + an xn y0 berechnet. Die Koeffizienten können aus der n-ten Zeile übernommen werden. Die Nummerierung der Zeilen beginnt bei 0. 1 1 1 1

1

1 2

3

1

4

5

10

1 3

6

1 4

1

10

5

1

Abbildung 4.1: Das Pascalsche Dreieck - Koeffizienten für (x + y) n Die Einträge im Pascalschen Dreieck erhält man, indem man die Summe der beiden darüber stehenden Zahlen bildet. 4.1.2 Mathematischer Hintergrund

Theorem 4.1. Es gilt folgende Gleichheit: ¶ ¶ µ µ ¶ µ n+1 n n = + j j−1 j

(4.1)

65

4 Klassische Fraktale II Beweis:

µ ¶ µ ¶ n n + = j j−1

n! n! + j!(n − j)! ( j − 1)!(n − j + 1)! n!(n − j + 1) + n! j j!(n − j + 1)! n!(n + 1) j!(n − j + 1)! (n + 1)! j!(n − j + 1)! ¶ µ n+1 j

= = = =

¤ Theorem 4.2 (Binomischer Lehrsatz). µ ¶ n k n−k (x + y) = ∑ xy k=0 k n

n

Beweis: per Induktion: Induktionsanfang: n = 1.

Zu zeigen: µ ¶ 1 ∑ k xk y1−k k=0 1

(x + y)1 =

µ ¶ 1! 1! 1 ∑ k xk y1−k = 0!(1 − 0)! x0 y1−0 + 1!(1 − 1)! x1 y1−1 = x + y k=0 1

Induktionsvoraussetzung:

µ ¶ n k n−k (x + y) = ∑ xy k=0 k n

n

Induktionsschritt:

Zu zeigen: (x + y)

n+1

=

n+1 µ



k=0

¶ n + 1 k n+1−k xy k

(x + y)n+1 = (x + y)n (x + y) n µ ¶ n k n−k x y (x + y) (Induktionsvoraussetzung) = ∑ k=0 k n µ ¶ n µ ¶ n k+1 n−k n k n−k+1 = ∑ x y +∑ xy (Distributivgesetz) k=0 k k=0 k ¶ n µ ¶ n+1 µ n k n−k+1 n j n− j+1 xy (Indexverschiebung) xy +∑ = ∑ j=1 j − 1 k=0 k

66

4.1 Pascalsches Dreieck µ ¶ µ ¶ ¶ n n+1 n n+1 n i j n− j+1 = ∑ y x + xy + + 0 n j−1 j j=1 ¶ ¶ µ ¶ µ n µ n + 1 n+1 n + 1 n+1 n + 1 j n− j+1 y = ∑ x + xy + 0 n+1 j j=1 ¶ n+1 µ n + 1 j n+1− j xy (Zusammenfassen) = ∑ j j=0 n

hµn¶

µ

(Formel 4.1)

Induktionsschluss: Der binomische Lehrsatz gilt für alle natürlichen Zahlen.

¤

4.1.3 Warum erhält man die richtigen Koeffizienten? ¡¢ Die Koeffizienten sind nach dem binomischen Lehrsatz mit nk zu berechnen. Man findet diese Koeffizienten im Pascalschen Dreieck (Abbildung 4.1) folgendermaßen: n gibt die Zeile an und k die schräge Spalte. Hierbei ist zu beachten, dass die Nummerierung der Zeilen und Spalten bei 0 beginnt. Aus der Formel (4.1) folgt direkt:

µ ¶ µ ¶ µ ¶ n n−1 n−1 = + k k−1 k Dies entspricht der Konstruktion des Pascalschen Dreiecks. Man addiert die beiden Zahlen, die in der darüber stehenden Zeile n − 1 an den Stellen k − 1 und k stehen, um den gesuchten Eintrag in der n-ten Zeile und k-ten Spalte zu erhalten. Damit ist gezeigt, dass man mit der Methode des Pascalschen Dreiecks die richtigen Koeffizienten erhält. Man kann also einen Eintrag in der n-ten Zeile und k-ten Spalte entweder direkt mit dem binomischen Lehrsatz oder rekursiv mit dem Pascalschen Dreieck berechnen. Beispiel 4.1. n=4 k=3 µ ¶ 4 4! =4 = 3!(4 − 3)! 3

µ ¶ µ ¶ 3! 3 3 3! + = 3+1 = 4 + = 2!(3 − 2)! 3!(3 − 3)! 2 3 4.1.4 Farbmuster im Pascalschen Dreieck

Mit Hilfe eines Computerprogramms werden alle Felder, die durch s (z. B. s = 2) teilbare Zahlen enthalten, rot und die restlichen Felder hellgrün eingefärbt. Wir variieren die Anzahl der Zeilen des Pascalschen Dreiecks und betrachten die entstehenden Figuren.

67

4 Klassische Fraktale II

Implementierung

f u n c t i o n S e c h s e c k ( n , x , y , w, a , s ) % % % % % % % %

SECHSECK( N , X , Y ,W, A , S ) draws a hexagon w i t h t h e following parameters : n i s t h e t o t a l s i z e o f Pascal ’ s t r i a n g l e . ( x , y ) i s t h e m i d d l e p o i n t o f t h e hexagon . w g i v e s t h e number o f t h i s hexagon w i t h i n P a s c a l ’ s t r i a n g l e . a i s t h e l e n g t h o f one s i d e o f t h e hexagon . s i s t h e d i v i s o r ; i f s | w , t h e c o l o u r o f t h e hexagon i s red , o t h e r w i s e green .

% c a l c u l a t e t h e co−o r d i n a t e s o f t h e n o d e s o f t h e hexagon r = a /4∗ sqrt ( 2 ) ; p h i = l i n s p a c e ( 0 , 2 ∗ pi , 7 ) ; d = r . ∗ s i n ( p h i )+ x ; e = r . ∗ c o s ( p h i )+ y ; % p l o t the edges p l o t ( d , e , ’ k−’ ) ; % determine the colour i f mod (w, s ) == 0 patch ( d , e , ’ r ’ ) e l s e patch ( d , e , ’ g ’ ) end ; x = x−a / 3 0 ; % c e n t e r t h e t e x t w i t h i n t h e hexagon i f w>9 x = x−a / 1 0 ; end ; i f w>99 x = x−a / 8 ; end ; % w r i t e a number o r n o t ? i f n 1 divergiert die Folge ins Unendliche, für |z| < 1 konvergiert die Folge gegen 0. Gilt |z| = 1, so liegen die Folgenglieder auf dem Einheitskreis:

Abbildung 4.5: |z| < 1 und |z| = 1 – [44] 4.2.2 Juliamenge

Den Rand der Gefangenenmenge P, also in diesem Fall der Einheitskreis, bezeichnen wir als Juliamenge der Iteration. Der Name Juliamenge geht auf den französischen Mathematiker Gaston Julia (1893-1978) zurück. Er wurde im 1. Weltkrieg schwer verwundet und gewann viele seiner Erkenntnisse, während er sich von seinen Verletzungen im Militärkrankenhaus erholte. Wenn wir unseren Startwert innerhalb der Juliamenge wählen, d.h. |z 0 | = 1, so liegt z1 wieder in der Juliamenge. Also ist die Juliamenge invariant bezüglich der Iteration.

71

4 Klassische Fraktale II Die Iteration hat zwei „Fixpunktmengen“, nämlich die 0 und den Einheitskreis. Zwischen diesen beiden liegt jedoch ein großer Unterschied vor: Befindet sich ein Punkt in einer ε -Umgebung von 0, so verringert sich sein Abstand von der 0 bei jeder weiteren Iteration, d.h. die 0 wirkt „anziehend“. Ein Punkt in der Nähe des Einheitskreises entfernt sich dagegen mit jeder Iteration immer weiter. Der Einheitskreis wirkt demnach „abstoßend“. 4.2.3 Iteration f c (z) = z2 + c

Nun verallgemeinern wir unser Beispiel und definieren die Iteration fc (z) = z2 + c. Hierbei ist c eine komplexe Zahl. Analog zu oben definieren wir Ec = {z0 | |zn | → ∞ für n → ∞} Pc = {z0 | z0 ∈ / Ec }

Die Juliamenge für einen bestimmten Parameter c ist der Rand der Menge Pc . Für c 6= 0 ergeben sich wesentlich kompliziertere Strukturen als der Einheitskreis. Setzt man c = −0, 5 + 0, 5i, so erhält man:

Abbildung 4.6: Gefangenenmenge für c = −0, 5 + 0, 5i – [44] Hierbei ist die Gefangenenmenge P schwarz gefärbt; die Startwerte, für die die Iteration gegen unendlich strebt, bleiben weiß. Der Rand des schwarzen Bereichs ist also die Juliamenge. Sie weist die typische Eigenschaft eines Fraktals auf: Wir können einen beliebigen Ausschnitt vergrößern und erhalten immer wieder die gleichen Strukturen. 4.2.4 Zentrale Idee

Wendet man die Iteration auf Punkte an, die außerhalb eines Kreises mit genügend großem Radius liegen, so streben die Folgenglieder gegen unendlich.

72

4.2 Juliamengen Definition 4.1 (Wie groß muss dieser Radius sein?). Der Radius hängt vom Parameter c ab und kann folgendermaßen gewählt werden: r(c) = max( |c| , 2). Dann läßt sich mit Hilfe der Dreiecksungleichung zeigen, dass der Betrag einer komplexen Zahl außerhalb dieses Radius mit jeder Iteration zunimmt. Beweis: z liegt außerhalb von r(c), d.h., |z| > |c|

und

|z| > 2.

Also existiert ein ε > 0, so dass |z| > 2 + ε erfüllt ist. Die Dreiecksungleichung liefert dann: ¯ 2¯ ¯ 2 ¯ ¯ ¯ ¯z ¯ = ¯z + c − c¯ ≤ ¯z2 + c¯ + |c| . Umformungen ergeben: ¯2 ¯ ¯ ¯ ¯z + c¯ ≥ ¯z2 ¯ − |c| = |z|2 − |c| ≥ |z|2 − |z|

(betragsmäßig größere Zahl wird subtrahiert)

= (|z| − 1) |z|

= (1 + ε ) |z|

(Distributivgesetz) (|z| = 2 + ε )

¯ ¯ Also gilt ¯z2 + c¯ ≥ (1 + ε ) |z| und somit ist gezeigt, dass sich der Betrag einer komplexen Zahl, die sich außerhalb des vorgegebenen Radius befindet, mit jeder Iteration erhöht. Wir können daher sicher sein, dass die Folge ins Unendliche divergiert. ¤ Wenn wir mit dem Startwert z0 beginnen und ein Folgenglied finden, das außerhalb dieses Kreises liegt, so wissen wir, dass z0 in der Menge Ec liegt. Allerdings kann es sehr lange dauern, bis die Folgenglieder außerhalb des Kreises liegen. Deswegen geben wir eine maximale Anzahl von Iterationsschritten vor. 4.2.5 Approximation der Menge Pc

Wir werden nun diese Tatsache benutzen, um die Menge Pc möglichst genau mit dem Computer graphisch anzunähern. Zu Beginn wählen wir die Konstante c in unserer Iteration z k+1 = z2k + c aus und berechnen daraus r(c) = max( |c| , 2). Wir legen einen Bereich der komplexen Zahlen fest, nämlich ein Quadrat mit der Seitenlänge 2r und dem Ursprung als Mittelpunkt, und legen ein Netz von Pixeln darüber, um ein graphisches Bild auf dem Bildschirm erzeugen zu können. Jeder Pixel steht für einen Startwert z0 . Nun färben wir die Punkte, die im Innern des Kreises mit dem Radius r(c) liegen, schwarz ein. Alle Punkte, die nicht schwarz sind, gehören auf jeden Fall zur Menge E c . Somit ist unsere

73

4 Klassische Fraktale II erste Annäherung der Menge Pc eine Kreisscheibe mit dem Radius r(c) und dem Ursprung als Mittelpunkt.

(0)

Abbildung 4.7: Qc = {z0 | |z0 | ≤ r(c)} – [44] (0)

Nun führen wir bei jedem der übriggebliebenen Punkte in Q c eine Iteration durch und erhalten (0) eine neue komplexe Zahl z1 für jedes z0 ∈ Qc . Gilt |z1 | > r(c), so wird eine Folge mit dem Startwert z0 gegen unendlich divergieren. Also liegt z 0 nicht in Pc und das Pixel wird weiß eingefärbt. Auf diese Weise erhalten wir eine verbesserte Approximation, die aus allen Punkten besteht, die nach einer Iteration immer noch innerhalb der Kreisscheibe liegen.

(−1)

Abbildung 4.8: Qc

= {z0 | |z1 | ≤ r(c)} – [44]

(−1)

Jetzt werden nur noch die Punkte von Q c betrachtet. Es wird wieder eine Iteration durchge(−2) führt und entsprechende Pixel weiß eingefärbt, was zum Gebiet Q c in Abbildung 4.9 führt. Für die k-te Approximation erhält man: (−k)

Qc

74

= {z0 | |zk | ≤ r(c)}.

4.2 Juliamengen

(−2)

Abbildung 4.9: Qc

= {z0 | |z2 | ≤ r(c)} – [44]

Auf diese Weise wird die Menge Pc immer genauer angenähert: (−k)

Qc

→ Pc

(−10)

Abbildung 4.10: Qc

für

k → ∞.

= {z0 | |z10 | ≤ r(c)} – [44]

Je nachdem, wie man die Konstante c gewählt hat, ergeben sich unterschiedliche Mengen Pc .

4.2.6 Visualisierung verschiedener Juliamengen

Wir erzeugen nun mit dem Computer Bilder von Juliamengen und untersuchen, wie sich die Veränderung des Parameters c auswirkt. Die Farbe eines Punktes hängt davon ab, wie viele Iterationsschritte benötigt werden, damit sich ein Folgenglied außerhalb des Radius r(c) befindet. Bei den folgenden Bildern ist die Juliamenge jeweils der Rand der Menge Pc .

75

4 Klassische Fraktale II

Abbildung 4.11: P−1 : verbunden, flächig

Abbildung 4.12: P0,25 : verbunden, flächig

Abbildung 4.13: Pi : Juliamenge, kein Inneres, eine verbundene Menge

76

4.2 Juliamengen

Abbildung 4.14: P0,4 : Juliamenge, kein Inneres, total unzusammenhängend

Abbildung 4.15: P(0,2−i) : Juliamenge, kein Inneres, eine verbundene Menge Die Juliamengen lassen sich in zwei Kategorien einteilen: • Für c = −1, c = 0, 25 und c = i ist die Juliamenge zusammenhängend. • Für c = 0, 4 und c = (0, 2 − i) ist sie total unzusammenhängend. Wovon hängt es ab, ob eine Juliamenge zusammenhängend oder total unzusammenhängend ist?

Welcher der beiden Fälle vorliegt, lässt sich anhand des Iterationsverhaltens eines einzigen Punktes, nämlich des Punktes (0+0i), feststellen. Wenn der Punkt (0+0i) bei der Iteration nicht nach Unendlich entkommt, ist die Juliamenge zusammenhängend. Andernfalls ist sie total unzusammenhängend. Die Programmierung beruht auf dem oben beschriebenen Verfahren zur Approximation der Menge Pc .

77

4 Klassische Fraktale II

Implementierung

function J u l i a ( c , k , v ) % % % % %

JULIA ( C , K , V ) draws t h e J u l i a s e t w i t h t h e f o l l o w i n g parameters : c i s a c o m p l e x number u s e d i n t h e map f ( z ) = z š + c . k g i v e s t h e number o f i t e r a t i o n s v d e t e r m i n e s t h e number o f p o i n t s on t h e x−a x i s .

% r a d i u s o f t h e c i r c l e beyond which e v e r y p o i n t d i v e r g e s r = max ( abs ( c ) , 2 ) ; % d i v i d e t h e x−a x i s d = l i n s p a c e (−r , r , v ) ; % c r e a t e t h e m a t r i x A c o n t a i n i n g c o m p l e x numbers A = o n e s ( v , 1 ) ∗ d+ i ∗ ( o n e s ( v , 1 ) ∗ d ) ’ ; % create the point matrix B = zeros (v , v ) ; % iteration for s = 1: k B = B+( abs (A) 1. Beweis: Es gilt für festes k: z = z2 + c

und

|2z| = 1 + k

Nun betrachten wir einen Punkt x in der ε -Umgebung des Fixpunktes z und wollen zeigen, dass sich dieser Punkt bei einem Iterationsschritt weiter entfernt. Aus |z − x| = ε soll also folgendes gefolgert werden: ¯ ¯ ¯z − (x2 + c)¯ > ε .

|z − x| = ε impliziert: Es gibt eine komplexe Zahl d mit x = z + d und |d| = ε .

79

4 Klassische Fraktale II

¯ ¯ ¯ ¯ ¯z − (x2 + c)¯ = ¯z2 + c − (x2 + c)¯ ¯ ¯ = ¯z2 − x2 ¯ = |z − x| |z + x| = ε |z + x|

= ε |2z + d|

≥ ε (|2z| − |d|)

(z Fixpunkt)

(3. binomische Formel)

(x liegt in der ε -Umgebung) (Dreiecksungleichung)

= ε (|2z| − ε )

= ε (1 + k − ε )

Wählt man nun ε < k, so folgt

¯ ¯ ¯z − (x2 + c)¯ > ε .

¤

Nachteil beim Chaos-Spiel

Abhängig von der Wahl des Parameters c gibt es Bereiche der Juliamenge, die von der rückwärts ausgeführten Iteration kaum erreicht werden; so kann es sein, dass die ausgegebenen Bilder unvollständig oder unscharf erscheinen. 4.2.8 Selbstähnlichkeit

Theorem 4.4. Juliamengen sind invariant bezüglich der Iteration z → z 2 + c. Beweis: Wir wählen einen beliebigen Startwert z 0 in der Juliamenge aus und müssen zeigen, dass das nachfolgende Folgenglied z 1 auch in der Juliamenge liegt. Beweis per Widerspruch: 1. Annahme: z1 liegt in der Menge Ec = {z0 | |zn | → ∞ für n → ∞}. Dies führt sofort zu einem Widerspruch, denn dann würde die Folge gegen Unendlich divergieren und auch z0 würde in der Menge Ec liegen. Die Juliamenge enthält aber keine Punkte der Menge Ec . Demnach muss z1 in der Gefangenenmenge Pc liegen. 2. Annahme: z1 liegt im Innern der Gefangenenmenge Pc , also nicht in der Juliamenge. Dann gilt

80

¯ ¯ |z1 | = ¯z20 + c¯ < |z0 | .

4.3 Die Mandelbrotmenge Da die Juliamenge „abstoßend“ wirkt, gilt für einen Punkt z a außerhalb der Juliamenge: ¯2 ¯ ¯za + c¯ > |z0 | .

Lässt man nun den Punkt za gegen z0 streben, so ergibt sich aufgrund der Stetigkeit der Funktionen ein Widerspruch: ¯2 ¯ ¯ ¯ ¯z0 + c¯ ≥ |z0 | und ¯z20 + c¯ < |z0 |

können nicht gleichzeitig erfüllt sein. Die Annahme war also falsch und z 1 liegt in der Juliamenge. ¤ Somit ist gezeigt, dass Juliamengen invariant bezüglich z → z 2 +c sind. Sie sind ebenso invariant bezüglich jeder der beiden Umkehrfunktionen. Diese totale Invarianz ist eine der Schlüsseleigenschaften von Juliamengen. Deshalb muss die globale Struktur der Juliamengen sowohl in den Bildern als auch in den Urbildern auftauchen. Wählt man einen kleinen Bereich der Juliamenge aus und führt mit allen Punkten die Iteration z → z2 + c aus, so erhalten wir nach endlich vielen Schritten die komplette Juliamenge. Das bedeutet, dass in jedem noch so kleinen Teil der Juliamenge die gesamte Struktur der Juliamenge enthalten ist.

4.3 Die Mandelbrotmenge Im vorigen Kapitel haben wir Juliamengen zur Abbildung z 2 + c mit z0 , c ∈ C kennengelernt. Will man nun diese Mengen näher untersuchen, kommt man bald auf die Frage nach Gemeinsamkeiten und Unterschieden. Die einfachste Möglichkeit, Juliamengen zu unterscheiden, ist der jeweilige Parameter c. Um Gemeinsamkeiten festzustellen, kann man sie auf ihre Eigenschaften prüfen und anhand dieser in entsprechende Teilmengen aufteilen. Mögliche Kriterien wären die größte Ausdehnung (Durchmesser) oder der Flächeninhalt einer Juliamenge. Oder auch die Frage, ob die zugehörige Menge P (prisoner set) ein Inneres hat. Hier soll nun näher darauf eingegangen werden, ob eine Juliamenge zusammenhängend ist oder nicht. 4.3.1 Wann ist eine Menge zusammenhängend?

Der Begriff „zusammenhängend“ kommt aus der Topologie. Anschaulich ausgedrückt ist eine Menge zusammenhängend, wenn sie nur aus einem Stück besteht, wie beispielsweise die schwarz gefärbte Punktmenge in Abbildung 4.16. Sie ist zusätzlich einfach zusammenhängend, wenn es in ihr keine Löcher gibt. Etwas präziser ausgedrückt muss jede geschlossene Kurve, die innerhalb der Menge liegt, stetig auf einen Punkt innerhalb dieser Menge zusammengezogen werden können.

81

4 Klassische Fraktale II

Abbildung 4.16: Beispiel einer zusammenhängenden Menge Die Menge in Abb. 4.16 erfüllt diese Eigenschaft nicht. Ein Beispiel für eine einfach zusammenhängende Menge ist Abbildung 4.17.

Abbildung 4.17: Beispiel einer einfach zusammenhängenden Menge Nicht zusammenhängend ist die Negation von zusammenhängend:

Abbildung 4.18: Beispiel einer nicht zusammenhängenden Menge Eine Menge ist total unzusammenhängend, falls es keine zusammenhängende Teilmenge gibt, die aus mehr als einem Element besteht. Solche Mengen werden aufgrund ihres Aussehens auch „Staub“ genannt (siehe Abbildung 4.19). Ein mathematisch formulierbares Beispiel für eine total unzusammenhängende Menge ist die Cantor-Menge, die auch Cantor-Staub genannt wird (engl.: „Cantor dust“).

82

4.3 Die Mandelbrotmenge

Abbildung 4.19: Beispiel einer total unzusammenhängenden Menge Mathematisch präziser kann man diese Begriffe auf folgende Definition aufbauen: Definition 4.2 (zusammenhängend). Sei (X, d) ein metrischer Raum. (X, d) ist zusammenhängend, falls die einzigen zugleich offenen und abgeschlossenen Mengen X und 0/ sind. Für Teilmengen S aus X sagt man, S ist zusammenhängend, falls der metrische Raum (X, d) zusammenhängend ist. Für Juliamengen, die wie hier ein Polynom (mit Grad größer als 1) als Iterationsvorschrift haben, gibt es eine einfache Methode herauszufinden, ob sie zusammenhängend sind oder nicht. Michael Barnsley formuliert in seinem Buch ([2], S. 313) folgenden Satz: Theorem 4.5. Eine Juliamenge Jc ist genau dann zusammenhängend, wenn der Ursprung unter der zugehörigen Iteration nicht nach Unendlich strebt: Jc zusammenhängend ⇐⇒ (cn ) mit cn+1 := c2n + c und c0 = 0 + 0i ist beschränkt. 4.3.2 Das Apfelmännchen

Um die Mandelbrotmenge zu definieren, verwendet man die Menge der komplexen Zahlen als Parametermenge. Definition 4.3 (Mandelbrotmenge). Prüfe für jeden Parameter c ∈ C, ob die Juliamenge J c zusammenhängend ist. Die nun entstandene Menge M := {c ∈ C | Jc ist zusammenhängend} nennt man Mandelbrotmenge. Definition 4.4 (Apfelmännchen). Um entsprechend dieser Zweiteilung der Menge aller Juliamengen bezüglich der Eigenschaft „zusammenhängend“ ein zweifarbiges Bild zu erhalten, färbt man jeden Punkt der komplexen Ebene schwarz, falls Jc zusammenhängend ist, andernfalls weiß. Die so entstehende Figur heißt Apfelmännchen. Abbildung 4.20 zeigt drei verschieden Apfelmännchen: Rechts ist ein mehrfarbiges Apfelmännchen zu sehen, auf dessen Erzeugung später näher eingegangen wird. Das linke Bild stellt dar,

83

4 Klassische Fraktale II

Abbildung 4.20: Drei Darstellungen des Apfelmännchens wie das Apfelmännchen bei seiner Entdeckung visualisiert wurde. In der mittleren Darstellung wurden die Koordinatenachsen weiß eingezeichnet, um eine grobe Orientierung zu erhalten. Wir halten fest: • Es liegt Symmetrie bezüglich der Realteil-Achse vor. • Der größte Teil des Apfelmännchens liegt im negativen Realteil-Bereich. • Der Spalt am rechten Ende liegt bei c = 0, 25 + 0i. • Der Spalt zwischen den beiden größten Kugeln befindet sich bei c = −0, 75. • Die kleinen Kugeln oben und unten an der imaginären Achse befinden sich bei c ≈ ±i. • Auf diesem Bild sind auf der Realteil-Achse aneinandergereiht drei kugelartige Gebilde zu sehen. Tatsächlich sind dies nach links hin unendlich viele. Sie haben eine Schranke für die Ausdehnung nach links, den sogenannten Myreberg-Punkt mit c ≈ −1, 40115. Diese Entdeckung von Benoit Mandelbrot (1924) im Jahre 1979 war eine Initialzündung für die Erforschung von Fraktalen, nachdem dieses Gebiet der Mathematik rund 60 Jahre unberührt blieb. Gaston Julia (1893–1978) und Pierre Fatou (1878–1929) haben bereits um 1910 Fraktale untersucht und viele Erkenntnisse gewonnen. Jedoch standen ihnen seinerzeit keine elektronischen Hilfsmittel zur Verfügung, was eingehendere Untersuchungen erschwerte: Für das Erstellen solcher Bilder ist eine große Zahl von Rechenschritten für sehr viele Punkte durchzuführen. Diese riesige Anzahl von Berechnungen ist nur mit Computern zu bewältigen. Mandelbrot war einer der wenigen, die die Arbeiten Julias und Fatous gut kannten, und mit diesem Wissen gelang es ihm z. B. das Problem zu lösen, wie ein Computer entscheiden kann, ob eine Menge zusammenhängend ist. Obiger Satz aus Abschnitt 4.3.1 liefert die Erkenntnis, dass eine Menge zusammenhängend ist, falls die Iterationsfolge cn beschränkt ist, wenn man den Ursprung als Startwert wählt. Dies motiviert eine alternative Definition der Menge M: M := {c ∈ C | (cn ) mit c0 = 0 + 0i ist beschränkt; cn+1 := c2n + c}

84

4.3 Die Mandelbrotmenge Vergleicht man dies nun mit der Definition der Menge Pc (prisoner set), deren Rand die Juliamenge Jc ist: Pc := {z0 ∈ C | (zn ) ist beschränkt; zn+1 := z2n + c} Pc ist also die Menge von Startwerten, für die die Iterationsfolge beschränkt ist, während die Mandelbrotmenge die Menge aller Parameter ist, für die der Ursprung in Pc liegt. Bei aller Gemeinsamkeit gelten also für die Juliamenge und die Mandelbrotmenge ganz andere Rahmenbedingungen! Weiterhin gilt es festzuhalten, dass die Juliamengen zwar die Grundlage für die Konstruktion der Mandelbrotmenge sind, jedoch spielt die (fraktale) Struktur und das Aussehen der Juliamengen für die Mandelbrotmenge keine Rolle, da jede Juliamenge nur einen einzigen nicht strukturbehafteten Punkt in der komplexen Ebene hinterlässt. In Abschnitt 4.3.6 soll anhand einiger Beispiele gezeigt werden, dass man dennoch die Strukturen einer Juliamenge Jc im Bereich um c in der Mandelbrotmenge wiederfindet. 4.3.3 Wie erstellt man bunte Bilder von Mandelbrotmengen?

Um Mandelbrotmengen (hier: das „Apfelmännchen“) darzustellen, verwendet man den sogenannten „escape time“-Algorithmus. Die Idee und Durchführung der Approximation wurde bereits in Kapitel 4.2 beschrieben. Man kann zeigen, dass außerhalb eines Kreises um den Ursprung mit dem Radius r(c) = max{|c| , 2} keine Startwerte mehr zu finden sind, für die die Iteration beschränkt ist. Das heißt: (zn ) → ∞

∀z0 ∈ C\Br(c) (0) :

für n → ∞

[wobei zn+1 := z2n + c]

(4.2)

Für Mandelbrotmengen, bei denen wir die Iteration cn+1 := c2n + c mit c0 = 0 + 0i betrachten (vgl. Satz 4.5), ergibt sich: R := r(c) = max{|c| , 2} = 2. Die letzte Gleichheit folgt aus (4.2) und der Definition von (cn ). Es gilt c0 = 0, also c1 = c und mit (4.2) gilt: |c| > 2



c1 > 2



cn → ∞ für n → ∞.

Sobald also zu einem Parameter c ein c n mit |cn | > 2 auftaucht, ist gezeigt, dass dieser Parameter kein Element der Mandelbrotmenge ist, da M = {c ∈ C | (cn ) ist beschränkt}.

85

4 Klassische Fraktale II Nun soll nicht mehr nur eine Zweiteilung der komplexen Ebene durchgeführt, sondern die Ebene in mehrere Bereiche sinnvoller Unterscheidung unterteilt werden. Sei N die Anzahl der Iterationen, die zum Verlassen des Kreises B 2 (0) ⊂ C nötig sind. Dann schreibt man diese Anzahl N(c) jedem Parameter c als charakteristische Eigenschaft zu. Diese Zahl kann man derart deuten, dass dies die „Zeit“ ist, die für einen Parameter c nötig ist, um Divergenz nachzuweisen. Deshalb bezeichnet man dieses Verfahren als „escape time“Algorithmus. Es gilt: N(c) = min{n ∈ N | cn ∈ C\B2 (0)} Um mehrfarbige Bilder zu erzeugen, muss man jetzt nur noch jedem N eine Farbe zuweisen und jeden Punkt c ∈ C bzw. ausreichend viele Pixel auf einem Bildschirm in der Farbe markieren, die dem errechneten N zugeteilt wurde. Dies ergibt dann je nach Wahl der Farbpalette schöne, knallig bunte oder gar winterliche Bilder:

Abbildung 4.21: Spirale Dieser Ausschnitt befindet sich im Bereich um (−0, 74634 − 0, 0989i), also im Spalt zwischen den beiden großen Kugeln des Apfelmännchens. Die Breite dieses Ausschnittes beträgt 4, 3 · 10−6 . Der Vergrößerungsfaktor ist also in etwa eine Million.

Abbildung 4.22: Farbenfrohes Apfelmännchen

86

4.3 Die Mandelbrotmenge Der Ausschnitt von Abbildung 4.22 befindet sich auf der Re-Achse bei −1, 75, also im Bereich der Spitze des Apfelmännchens. Die Vergrößerung ist deutlich höher als bei Abb. 4.21: ca. 10 Millionen. Jedoch sieht man aufgrund der Selbstähnlichkeit kaum einen Unterschied zu jedem anderen Apfelmännchen, abgesehen von den etwas zerfurchteren Strukturen im weiteren Umkreis.

Abbildung 4.23: Winterliche Sterne Das sternartige Gebilde in Abb. 4.23 findet man in der Gegend von (−0, 561 − 0, 641i) bei einer Vergrößerung von 10000 (und mehr). 4.3.4 Fraktale Eigenschaften des Apfelmänchens

In den bereits gezeigten Bildern kann man erahnen, dass die zerfurchten Strukturen am Rand des Apfelmännchens interessante Vergrößerungen aufweisen. Doch kann man dort tatsächlich die für Fraktale typische Eigenschaft der Selbstähnlichkeit finden? Beispiel 4.2. Betrachte zunächst eine Vergrößerungsserie in den Bereich um −1, 75, also in die Spitze des Apfelmännchens.

Abbildung 4.24: Apfelmännchen vergrößert: Faktor 1 und 2,5 Wir starten links mit Zoom-Faktor 1. Zu sehen ist der Ausschnitt Re = [−2; 2], Im = [−1, 5; 1, 5]. Rechts eine erste Vergrößerung um den Faktor 2,5. Hier kann man schon erkennen, dass sich am linken Rand ein flächiges Gebilde befindet. Betrachten wir dieses genauer:

87

4 Klassische Fraktale II

Abbildung 4.25: Apfelmännchen vergrößert: zweite Generation Wir haben es hier offensichtlich wieder mit einem Apfelmännchen zu tun. Der Vergrößerungsfaktor beträgt rechts 40. Das Apfelmännchen in der 2. Generation (Bezeichnung frei gewählt) ist ungefähr 50 mal kleiner als das erste. Wir vergrößern weiter.

Abbildung 4.26: Apfelmännchen vergrößert: dritte Generation Das linke Bild zeigt das vorige Apfelmännchen in dreifacher Vergrößerung. Der am linken Rand erkennbare Fleck wird wieder 15-fach vergrößert. Das Ergebnis ist ein weiteres Apfelmännchen, nun bereits in der 3. Generation. Wir vergrößern weiter.

Abbildung 4.27: Apfelmännchen vergrößert: vierte Generation Es ergeben sich nahezu die selben Bilder wie oben. Wieder erkennt man einen Fleck, der sich als Apfelmännchen entpuppt; nun schon in der 4. Generation und bei einer Gesamtvergrößerung von 60000. Weitere Vergrößerungen liefern dieBilder in Abb. 4.28 und 4.29.

88

4.3 Die Mandelbrotmenge

Abbildung 4.28: Fünfte (Zoom-Faktor 5, 8 Mio.) und sechste Generation (230 Mio.)

Abbildung 4.29: Siebte (Zoom-Faktor 22 Mrd.) und achte Generation (870 Mrd.) Diese Reihe kann beliebig fortgesetzt werden. Jedoch setzen Rechengenauigkeit und Rechenleistung Grenzen: Für das letzte Bild benötigt ein Rechner mit einem 1 GHz Prozessor ungefähr 15 Minuten. Am zeitraubendsten ist hierbei die hohe benötigte Iterationstiefe (hier 80 000), um in solch großer Nähe zur Mandelbrotmenge überhaupt etwas erkennen zu können. Vergrößert man weiter, so stößt man irgendwann an die Grenze des Auflösungsvermögens, d.h. der Rechner kann zwei benachbarte Zahlen deshalb nicht mehr unterscheiden, weil deren Differenz kleiner ist als die maximale Genauigkeit der verwendeten Variablen. Beobachtet man die Vergrößerungsfaktoren, so fällt auf, dass diese in einem nahezu konstanten Verhältnis zur Generationstiefe stehen: Das Apfelmännchen 8. Generation – also 7 Schritte weiter als das Ausgangsbild – ist um ca. 870 Milliarden größer. Rechnung liefert: √ 7 870 · 109 ≈ 50, 7 ≈ 50 Das bedeutet: Jedes Apfelmännchen der k. Generation ist 50 mal so groß wie das Apfelmännchen (k + 1). Generation. Diese Vermutung wird durch die übrigen obigen Bilder im Rahmen der Meßgenauigkeit verifiziert. (Man beachte: Die Apfelmännchen füllen z. T. nicht den gleichen Anteil des Rahmens aus.) Dieser konstante Faktor (gilt nur für diesen Bereich!) ist ein weiteres Indiz für die Selbstähnlichkeit des Apfelmännchens. Die geringen Unterschiede, die sich dennoch in den Bildern finden, sind auf folgende praktische

89

4 Klassische Fraktale II Probleme zurückzuführen: Zum einen ist es kaum durchführbar, dass die Apfelmännchen immer den gleichen Anteil des Zeichenbereichs ausfüllen. Zum anderen ergeben sich Unterschiede in der Einfärbung des Bildes, da die nötige Iterationstiefe mit dem Zoomfaktor steigt und eine Erhöhung um etwas mehr oder weniger als nötig zu einer Verschiebung oder Verzerrung der Farbskala führt. Weiterhin finden sich mit steigender Vergrößerung immer mehr feine Verästelungen. Diese verschwinden jedoch bei Anpassung der Iterationstiefe. Dabei geht jedoch (s. o.) der Maßstab für die Farbskala verloren und das Bild sieht stark verändert aus. Betrachte eine weitere Vergrößerungsserie; dieses Mal im Bereich des Spaltes zwischen den größten beiden Kugeln, bei c ≈ −0, 74 + 0, 1i.

Abbildung 4.30: Apfelmännchen vergrößert: Spalt erste Generation

Abbildung 4.31: Apfelmännchen vergrößert: Spalt mit Zoom-Faktor 40

Abbildung 4.32: Apfelmännchen vergrößert: Spirale erkennbar

90

4.3 Die Mandelbrotmenge Wir starten wieder im Intervall [−2; 2] × [−1, 5i; 1, 5i]. Vergrößerung in den Spalt hinein liefert die Bilder in Abb. 4.31. Betrachte hier die Wirbel an der rechten Seite des Spalts. Die Vergrößerung des rechten Bildes beträgt 40. Bei 250- bzw. 600-facher Vergrößerung erkennt man eine Spirale (siehe Abb. 4.32). Diese Spirale wollen wir nun auf zwei unterschiedlichen Wegen verfolgen.

Abbildung 4.33: Erste Spiralverfolgung: Zentrale Zooms In der Abfolge in Abb. 4.33 erkennt man aufgrund der Anordnung sehr schön, dass immer dieselben Spiralen wiederkehren. Ausgehend von einer 1500-fachen Vergrößerung steigt der Faktor von einem Bild auf das nächste um 2, 5. Folglich ist dieser Ausschnitt der Mandelbrotmenge in der Gegend von −0, 746 + 0, 099i invariant bezüglich Vergrößerungen um den Faktor 2, 5 · 2, 5 = 6, 25.

Das letzte Bild in Abb. 4.33 entstand bei einer Vergrößerung von 150000 und einer Iterationstiefe von (vergleichsweise geringen) 700 Iterationen. Die Reihe ließe sich jedoch endlos fortsetzen.

91

4 Klassische Fraktale II

Abbildung 4.34: Zweite Spiralverfolgung: Zooms in den oberen Teil der Spirale Das erste Bild in Abbildung 4.34 ist ein 3800-facher Zoom in den Bereich [−0, 75; −0, 74] × [−0, 1i; −0, 09i]. Auch in dieser Serie steigt der Vergrößerungsfaktor jeweils um 2,5. Siehe da! In diesem Bereich der Spirale haben wir doch tatsächlich wieder ein kleines Apfelmännchen entdeckt! Noch deutlicher ist es in den Bildern von Abb. 4.35 zu erkennen. Im linken Bild wurde um den Faktor 930000 vergrößert. Der Ausschnitt befindet sich im Intervall [−0, 7463455; −0, 7463412] × [−0, 098902i; 0, 098898i]. Dieses Apfelmännchen ist in etwa 2 Millionen mal kleiner als das ursprüngliche. Wie bereits zuvor angedeutet, ist die Farbpalette für das Erstellen dieser Bilder beliebig. Stellt man das letzte Bild nun mit einer schwarz-rot-gelb-weiß-Skalierung dar, was in MATLAB durch die Palette (colormap) „hot“ voreingestellt ist, so erhält man Abbildung 4.36.

92

4.3 Die Mandelbrotmenge

Abbildung 4.35: Apfelmännchen innerhalb der Spirale

Abbildung 4.36: Leuchtendes Apfelmännchen 4.3.5 Die Mandelbrotmenge ist zusammenhängend

Die vorangegangenen Bilder vermitteln den Eindruck, dass die Mandelbrotmenge „Inseln“ enthält, welche vom „Meer“ der Parameter umgeben sind, für die die Iteration nach unendlich strebt. Doch die Bilder täuschen. Dies liegt zum einen an der unvollständigen Iteration. Da die Bilder alle mit dem „escape time“Algorithmus erstellt wurden, werden alle Parameter, die bis zur Zahl der maximalen Iteration den Kreis B2 (0) ∈ C nicht verlassen haben, zur Mandelbrotmenge gezählt. Deshalb werden bei steigender Iterationstiefe die einen oder anderen „Inselchen“ noch verschwinden. Zum anderen ist die Zahl der Pixel in den computergenerierten Bildern und damit das Auflösungsvermögen begrenzt. Zwischen den scheinbaren „Inseln“ und dem „Festland“ existiert also tatsächlich noch ein „Verbindungssteg“, der jedoch so dünn ist, dass er von der Pixelaufteilung nicht erfasst wird. Im Jahre 1982 zeigten Douady und Hubbart in ihrer Veröffentlichung [14], dass die Mandel-

93

4 Klassische Fraktale II brotmenge zusammenhängend ist. Nützlich hierfür ist das Verfahren zur Approximation der Mandelbrotmenge und die zugrunde liegende Theorie, die beispielsweise in [2], S.787ff. unter dem Stichwort „Encirclement of M“ beschrieben wird. Noch nicht bewiesen ist dagegen, dass sie auch pfadweise zusammenhängend ist (siehe [37]). 4.3.6 Gemeinsame Strukturen von Juliamengen und Mandelbrotmenge

Wir haben die Mandelbrotmenge als eine Teilmenge aller komplexen Zahlen definiert. Und zwar enthält sie all jene c ∈ C, deren zugehörige Juliamenge Jc zusammenhängend ist. Weiterhin haben wir schon festgestellt, dass deshalb jede Juliamenge nur einen einzigen nicht strukturbehafteten Punkt bzw. Pixel im Bild der Mandelbrotmenge hinterlässt. Hier soll nun anhand einiger Beispiele gezeigt werden, dass man dennoch die Struktur eines ausreichend vergrößerten (zweidimensionalen) Intervalls I des Apfelmännchens in der zugehörigen Juliamenge Jc (mit c ∈ I) wiederfindet.

Abbildung 4.37: Zeichnerische Darstellung eines Apfelmännchens – [44] Dies ist ein Bild des Apfelmännchens, bei dem nur der Rand schwarz gefärbt wurde. Weiterhin wurden die Kugeln rechts oben schwarz ausgefüllt und eine Linie darum gezogen. Diese Kugeln wollen wir uns genauer ansehen.

Abbildung 4.38: Die eingefärbte Kugel des Apfelmännchens – [44] Dieses Bild zeigt die in der oberen Grafik angedeuteten Kugeln der Reihe nach von oben nach rechts. Hierbei wurde der Vergrößerungsfaktor derart angepasst, dass die Kugeln in etwa gleich groß sind. Tatsächlich werden die Kugeln von links nach recht immer kleiner.

94

4.3 Die Mandelbrotmenge Es fällt auf, dass die Zahl der Verästelungen von links nach rechts zunimmt. Noch deutlicher wird dieses Phänomen, wenn man die Juliamengen zu den durch die kleinen Pfeile markierten Stellen betrachtet:

Abbildung 4.39: Die zugehörigen Juliamengen – [44] Hier sieht man sehr schön, dass die Zahl der Verästelungen pro Knotenpunkt im gleichen Maße zunimmt wie im entsprechenden Ausschnitt der Mandelbrotmenge. Noch bemerkenswerter ist die Tatsache, dass sich die Ausschnitte der Mandelbrotmenge und die zugehörigen Juliamengen sehr stark ähneln. Betrachte beispielsweise den rechten oberen Teil der Juliamenge und den obersten Teil der entsprechenden Kugel in der Mandelbrotmenge. Im weiteren Teil dieses Abschnitts soll sich links ein Ausschnitt des Apfelmännchens befinden und rechts eine Juliamenge Jc , wobei c aus dem links dargestellten Intervall gewählt wird. Hierbei sind die linken Ausschnitte geeignet vergrößert. Die Juliamengen erscheinen unvergrößert im Intervall [−1; 1] × [−i; i].

Abbildung 4.40: Vergleich Mandelbrot- und Juliamenge für c ≈ i Die beiden Bilder sind kaum voneinander zu unterscheiden und weisen beide Selbstähnlichkeit auf, d.h. bei weiterer Vergrößerung werden die beiden Bilder weiterhin gleich aussehen. Die in Abb 4.41 und 4.42 auftretenden „Wirbel“ in den beiden Ausschnitten der Mandelbrotmenge sehen auf den ersten Blick recht ähnlich aus, sind aber doch recht gut anhand der Form

95

4 Klassische Fraktale II

Abbildung 4.41: Vergleich Mandelbrot- und Juliamenge für c ≈ −0, 722 − 0, 2175i

Abbildung 4.42: Vergleich Mandelbrot- und Juliamenge für c ≈ 0, 4436 − 0, 5658i der „Satelliten“ zu unterscheiden. In den jeweils zugehörigen Juliamengen stimmen die Strukturen dagegen mit verblüffender Genauigkeit mit den Strukturen der Mandelbrotmenge überein. Ein weiteres schönes Beispiel (Abb. 4.43) findet sich in der Umgebung einer der kleinen Kugeln am rechten Rand des Apfelmännchens, ungefähr bei 0, 4 − 0, 2i. Das linke Bild zeigt den Ausschnitt [0, 404; 0, 410] × [−0.197i; −0.192i] bei einer Vergrößerung von 600. Es wurde hier die Farbpalette „hot“ gewählt. Dies unterstreicht die gängige Bezeichnung „Julia - Drache“, die für Juliamengen gebraucht wird, welche so aussehen wie die im rechten Bild dargestellte. Wieder erkennt man den hohen Grad an Ähnlichkeit der Strukturen zwischen Juliamenge und der Mandelbrotmenge in der entsprechenden Umgebung. In diesem Beispiel ist eine weitere wichtige Eigenschaft zu erkennen: Während im linken Bild - dem vergrößerten Ausschnitt der Mandelbrotmenge - wieder ein kleines Apfelmännchen auf-

96

4.3 Die Mandelbrotmenge

Abbildung 4.43: Vergleich Mandelbrot- und Juliamenge für c ≈ 0, 4 − 0, 2i taucht (weißer Fleck), befindet sich im rechten Bild - der Juliamenge - garantiert kein einziges. Auch bei beliebiger Vergrößerung wird immer nur die vorhandene Struktur wiederholt. Es taucht kein Apfelmännchen auf. 4.3.7 Andere Mandelbrotmengen

Der Begriff Mandelbrotmenge ist nicht auf die quadratische Abbildung z 2 +c und die zugehörige Iteration zn+1 := z2n + c beschränkt. Aber sie ist von besonderer Bedeutung, da sie die einfachste nicht lineare Abbildung darstellt. Es ist die erste Familie dynamischer Systeme, die mit Hilfe von Computern grafisch dargestellt wurde (Mandelbrot, 1979). Eine einfache Verallgemeinerung erhält man durch Erhöhung des Polynomgrades. Für die Abbildungen zkn + c ergeben sich ebenfalls fraktale Bilder. Hier die Ergebnisse für k = 2, 3, 4, 5:

Abbildung 4.44: Bilder zu den Abbildungen z2 + c und z3 + c Alle vier Bilder in den Abbildungen 4.44 und 4.45 zeigen die Mandelbrotmenge im Intervall [−2; 2] × [−1.5i; 1.5i] zur jeweiligen Abbildungsvorschrift. Noch allgemeiner kann man Mandelbrotmengen definieren, indem man sogenannte IFS (Iterated Function System) betrachtet. Dieser Begriff wurde bereits zuvor zum Thema „Der Raum der Fraktale“ vorgestellt. Hier die wichtigsten Eigenschaften:

97

4 Klassische Fraktale II

Abbildung 4.45: Bilder zu den Abbildungen z4 + c und z5 + c Ein IFS besteht aus einem vollständigen metrischen Raum (X, d) und endlich vielen Kontraktionen wi mit dem Kontraktionsfaktor 0 ≤ κi < 1. Notation: {X, w1 , w2 , . . . , wn } ist ein IFS. Ihm wird der Kontraktionsfaktor

κ := max{κi | i = 1, . . . , n} zugeordnet. Man definiert eine Abbildung W folgendermaßen: W (B) =

n [

wk (B)

mit B beliebig aus H (X)

(dem Raum der Fraktale).

k=1

Aufgrund seiner Kontraktionseigenschaft besitzt ein IFS einen eindeutigen W -invarianten Attraktor A, der als Grenzwert der Hintereinanderausführung aller w i definiert ist: A = lim (W ◦n (B)) n→∞

B beliebig aus H(X)

(W ◦n bezeichnet die n-fache Hintereinanderausführung von W ).

Abbildung 4.46: Bild der Mandelbrotmenge M = {A(λ ) | A(λ ) ist zusammenhängend} – [2] Betrachtet man nun ein parameterabhängiges IFS, so ergibt sich zu jedem Parameter λ ein Attraktor A(λ ). Die Mandelbrotmenge M definiert man nun als Menge aller Attraktoren A(λ ), die zusammenhängend sind. (Für weitere Begriffsklärung siehe [2] Kapitel III).

98

4.3 Die Mandelbrotmenge Ein Beispiel für solch ein IFS ist {C ; w1 = λ z − 1, w2 = λ z + 1}. Die zugehörige Mandelbrotmenge M = {A(λ ) | A(λ ) ist zusammenhängend} ist in Abbildung 4.46 dargestellt. Eine Vergrößerung des Randes (Stelle siehe Pfeil) liefert:

Abbildung 4.47: Vergrößerung der Mandelbrotmenge M – [2] Eine Vergrößerung des linken Teils ist in Abb. 4.48 dargestellt.

Abbildung 4.48: nochmalige Vergrößerung der Mandelbrotmenge M – [2] Diese Vergrößerung läßt erahnen, dass auch bei anderen Mandelbrotmengen – wie zum hier betrachteten IFS – Selbstähnlichkeit zu beobachten ist. Auch für diese Mandelbrotmenge kann man zeigen, dass die Attraktoren A(λ ) und Teile der Mandelbrotmenge an gewissen Stellen ähnliche Strukturen aufweisen. Mehr hierzu in [2], Kapitel VIII. 4.3.8 Implementierung

Die Implementierung der Mandelbrotmenge ähnelt stark der der Juliamengen. Eine Möglichkeit sieht folgendermaßen aus:

99

4 Klassische Fraktale II

function Mandelbrot ( i t e r , p i x e l ) % MANDELBROT ( ITER , PIXEL ) draws t h e M a n d e l b r o t s e t ; % ITER g i v e s t h e number o f i t e r a t i o n s and % PIXEL i n d i c a t e s t h e number o f p o i n t s on t h e x−a x i s . % % r x y

decompose x− and y−a x i s a c c o r d i n g t o t h e c h o s e n proportion of r = 3:4. = 3/4; = linspace ( −2.5 ,1.5 , pixel ) ; = l i n s p a c e ( − 1 . 5 , 1 . 5 , round ( p i x e l ∗ r ) ) ’ ;

% create the matrix C containing all pixel % t o be a n a l y s e d . [ Re , Im ] = meshgrid ( x , y ) ; C = Re + i ∗ Im ; % % % B

The m a t r i x B a s s i g n s a number t o e v e r y p i x e l which i s c h a r a c t e r i s t i c with respect to the v e l o c i t y of divergence . T h e r e f o r e B and C h a v e t h e same d i m e n s i o n . = z e r o s ( round ( p i x e l ∗ r ) , p i x e l ) ;

Cn = B ; % C0 = 0+0 i for l = 1: i t e r Cn = Cn . ∗ Cn + C ; % p e r f o r m i n g t h e map B = B + ( abs ( Cn ) < 2 ) ; % i f | cn | > 2 t h e s e q u e n c e d i v e r g e s end ; % plot s ettings imagesc (B ) ; colormap ( j e t ) ; axis equal axis off

 Zuerst wird mit den Befehlen     und   eine Matrix erstellt, die alle Punkte enthält, die untersucht werden sollen.

Dann wird eine Matrix B auf Null initialisiert, in der später die Divergenzgeschwindigkeit stehen soll. Die nun folgende Schleife wird so oft ausgeführt, wie es der Eingabeparameter   vorgibt. In dieser Schleife wird die Abbildungsvorschrift ausgeführt und jedesmal geprüft, ob das aktuelle Folgenglied bereits ausserhalb des kritischen Radius liegt. Mit dem Befehl    wird das Ergebnis dieser Berechnungen visualisiert, indem die ge   ) auf das in der Matrix vorkommende Zahlenspektrum skaliert wählte Farbpalette (  wird.

100

4.4 Menger-Schwamm

4.4 Menger-Schwamm Der Menger-Schwamm ist die dreidimensionale Erweiterung des Sierpinski-Teppichs, der wiederum selbst die zweidimensionale Erweiterung der Cantor-Menge ist. 4.4.1 Die Cantor-Menge

Die Cantor-Menge lässt sich folgendermaßen definieren: C :=

∞ [

i=1

(

i

aj ∑ 3 j | a j ∈ {0; 2} j=1

)

Einfacher zu verstehen ist sie über ihre Iterationsvorschrift: Beginne mit dem Intervall [0, 1]. 1. Schneide aus jedem Intervall das mittlere Drittel heraus. 2. Wiederhole den vorigen Schritt.

Initiator

Generator

Die Dimension der Cantor-Menge bestimmt man folgendermaßen: Betrachte das Initiator-GeneratorBild. Man erkennt: • Der Verkürzungsfaktor beträgt 3. • Von diesen verkürzten Strichen gibt es zwei Stück. Damit beträgt die Dimension:

dim(C) =

ln 2 ln 3

≈ 0, 63093.

4.4.2 Der Sierpinski-Teppich

Der Sierpinski-Teppich ist über folgende Iterationsvorschrift definiert: 1. Betrachte das Einheitsquadrat [0, 1] 2 = [0, 1] × [0, 1]. 2. Teile es in 3 × 3 identische Teilquadrate auf. 3. Schneide das mittlere Quadrat heraus. 4. Wiederhole 2. und 3. für alle nun auftretenden Quadrate. In Bildern:

101

4 Klassische Fraktale II

Abbildung 4.49: Initiator und Generator für den Sierpinski-Teppich Es ergeben sich folgende weiteren Iterationsschritte:

Abbildung 4.50: Sierpinski-Teppich für n = 2, 3, 4

Abbildung 4.51: Sierpinski-Teppich für n = 5, 6 Die Dimension des Sierpinski-Teppichs bestimmt man folgendermaßen: Betrachte das InitiatorGenerator-Bild 4.49. Man erkennt: • Der Verkürzungsfaktor beträgt 3. • Von diesen verkleinerten Quadraten gibt es 8 Stück. Damit beträgt die Dimension:

102

dim(ST ) =

ln 8 ln 3

≈ 1, 8928.

4.4 Menger-Schwamm Obige Bilder wurden mit Hilfe eines MATLAB-Programmes erstellt. Dieses lautet wie folgt: function teppich ( n ) ; % TEPPICH (N ) draws t h e n−t h i t e r a t i o n o f t h e % Sier pinski carpet tic M = 0; % c r e a t e a m a t r i x M c o n s i s t i n g o f z e r o s and o n e s % indicating the points of the carpet for k =1: i M = [M, M, M; M, o n e s ( 3 ^ ( k − 1 ) ) , M; M, M, M] ; end % plot settings imagesc (M) ; colormap ( gray ) ; axis equal ; axis off ; toc

Zuerst wird die Ausgabematrix auf 0 initialisiert. Dann wird eine Schleife n mal (n = Iterationsstufe) durchlaufen. Hierin geschieht folgendes: Es wird eine neue Matrix erstellt, die 3 mal so hoch und breit ist wie die vorige. In dieser neuen Matrix soll die alte 8-mal drinstehen, also überall, nur nicht in der Mitte. Dort soll nichts stehen. Das Ergebnis nach n Schritten wird mit dem Befehl     visualisiert und in der mit     übergebenen Farbpalette eingefärbt. Da die Matrix nur 0 und 1 enthält, ergibt sich ein zweifarbiges Bild. Die Befehle      und    optimieren den optischen Eindruck. 4.4.3 Menger-Schwamm

Nun ist die Vorarbeit geleistet, und wir kommen zum Menger-Schwamm. Die Iterationsvorschrift lautet (analog zum Sierpinski-Teppich): 1. Betrachte den Einheitswürfel [0, 1] 3 = [0, 1] × [0, 1] × [0, 1]. 2. Teile ihn in 3 × 3 × 3 identische Teilwürfel auf. Dies ergibt 27 Teilwürfel. 3. Schneide aus jeder der sechs Würfelseiten den mittleren Teilwürfel heraus, genau wie den ganz in der Mitte befindlichen Teilwürfel. Insgesamt werden also 7 Stück entfernt. 4. Wiederhole 2. und 3. für alle nun auftretenden Würfel.

103

4 Klassische Fraktale II In Bildern:

Abbildung 4.52: Initiator und Generator für den Menger-Schwamm Es ergeben sich folgende weiteren Iterationsschritte:

Abbildung 4.53: Menger-Schwamm für n = 2, 3 Wählt man für die Würfelflächen einheitlich grau und beleuchtet das Ergebnis mit Hilfe des Befehls  , so entsteht Abbildung 4.54. Die Dimension des Menger-Schwamms bestimmt man folgendermaßen: Betrachte das InitiatorGenerator Bild 4.53. Man erkennt: • Der Verkürzungsfaktor beträgt 3. • Von diesen verkleinerten Würfeln bleiben 20 Stück übrig. Damit beträgt die Dimension:

dim(MS) =

ln 20 ln 3

≈ 2, 72683.

Obige Bilder wurden mit Hilfe eines MATLAB-Programmes erstellt. Dieses lautet wie folgt:

104

4.4 Menger-Schwamm

Abbildung 4.54: Menger-Schwamm in Großaufnahme f u n c t i o n menger ( n ) ; % MENGER(N ) draws t h e n−t h i t e r a t i o n o f t h e % Menger c u b e ( o r Menger s p o n g e ) % c a l c u l a t i o n o f a m a t r i x A c o n s i s t i n g o f z e r o s and o n e s % which i n d i c a t e s t h e ( non ) e x i s t e n c e o f s m a l l c u b e s % o f t h e s i z e 3^( − n ) . tic M = 0; for k =1:n A = z e r o s ( [ 3 ^ k , 3^ k , 3^ k ] ) ; A ( : , : , 1 : 3 ^ ( k −1)) = [M, M, M; M, o n e s ( s i z e (M) ) , M; M, M, M] ; A ( : , : , 3 ^ ( k − 1 ) + 1 : 2 ∗ 3 ^ ( k −1)) = . . . [M, o n e s ( s i z e (M) ) , M; o n e s ( s i z e (M) ) , o n e s ( s i z e (M) ) , o n e s ( s i z e (M) ) ; M, o n e s ( s i z e (M) ) , M] ;

105

4 Klassische Fraktale II A ( : , : , 2 ∗ 3 ^ ( k −1)+1:3^ k ) = [M, M, M; M, o n e s ( s i z e (M) ) , M; M, M, M] ; M = A; end % time used f o r t h e c a l c u l a t i o n o f M toc % t r a n s f o r m i n g t h e m a t r i x M i n t o a 3−D p i c t u r e tic hold on ; d = 1; % l o o p on a l l p o s s i b l e s m a l l c u b e s for i = 1:3^n for j = 1:3^n for k = 1:3^n % i s t h e r e a cube a t t h e c u r r e n t p o s i t i o n ? i f M( i , j , k ) == 0 cube ( i , j , k , d , n ) ; end end end end axis equal ; axis off ; hold o f f ; % time elapsed u n t i l the graphics are f i n i s h e d toc view ( 3 ) ; hold o f f ;

Die Idee ist die gleiche wie beim Programm    stellt.

  , welches einen Sierpinki-Teppich er-

Zuerst wird eine 1 × 1 × 1 - Matrix ( = Zahl) initialisiert: M = 0. Nun wird eine Matrix A erstellt, die die 3 × 3 × 3-fache Größe hat wie die vorherige. Im Implementierungstext ist dies im (k − 1). Schleifendurchlauf eine k × k × k-Matrix. Dann soll die vorige Matrix M mehrfach in die neue Matrix A geschrieben werden, und zwar so, wie es die Iterationsvorschrift verlangt: Von den vorhandenen 27 Plätzen werden nur diejenigen entlang der Kanten mit Matrizen M belegt. In der Implementierung wird dies dadurch realisiert, dass man die vorhandene k × k × k-Matrix in drei gleich große Teile aufspaltet und diese analog zum Sierpinski-Teppich belegt, jetzt aber mit neun 3k × 3k × 3k -Matrizen. Die Visualisierung ist nicht ganz so kurz wie beim Sierpinski Teppich. Doch die Idee ist schnell

106

4.4 Menger-Schwamm formuliert: Gehe durch alle Einträge der Matrix und setze entsprechend Würfelchen in das Ausgabebild oder eben nicht. Dieses „Würfel setzen“ wird in einer separaten Funktion durchgeführt, die hier den Namen    trägt. Die Parameter sind i, j, k und n, wobei die Variablen i, j und k die Position in der Matrix und damit die Stelle des zu zeichnenden Würfels darstellen. Die Variable n steht für die durchgeführte Iterationstiefe und wird benötigt, um die Seitenlänge der Würfelchen zu bestimmen. Die Funktion    wurde hier folgendermaßen implementiert: function cube ( i , j , k , d , n ) ; % % % % % %

Draws a s m a l l c u b e o f s i z e d where d i s t h e p r o p o r t i o n o f t h e s i z e o f t h e s m a l l cube t o t h e big cube . ( Hence d = 1 e q u a l s t h e ’ whole ’ c u b e . ) The s m a l l c u b e h a s co−o r d i n a t e s i , j , k . n indicates the le vel of i t e r a t i on .

% draws t h e f o l l o w i n g p a r t s o f t h e c u b e i n o r d e r : % f r o n t r i g h t , f r o n t l e f t , top , bottom , back l e f t , back r i g h t X = [0 0 0 0 0 1; . . . 1 0 1 1 1 1; . . . 1 0 1 1 1 1; . . . 0 0 0 0 0 1]; Y = [0 0 0 0 1 0; . . . 0 1 0 0 1 1; . . . 0 1 1 1 1 1; . . . 0 0 1 1 1 0]; Z = [0 0 1 0 0 0; . . . 0 0 1 0 0 0; . . . 1 1 1 0 1 1; . . . 1 1 1 0 1 1]; % t h e c o l o u r s c a l e s f o r each cube are g i v e n % w i t h i n t h e columns o f C C = [0.1 0.84 1.1 1.1 0.1 0.84 ; 0.2 0.86 1.2 1.2 0.2 0.86 ; 0.3 0.88 1.3 1.3 0.3 0.88 ; 0.4 0.90 1.4 1.4 0.4 0.90 ] ; % C = [ 0 . 5 0.5 0 . 5 ] c r e a t e s a gray cube % % X Y Z

c r e a t e s cube o f s i z e d with middle p o i n t ( i , j , k ) s h r u n k t o s i z e 3^( −n ) = ( d ∗ (X− 0 . 5 ) + i ) / 3 ^ n ; = ( d ∗ (Y− 0 . 5 ) + j ) / 3 ^ n ; = ( d ∗ ( Z− 0 . 5 ) + k ) / 3 ^ n ;

% draw c u b e f i l l 3 (X, Y, Z , C ) ;

107

4 Klassische Fraktale II Die übergebenen Parameter wurden oben beschrieben. Zentraler Befehl ist      . Damit zeichnet man Polygone und füllt diese mit der in C angegebenen Farbe. Hier wurde nach eingehender Beschäftigung mit diesem Befehl X, Y und Z so gewählt, dass sechs Quadrate (die sechs Würfelflächen) gezeichnet und diese mit Farbe ausgefüllt werden.     Die Befehle 

und  

im Programm     sind nötig, um alle Würfelchen in ein Bild gezeichnet zu bekommen.      und    runden das Erscheinungsbild ab.

108

5 Newton-Verfahren im Komplexen von Chen Zuo Zusammenfassung: Um die Nullstelle einer Funktion zu bestimmen, führen wir das Newton-Verfahren ein. Das Ergebnis und die Laufzeit des Verfahrens hängt von den Startwert ab. Im Komplexen lassen sich die Konvergenzbereiche und Konvergenzgeschwindigkeit des Newton-Verfahrens in interessanter Weise visualisieren.

5.1 Allgemeines Newton-Verfahren Wozu braucht man das Newton-Verfahren? Die Nullstellen einer Funktion sind meistens interessant für die Eigenschaften der Funktion; durch Umformungen kann man so außerdem auch das Fixpunkt-Problem lösen. Für einfache Funktionen sind die Nullstellen leicht zu finden. Aber in der Praxis sind die meisten Funktionen kompliziert, z.B. nichtlineare oder implizite Funktionen. In diesem Fall benutzen wir das Newton-Verfahren: Eine Zahlenfolge, die durch die Nullstelle der Tangente diser Funktion aufgebaut wird, und die die Nullstelle der Funktion annähert. 5.1.1 Linearisierung

Um eine Nullstelle zu bestimmen, möchten wir eine komplizierte Funktion vereinfachen, indem wir sie in eine lineare Gleichung umschreiben. Mit einer Taylorentwicklung können wir das realisieren. Definition 5.1 (Linearisierung). Wir brechen die Taylorentwicklung nach dem zweiten Glied ab und vernachlässigen auch das Restglied o(khk). Die Voraussetzung der Taylorentwicklung ist, dass unsere Funktion n-mal stetig differenzierbar sein muss (wenn wir bis zum n-ten Glied entwicklen wollen). g einmal stetig differenzierbar



g(x + h) = g(x) + g 0 (x)h + o(khk)

für h → 0

Jetzt vernachlässigen wir den Term o(||h||), damit wir eine lineare Gleichung bekommen, und setzen g(x + h) = 0. Wir erhalten: 0 = g(x) + g0 (x)h h ist Korrektur für x. Nun formulieren wir eine Folge x k mit der Korrektur hk . 0 = g(xk ) + g0 (xk )hk



hk = −

g(xk ) g0 (xk )

Wir erhalten also das folgende Verfahren:

109

5 Newton-Verfahren im Komplexen Satz 5.1 (Newton-Verfahren). xk+1 = xk + hk = xk −

g(xk ) g0 (xk )

Hier muss natürlich g0 (xk ) 6= 0 gelten, sonst bricht das Verfahren wegen einer Division durch Null ab. Für diesen Fall müssen wir einen anderen Startwert wählen.

5.1.2 Konvergenzbeweis für eine Beispielfunktion

Im folgenden zeigen wir für die Beispielfunktion f (x) = x 2 − a, dass das Newton-Verfahren wirklich gegen die gesuchte Nullstelle konvergiert. xn+1 = xn −

x2n − a f (xn ) = x − n f 0 (xn ) 2xn a xn = xn − + 2 2xn µ ¶ 1 a = xn + 2 xn

Für n → ∞ sind xn , xn+1 , x∗ gleich, deswegen gilt: ∗

x = lim xn n→∞

µ ¶ a 1 xn + = lim xn+1 = lim n→∞ n→∞ 2 xn ³ ´ a 1 x∗ + ∗ ⇒ x∗ = 2 x a ∗ ⇒ x = ∗ x ∗2 ⇒ x =a ⇒ x∗ ist Nullstelle!

Der größte Vorteil des Newton-Verfahrens besteht in der quadratischen Konvergenz: Unter bestimmten Voraussetzungen verdoppelt sich die Anzahl der richtigen Stellen pro Iterationsschritt. Somit ist diese Art der Näherung sehr schnell. Das Newton-Verfahren erreicht diese quadratische Konvergenz allerdings nur, wenn die Gleichungen bestimmte Eigenschaften erfüllen. Ist nämlich die die gesuchte Nullstelle von gerader Ordnung oder liegen zwei Nullstellen sehr nahe beieinander, konvergiert das Verfahren sehr langsam. Auch wenn die Steigung im Bereich der Nullstelle sehr klein ist, wird die quadratische Konvergenz oft nicht erreicht. In diesem Fall muss man die Zwischenwerte für f (x n ) und f 0 (xn ) mit sehr hoher Genauigkeit berechnen, um einen akzeptablen Wert für x n+1 zu erhalten.

110

5.1 Allgemeines Newton-Verfahren 5.1.3 Divergenz

Aber das Newton-Verfahren funktioniert nicht immer. Wir können sehen, dass die durch das Newton-Verfahren aufgebaute Folge von dem Startwert abhängig ist. Wenn wir ein ungeeingneter Startwert wählen, kann es sein, dass das Newton-Verfahren nicht konvergiert. Es gibt drei Fälle, in denen das Newton-Verfahren nicht das gewünschte Ergebnis liefert: 1. Das Verfahren trifft auf einen Extremwert. In diesem Fall ist f 0 (x) = 0. Da man durch Null nicht teilen darf, bricht das Verfahren ab.

Abbildung 5.1: Newton-Verfahren: Verhalten für f 0 (x) = 0 2. Die Iterationsfolge pendelt zyklisch zwischen einer Reihe von Werten.

Abbildung 5.2: Newton-Verfahren: Verhalten bei zylischem Pendeln 3. Das Verfahren nähert sich nicht an die Nullstelle an, sondern entfernt sich (siehe Abbildung 5.3). 5.1.4 Ausblick auf andere Verfahren

Wenn das Newton-Verfahren nicht funktioniert bzw. nur sehr langsam konvergiert, können wir noch andere Verfahren benutzen. Und zwar besitzt jedes der folgenden Verfahren Vorteile; in manchen Situation sind sie sogar besser als das Newton-Verfahren.

111

5 Newton-Verfahren im Komplexen

Abbildung 5.3: Newton-Verfahren: Verhalten bei wachsendem Abstand von der Nullstelle • Muller-Verfahren: Im Unterschied zum Newton-Verfahren ist die Muller-Methode in der Lage, komplexe Nullstellen einer gegebenen Funktion f zu berechnen; selbst in dem Fall, wenn von einem reellen Anfangsdatum gestartet wird. Darüber hinaus ist die Konvergenz fast quadratisch. Gegeben sind die Werte x(0) , x(1) , x(2) . Der neue Punkt x(3) wird durch die Gleichung p2 (x3 ) = 0 bestimmt, wobei p2 ∈ P2 das eindeutig bestimmte Polynom ist, das f in den Punkten x(i) , i = 0, 1, 2 interpoliert; d. h. es gilt p2 (x(i) ) = f (x(i) )

für i = 0, 1, 2.

Deshalb gilt: p2 (x) = f (x(2) ) + (x − x(2) ) f [x(2) , x(1) ] + (x − x(2) )(x − x(1) ) f [x(2) , x(1) , x(0) ] wobei f [ξ , η ] =

f (η ) − f ( ξ ) , η −ξ

f [ξ , η , τ ] =

f [η , τ ] − f [ξ , η ] τ −ξ

die dividierten Differenzen der Ordnung 1 und 2 verbunden mit den Punkten ξ ,η und τ sind. Analog berechnen wir x(4) ausgehend von x(1) , x(2) , x(3) usw.. • Dekker-Brent-Verfahren: Sei b die letzte Iterierte und die beste Approximation an Null. Sei a die vorherige Iteriete und c die vorherige oder eine ältere Iterierte. Sei ε eine vorgegebene Toleranz (Maschinengenauigkeit). Überprüfe zunächst, ob f (b) = 0 ist. Ist dies der Fall, so bricht der Algorithmus ab und gibt b als die Näherung der Nullstelle von f zurück. Andernfalls werden folgende Schritte ausgeführt: 1. Ist f (b) · f (c) > 0, setze c = a, d = b − a und e = d.

2. Ist | f (c)| < | f (b)|, führe den Austausch a = b, b = c und c = a durch.

112

5.1 Allgemeines Newton-Verfahren 3. Setze

c−b . 2 Wenn |m| ≤ δ oder f (b) = 0 gilt, so bricht der Algorithmus ab und gibt b als Nährung der Nullstelle von f zurück.

δ = 2ε · max{|b|, 1}

und

m=

4. Wähle Bisektion oder Interpolation: a) Ist |e| < δ oder | f (a)| ≤ | f (b)| , so wird ein Bisektionsschritt durchgeführt, d.h. d = m und e = m gesetzt; andernfalls wird der Interpolationsschritt ausgeführt. b) Ist a = c, führe eine lineare Interpolation aus, d. h. berechne die Nullstelle der Graden durch die Punkte (b, f (b)) und (c, f (c)) als eine Korrektur δ b zum Punkte b. Dies läuft auf einen Schritt des Sekantenverfahrens auf einem Intervall hinaus, das b und c als Endpunkte hat. c) Ist a 6= c, führe eine inverse quadratische Interpolation aus, d.h. konstruiere das Polynom zweiten Grades in y, das die Punkte ( f (a), a) , ( f (b), b) und ( f (c), c) interpoliert, und dessen Wert in y = 0 als eine Korrektur δ b zum Punkte b berechnet wird. Beachte, dass zu diesem Zeitpunkt die Werte f (a), f (b) und f (c) voneinander verschieden sind, wobei | f (a)| > | f (b)|, f (b) f (c) < 0 und a 6= c gilt. Dann überprüft der Algorithmus, ob der Punkt b + δ b akzeptiert werden kann. Dies ist eine ziemlich technische Angelegenheit, aber sie läuft im wesentlichen darauf hinaus, festzustellen, ob der Punkt innerhalb des aktuellen Intervalls und nicht zu dicht an den Endpunkten liegt. Dies garantiert, dass die Länge des Intervalls sich um einen großen Faktor verringert, wenn die Funktion sich gut verhält. Wird der Punkt akzeptiert, so wird e = d und d = δ b gesetzt, d. h. die Interpolation wird tatsächlich ausgeführt; andernfalls wird ein Bisektionsschritt durch Setzen von d = m und e = m durchgeführt. 5. Der Algorithmus aktualisiert nun die laufende Iterierte: Setze a = b; wenn |d| > δ gilt, setze b = b + d; andernfalls korrigiere b = b + δ · sign(m) und kehre zum 1. Schritt zurück. • Techniken für mehrfache Nullstellen:

Hier helfen uns die Quotienten λ der Zuwächse von aufeinanderfolgenden Iterierten:

λ (k) =

x(k) − x(k−1) x(k−1) − x(k−2)

Diese Information kann auch zur Abschätzung der Vielfachheit einer Nullstelle einer nichtlinearen Gleichung verwendet werden und liefert damit ein Werkzeug für die Modifikation des Newton-Verfahrens zur Wiederherstellung ihrer quadratischen Konvergenz. Definieren wir die Folgen m(k) durch die Beziehung

λ (k) = 1 −

1 m(k)

113

5 Newton-Verfahren im Komplexen und rufen uns 0 φNewton( α) = 1 −

1 m

in Erinnerung, so folgt: m(k) → m für k → ∞. Ist die Vielfachheit m a-priori bekannt, so ist es sehr zweckmäßig, dieses modifizierte Newton-Verfahren zu verwenden. Anderenfalls kann das folgende adaptive NewtonVerfahren verwendet werden: x(k+1) = x(k) − m(k)

f (x(k) ) f 0 (x(k) )

für

k ≥ 2,

wobei

m(k) =

1 1−λk

5.1.5 Konvergenz

Wir wissen, dass das Newton-Verfahren nicht immer konvergiert. Dann stellen sich die wesentlichen Fragen: Wie wählen wir den Startwert, damit das Verfahren funktioniert? Existiert ein solcher Startwert überhaupt? Dazu führen wir den folgenden Satz ein: Theorem 5.2 (Konvergenz des Newton-Verfahrens). Die Funktion f ∈ C 2 ([a, b]) habe in Inneren des Intervalls [a, b] eine Nullstelle Z. Außerdem seien ¯ ¯ ¯ ¯ m := min ¯ f 0 (x)¯ und M := max ¯ f 00 (x)¯ . a≤x≤b

a≤x≤b

Gegeben ein p > 0, so dass gilt:

M ·p 60 ◦ bekommt man negative Werte. Dieses Verhalten kann damit erklärt werden, dass der Reproduktionsfaktor s in den Fällen für α > 60◦ Werte annimmt, die größer als 1 sind.

130

6.3 Implementierung in MATLAB

6.3 Implementierung in MATLAB Die grundlegenden Ideen bei der Implementierung sind zum einen der rekursive Ansatz und zum anderen, nur die Quadrate zu zeichnen, womit sich die Dreiecke implizit ergeben. Ausschlaggebend für die Laufzeit ist die Idee, während der Ausführung zuerst alle Koordinaten anzusammeln und diese am Schluss mit einem einzigen   -Befehl darzustellen. Ein früherer Versuch, bei dem die neu enstandenen Quadrate immer sofort mit   ausgegeben wurden, war inakzeptabel langsam. E C 6 ¡@ @ ¡ @ ¡ @ hy @¡ @ ¡ µ ¡ ¡ @ ¡X ¡ @ ¡ ¾ ¡ @B D hx ¡ @ ¡ @ ¡ @ ¡ @ ¡ @ ¡ @ ¡ @ @¡ A I @ @Y @

Abbildung 6.16: Berechnung der neuen Punkte Die Implementierung besteht aus drei Funktionen und einem Skript, mit dem das Ganze aufgerufen wird. Die Dateien befinden sich am Ende des Dokuments. Dem Hauptskript      werden beim Aufruf vier Parameter übergeben: Die Tiefe des Baums, die beiden Winkel α und β sowie ein Flag   , das festlegt, ob das Dreieck gedreht werden soll.

Nach Start des Skripts wird einmalig die Funktion       aufgerufen, die aus den beiden Winkeln die Faktoren X und Y (vgl. Abb. 6.16) berechnet, die später immer wieder zur Berechnung der neuen Dreieckspitzen benutzt werden. Danach startet der eigentliche Kern des Programms, die Funktion      , in der die rekursive Ansammlung der Koordinaten erledigt wird. Sie erhält als Parameter die Tiefe, das Flag zum Drehen der Dreiecke, die berechneten Faktoren X und Y sowie zwei Startpunkte bezüglich derer die neuen Koordinaten berechnet werden. Die Funktion hat als Rückgabewerte die zwei Startpunkte plus die beiden Punkte, die mit den Startpunkten ein Quadrat ergeben. Zur Berechnung der Punkte C und D werden die beiden Richtungen hx und hy benutzt. Für die Punkte A und B aus Abb. 6.16 würde die Funktion also A, B,C und D zurückliefern 1 . Innerhalb der Funktion     wird mit Hilfe der Funktion      , die X und Y verwendet 2 , die Spitze E des Dreiecks berechnet, die wiederum als Startpunkt für den nächsten rekursiven 1 Tatsächlich

liefert sie einen Vektor, der aus A, B,C, D und A besteht, da später ein komplettes Quadrat gezeichnet werden soll. 2 Die Tiefe wird auch noch mit übergeben, damit entschieden werden kann, ob das Dreieck in einem bestimmten Schritt zu drehen ist oder nicht.

131

6 Pythagoräische Bäume Aufruf benutzt wird. i f ~ ( n == 0 ) [ ex , ey ] = v e r t e x ( cx , cy , dx , dy , X, Y, f l i p , n ) ; % top edge o f t h e t r i a n g l e [ r s ] = p t r e e ( n −1 ,[ dx ; ex ] , [ dy ; ey ] , X, Y, f l i p ) ; % l e f t subtree [ t u ] = p t r e e ( n −1 ,[ ex ; cx ] , [ ey ; cy ] , X, Y, f l i p ) ; % right subtree x = [ x ; r ; t ; ] ; % c o l l e c t new x−co−o r d i n a t e s y = [ y ; s ; u ; ] ; % c o l l e c t new y−co−o r d i n a t e s end

Der Codeausschnitt zeigt den rekursiven Aufruf innerhalb von     . Zur einfachen Verdeutlichung des Prinzips kann man sich das Quadrat aus Abb. 6.16 um 45◦ nach rechts gekippt vorstellen und dann je ein neues Quadrat über den Schenkeln DE und EC.

6.4 MATLAB-Dateien 6.4.1 pythtree.m f u n c t i o n p y t h t r e e ( n , a l p h a , beta , f l i p ) % % % % %

PYTHTREE( N , ALPHA , BETA , FLIP ) c o n s t r u c t s t h e n−t h i t e r a t i o n o f t h e so−c a l l e d P y t h a g o r a e i c t r e e , a f r a c t a l s t r u c t u r e c o n s i s t i n g o f s q u a r e s and t r i a n g l e s . The t r i a n g l e s h a v e t h e a n g l e s a l p h a and b e t a , and i f f l i p = 1 , then t h e t r i a n g l e i s f l i p p e d over i n each i t e r a t i o n .

tic [X, Y] = f a c t o r s ( a l p h a , b e t a ) ; [ x y ] = p t r e e ( n , [ 0 ; 1 ] , [ 0 ; 1 ] , X, Y, f l i p ) ; p l o t ( x ’ , y ’ , ’ k−’ ) ; axis equal a x i s on toc

6.4.2 vertex.m f u n c t i o n [ ex ey ] = v e r t e x ( cx , cy , dx , dy , X, Y, f l i p , d e p t h ) % [ EX , EY ] = VERTEX ( CX , CY , DX , DY , X , Y , FLIP , DEPTH) c a l c u l a t e s t h e % co−o r d i n a t e s o f t h e t o p e d g e o f t h e t r i a n g l e s % in the Pythagoraeic tree . i f ( f l i p & ~ ( mod ( d e p t h , 2 ) == 0 ) ) % f l i p the t r i a n g l e over every second time

132

6.4 MATLAB-Dateien

else

ex = dx + (1−X) ∗ ( cx−dx ) + Y∗ ( dy−cy ) ; ey = dy + (1−X) ∗ ( cy−dy ) + Y∗ ( cx−dx ) ; ex = dx + X∗ ( cx−dx ) + Y∗ ( dy−cy ) ; ey = dy + X∗ ( cy−dy ) + Y∗ ( cx−dx ) ;

end

6.4.3 factors.m f u n c t i o n [ Cx , Cy ] = f a c t o r s ( a l p h a , b e t a ) % [CX , CY ] = FACTORS ( ALPHA , BETA ) c a l c u l a t e s t h e l e n g t h o f t h e % s i d e s g and h i n t h e f o l l o w i n g t r i a n g l e : % % % % % % % % % % % %

A = (0|0) B = (1|0) we assume c = 1 C / \ g / \ h / \ / \ A−−−−−−−−−B c l i n e g : y = mg∗ x l i n e h : y = mh∗ x+d

% a l p h a and b e t a a r e t h e a n g l e s a t A and B r e s p e c t i v e l y . mg = t a n ( a l p h a / 1 8 0 ∗ p i ) ; mh = t a n ((180 − b e t a ) / 1 8 0 ∗ p i ) ; d = −mh ; Cx= d / ( mg−mh ) ; Cy= mg∗Cx ;

6.4.4 ptree.m f u n c t i o n [ x y ] = p t r e e ( n , p1 , p2 , X, Y, f l i p ) % % % % % %

PTREE (N , P1 , P2 , X , Y , FLIP ) r e c u r s i v e l y c o n s t r u c t s t h e P y t h a g o r a e i c t r e e , where n i s t h e number o f i t e r a t i o n s , p1 and p2 a r e t h e co−o r d i n a t e s o f t h e b a s i s p o i n t s ( t h e b o t t o m s i d e o f t h e b a s i c s q u a r e ) , X and Y a r e t h e l e n g t h s o f t h e s i d e s o f t h e t r i a n g l e , and f l i p i n d i c a t e s whether t h e t r i a n g l e i s f l i p p e d over a t each i t e r a t i o n .

ax = p1 ( 1 , : ) ;

133

6 Pythagoräische Bäume

ay bx by hx hy cx cy dx dy

= = = = = = = = =

p2 ( 1 , : ) ; p1 ( 2 , : ) ; p2 ( 2 , : ) ; ay − by ; bx − ax ; bx+hx ; by+hy ; ax+hx ; ay+hy ;

% draw t h e t r e e s u c h t h a t t h e l a s t o b j e c t s a r e t r i a n g l e s % [ ex , e y ] = v e r t e x ( cx , cy , dx , dy , X , Y , f l i p , n ) ; % top edge o f t h e t r i a n g l e % x = [ ax bx c x e x dx ax dx c x ] ; % y = [ ay by c y e y dy ay dy c y ] ; x = [ ax bx cx dx ax ] ; y = [ ay by cy dy ay ] ; i f ~ ( n == 0 ) [ ex , ey ] = v e r t e x ( cx , cy , dx , dy , X, Y, f l i p , n ) ; % top edge o f t h e t r i a n g l e [ r s ] = p t r e e ( n −1 ,[ dx ; ex ] , [ dy ; ey ] , X, Y, f l i p ) ; % l e f t subtree [ t u ] = p t r e e ( n −1 ,[ ex ; cx ] , [ ey ; cy ] , X, Y, f l i p ) ; % right subtree x = [ x ; r ; t ; ] ; % c o l l e c t new x−co−o r d i n a t e s y = [ y ; s ; u ; ] ; % c o l l e c t new y−co−o r d i n a t e s end

134

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen von Markus Hablizel Zusammenfassung: Dieses Dokument beschäftigt sich mit der Selbstähnlichkeit der stetigen, nirgends differenzierbaren Funktionen und der Dimension der Graphen dieser Funktionen. Insbesondere wird eine explizite Formel für die Box-Counting-Dimension des Graphen angegeben, mit der man diese Dimension ohne aufwändige Rechnung erhalten kann.

7.1 Die Takagi-Funktion Die Takagi-Funktion ist eine überall stetige, nirgends differenzierbare Funktion. Sie wurde von dem japanischen Mathematiker Teiji Takagi (1875-1960) im Jahre 1903 erfunden. 7.1.1 Definition und Eigenschaften:

Sei

ψ : R → R, ψ (x) := min (x − bxc, dxe − x) die Funktion, die den Abstand von x zur nächsten ganzen Zahl angibt. 0.5 0.4 0.3 0.2 0.1 0 −1.5

−1

−0.5

0

0.5

1

1.5

Abbildung 7.1: Die Abstandsfunktion ψ Eigenschaften: • ψ (x) ≤

1 2

∀x∈R

• ψ (x + 1) = ψ (x)

(1-periodisch)

• ψ ist linear in den Intervallen [z, z + 12 ] und [z + 12 , z]

ψ ist stetig, da an den „Schnittstellen“ der Funktionswert jeweils übereinstimmt.

135

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen Definition 7.1 (Takagi-Funktion).

ψk (x) :=

n

1 ψ (2k x) 2k

Tn (x) :=

und

∑ ψk (x).

k=0

Die Takagi-Funktion wird dann durch T : R → R,

T (x) := lim Tn (x) n→∞

definiert. 0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 −1.5

−1

−0.5

0

0.5

1

1.5

Abbildung 7.2: T0 , T1 , T2 , T3

7.1.2 Überall stetig

Satz 7.1. T ist auf ganz R stetig. Beweis: Die Summe konvergiert gleichmäßig, denn: ¯ ¯ ¯ ∞ ¯ ¯ ¯ kT − Tn k∞ = sup {¯ ∑ Tk (x)¯ : x ∈ R} ¯k=n+1 ¯ ∞

≤ sup {



k=n+1 ∞

|Tk (x)| : x ∈ R}

¯ ¯ 1 ¯¯ 1 ¯¯ ≤ sup { ∑ k · ¯ ¯ : x ∈ R} 2 k=n+1 2 ∞

=



k=n+1



da ∑

k=0

1

2k+1

< ε 1 2k+1

konvergiert.

Damit ist T als gleichmäßiger Grenzwert stetiger Funktionen selbst stetig.

136

¤

7.1 Die Takagi-Funktion 7.1.3 Nirgends differenzierbar

Satz 7.2. T ist an keiner Stelle x ∈ R differenzierbar. Beweis: durch Widerspruch: Wir nehmen an, T sei differenzierbar in x, d. h. zu x ∈ R existiert lim

h→0

T (x + h) − T (x) . h

Äquivalent formuliert: Für jede Nullfolge h n existiert der Grenzwert T (x + hn ) − T (x) . n→∞ hn lim

Wir definieren uns nun eine spezielle Nullfolge, für die obiger Grenzwert zu x ∈ R nicht existiert: Zu jedem n ∈ N wählen wir 1 hn := ± · 2−n . 2 Das ± wählen wir so, dass ψn zwischen x und x + hn linear ist (dies ist möglich, da ψn die Periode 2−n hat und zwischen den oben erläuterten Stellen linear ist). Damit ist dann auch ψ k für k < n linear zwischen x und x + hn . Für k ≤ n ist also

ψk (x + hn ) − ψk (x) = ±1. hn Für k > n ist hn eine Periode der ψk , also ist

ψk (x + hn ) − ψk (x) = 0. hn Daraus folgt für den Differenzenquotienten von T mit der Nullfolge h n : n n T (x + hn ) − T (x) ψk (x + hn ) − ψk (x) =∑ = ∑ ±1 hn hn k=0 k=0

Das sind abwechselnd ungerade und gerade Zahlen, je nach Anzahl der Summanden. Insbesondere existiert n

lim

n→∞

∑ ±1

k=0

nicht. Folglich ist T für kein x ∈ R differenzierbar.

¤

137

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 −1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Abbildung 7.3: Hineinzoomen in die Takagi-Funktion

7.1.4 Selbstähnlichkeit bzw. Symmetrie

Die Erzeugende (s. Abbildung 7.1) ist bezüglich jeder Parallelen zur y-Achse durch einen beliebigen Punkt z oder z + 12 (z ∈ Z) spiegelsymmetrisch. Diese Symmetrie überträgt sich dann in natürlicher Weise auf die ψk . Es kommt noch zusätzlich hinzu, dass die Takagi-Funktion (und ihrer Approximierenden Tn ) selbstähnlich sind; das bedeutet: Zoomt man z. B. in den schwarz markierten Bereich hinein und skaliert die Achsen richtig, dann findet man die Takagi-Funktion unverändert vor. Definition 7.2 (Selbstähnlichkeit einer Funktion). Man schränkt die Betrachtung hierzu auf endliche Intervalle ein. Dann heißt eine Funktion selbstähnlich, wenn sich eine affine Abbildung finden läßt, die den Graphen über dem Intervall auf einen Teil des Graphen abbildet. Die affine Abbildung darf hierbei keine Rotation sein bzw. enthalten (da sonst im allgemeinen das Bild keine Funktion mehr ist). Diese Korrespondenz des Graphen über einem Intervall läßt sich auch bei der Takagi-Funktion finden; es sei GT,[0,1] := {(x, T (x))| x ∈ [0, 1]} der Graph von T über dem Intervall [0, 1]. Weiter seien die affinen Abbildungen Φ 1 , Φ2 definiert durch ¶ µ 1 1 1 1 , x+ , y+ Φ1 : R2 → R2 , Φ1 (x, y) := 4 4 4 2 Φ2 : R → R , 2

138

2

Φ2 (x, y) :=

µ

¶ 1 1 1 1 x+ , y+ . 4 2 4 2



7.2 Die Funktionenklasse ∑ an ψ (bn x + φn ) n=0

Dadurch ist ein Zusammenhang zwischen G T,[0,1] und GT,[ 1 , 1 ] sowie zwischen GT,[0,1] und 4 2 GT,[ 1 , 3 ] hergestellt: 2 4

Φ1

GT,[0,1] ←→ GT,[ 1 , 1 ] : 4 2

Φ2

GT,[0,1] ←→ GT,[ 1 , 3 ] : 2 4

Φ1

(x, T (x)) ←→ Φ2

(x, T (x)) ←→

Denn es gilt für Φ1 : x ∈ [0, 1] T

µ

1 1 x+ 4 4



= = = = =

µ

1 1 1 1 x+ , y+ 4 4 4 2 1 1 1 1 x+ , y+ 4 2 4 2

¶ ¶

· ¸ 1 1 1 1 x+ ∈ , 4 4 4 2

´ ³ x 2k 2 + 2k−2 2 k=0 µ ¶ µ ¶ ∞ ´ x 1 x 1 1 1 ³ + + ψ + ψ + ∑ k ψ 2k−2 x + 2k−2 4 4 2 2 2 k=2 2 µ ¶ µ ¶ ´ 1 1 ∞ 1 ³ x 1 x 1 ψ + ψ + ∑ k ψ 2k x + 2 k + + 4 4 2 2 2 4 k=0 2 µ ¶ µ ¶ x 1 x 1 1 1 + + ψ + ψ + T (x) 4 4 2 2 2 4 1 1 T (x) + 4 2 1 1 y+ (Periodizität von ψ ) 4 2 ∞

=



µ

1

∑ 2k ψ

Analog für Φ2 . Diese Schritte lassen sich nun immer wieder erneut ausführen. Damit erhalten wir folgenden Zusammenhang: GT,[0,1] ↔ GT,Φ([0,1]) mit Φ := °Ni=1 Φµi = Φµ1 ◦ Φµ2 ◦ ... ◦ ΦµN ,

µi ∈ {1, 2}

D. h. die ganze Feinstruktur, die der Graph von T aufweist, findet sich in verkleinerter Form in ihm wieder. ∞

7.2 Die Funktionenklasse ∑ an ψ (bn x + φn ) n=0

Jetzt wollen wir an Stelle der Faktoren 12 und 2 bei der Takagi-Funktion positive reelle Parameter a, b und die dazugehörige Funktionenklasse betrachten. Zusätzlich wird noch eine beliebige Phasenverschiebung zugelassen.

139

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen 7.2.1 Lipschitz- und Zuwachsklassen:

Definition 7.3 (Lipschitz-Klasse). Eine Funktion f gehört zur Lipschitz-Klasse der Ordnung α (Lip(α )), wenn eine Konstante C existiert, so dass folgendes gilt: k f (x) − f (y)k ≤ C · |x − y|α

(für |x − y| ≤ 1)

(auch genannt: Hölder-Stetigkeit zum Exponenten α ). Definition 7.4 (Zuwachs-Klasse). Eine Funktion f gehört zur Zuwachs-Klasse der Ordnung α (Inc(α )), wenn eine Konstante c > 0 existiert, so dass folgendes gilt: ∀x ∈ R ∀h ∈ (0, 1) ∃ t ∈ (x, x + h) :

| f (t) − f (x)| > c · h α

Diese Klassen lassen sich grafisch folgendermaßen veranschaulichen:

Abbildung 7.4: „Lipschitz-Schlauch“ / „Inkrement-Schlauch“ Die Hölderstetigkeit sagt aus, dass sich die Differenz | f (x + h) − f (x)| über die Größe der Differenz |x − y| abschätzen läßt, sorgt also für eine Stetigkeit der Funktion (die Funktionswerte bleiben im „Lipschitz-Schlauch“). Die Zuwachsklassen-Bedingung wirkt dagegen: Sie besagt, dass man immer mindestens einen Funktionswert zwischen x und x + h finden kann, der nicht im „Inkrement-Schlauch“ liegt. (Diese Bedingung ist der Grund für die Nicht-Differenzierbarkeit der Funktionen in Inc(α ), α ∈ (0, 1), wie wir gleich sehen werden). 7.2.2 Nirgends differenzierbar

In [1] wird der Beweis für folgende Aussage gegeben:

140



7.2 Die Funktionenklasse ∑ an ψ (bn x + φn ) n=0

Satz 7.3. Wenn a, b ∈ R, 0 < a < 1, ab > 1 und ψ die Abstandsfunktion (wie oben definiert) ist, dann ist ∞

∑ an ψ (bn x + φn ) ∈ Lip(α ) ∩ Inc(α )

mit

n=0

α := −

ln a ∈ (0, 1), ln b

wobei φn eine beliebige Folge von Phasenverschiebungen sein darf. Daraus folgt dann, dass die Funktion ∞



n=0

n=0

∑ an ψ (bn x + φn ) = ∑ b−nα ψ (bn x + φn )

in jedem Punkt x keine Ableitung besitzt. Denn für α ∈ (0, 1) und f ∈ Inc(α ) existiert für ein gegebenes x ∈ R eine Folge xn → x, so dass gilt: xn > x

und

| f (xn ) − f (x)| > c · |xn − x|α

Also sind die Differenzenquotienten f (xn ) − f (x) xn − x unbeschränkt, konvergieren demnach nicht. Dieses Ergebnis lässt sich zwar nicht auf die Takagi-Funktion anwenden, da bei dieser ab =

1 ·2 = 1 2

ist. Trotzdem ist sie, wie wir im ersten Abschnitt gesehen haben, nicht differenzierbar, da n T (x + hn ) − T (x) = lim ∑ ±1 n→∞ n→∞ hn k=0

lim

nicht existiert. Dies ist aber eine andere Art der Divergenz als jene, die gerade eben bewiesen wurde, denn dort divergiert der Grenzwert bestimmt gegen ∞, (da α ∈ (0, 1)): ¯ ¯ ¯ f (xn ) − f (x) ¯ 1 ¯ ¯ ¯ xn − x ¯ > c · |xn − x|1−α . 141

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen 7.2.3 Beispiele

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 −1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1



Abbildung 7.5: Beispiel 1: ∑ 2−0.9·n ψ (2n x) n=0

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 −1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1



Abbildung 7.6: Beispiel 2: ∑ 2−0.7·n ψ (2n x) n=0

1.4

1.2

1

0.8

0.6

0.4

0.2

0 −1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4



0.6

0.8

1

Abbildung 7.7: Beispiel 3: ∑ 2−0.5·n ψ (2n x) n=0

142

7.3 Box-Counting-Dimension dieser Funktionenklasse

4.5

4

3.5

3

2.5

2

1.5

1

0.5

0 −1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1



Abbildung 7.8: Beispiel 4: ∑ 2−0.1·n ψ (2n x) n=0

7.3 Box-Counting-Dimension dieser Funktionenklasse 7.3.1 Erläuterungen

In [15] wird der Beweis für folgende Aussage gegeben: Satz 7.4. Wenn f auf [0, 1] definiert ist, α ∈ (0, 1) und f ∈ Lip(α ) ∩ Inc(α ), dann ist die BoxCounting-Dimension des Graphen D = 2 − α. Folgerung: Dies bedeutet, dass man die Box-Counting-Dimension des Graphen von ∞

f (x) =

∑ an ψ (bn x + φn ) =

n=0



∑ b−nα ψ (bn x + φn )

mit

0 < a < 1, ab > 1

n=0

a lediglich mit Hilfe der Parameter a und b berechnen kann (über α = − ln ln b ). Es gilt dann:

dimB Graph( f ) = 2 +

ln a ln b

7.3.2 Anwendung auf obige Beispiele

In den Beispielen ergibt sich: ∞

1. dimB Graph( ∑ 2−0.9·n ψ (2n x)) = 2 − 0.9 = 1.1 n=0 ∞

2. dimB Graph( ∑ 2−0.7·n ψ (2n x)) = 2 − 0.7 = 1.3 n=0 ∞

3. dimB Graph( ∑ 2−0.5·n ψ (2n x)) = 2 − 0.5 = 1.5 n=0

143

7 Selbstähnlichkeit in stetigen, nirgends differenzierbaren Funktionen ∞

4. dimB Graph( ∑ 2−0.1·n ψ (2n x)) = 2 − 0.1 = 1.9 n=0

Der optische Eindruck der Graphen bestätigt diese Ergebnisse.

7.4 MATLAB-Quellcodes 7.4.1 nondiff.m f u n c t i o n n o n d i f f ( a , b , n , xmin , xmax , f h a n d l e ) % NONDIFF( A , B , XMIN , XMAX, FHANDLE , N ) draws t h e r e s u l t o f t h e % n−t h p a r t i a l sum o f t h e f u n c t i o n s a ^ i ∗ f ( b ^ i ∗ x ) . % % % %

I f a < 1 and a∗b > 1 , and f i s n o t d i f f e r e n t i a b l e i n some p o i n t x ( a s t h e e x a m p l e i n d i s t Z . m) , t h e n t h e l i m i t o f t h e i n f i n i t e sum i s a f u n c t i o n t h a t i s c o n t i n u o u s e v e r y w h e r e b u t nowhere d i f f e r e n t i a b l e .

% [ xmin , xmax ] g i v e t h e l i m i t s f o r t h e p l o t , f h a n d l e s h o u l d be % a s c r i p t f i l e o f a f u n c t i o n ( f . e x . f h a n d l e = @distZ ) . x = l i n s p a c e ( xmin , xmax , 1 0 0 0 ) ; y = 0.0∗x ; for i = 0: n y = y + ( a ^ i ) . ∗ f e v a l ( fhandle , ( b^ i ) . ∗ x ) ; end p l o t ( x , y , ’− ’ ) ; x l i m ( [ xmin xmax ] ) ;

7.4.2 distZ.m function y = distZ ( arg ) % Y = DISTZ (ARG) c a l c u l a t e s t h e d i s t a n c e o f any r e a l number % to the nearest integer . y = min ( a r g−f l o o r ( a r g ) , c e i l ( a r g )− a r g ) ;

144

8 Zufallszahlen-Generatoren von Kerstin Albrecht und Markus Schrade A random sequence is a vague notion [. . . ] in which each term is unpredictable to the uninitiated and whose digits pass a certain number of tests traditional with statisticians [. . . ]. Prof. D. H. Lehmer

8.1 Motivation Wozu benötigt man Zufallszahlen? In den letzten Jahren, seit sich Computer immer mehr verbreiten, wird auch das Internet zu einem immer wichtigeren Kommunikationsmittel. Dabei gilt es die Sicherheit von Daten zu gewährleisten. Dies stellt neue Ansprüche an die Kryptographie, in der die Zufallszahlen einen wichtigen Teil zur Verschlüsselung von Daten beitragen. Zufallszahlen werden auch zur Erstellung digitaler Signaturen verwendet. Außerdem werden sie für Rechnersimulationen, die Fehlersuche in Computerprogrammen und Rauschgeneratoren benötigt.

8.2 Zufallszahlen 8.2.1 Was ist eine Zufallszahl?

Der Wert einer Zufallsvariablen innerhalb eines Zufallsexperiments wird Zufallszahl genannt. Dabei ist zu beachten, dass die jeweiligen Ergebnisse absolut unabhängig von vorhergegangenen Ergebnissen sind. In der Informatik ist es oft uninteressant, ob eine einzelne Zahl zufällig ist; meist sind Folgen von Zahlen entscheidend. Deshalb wird, wie auch im Folgenden, oft eine Folge von Zufallszahlen betrachtet. Dabei ist es wichtig, dass das Auftreten einer Ziffer an jeder Position gleich wahrscheinlich ist und dass, auch bei Kenntnis der vorangehenden Folge, die nächsten Ziffern nicht vorhersagbar sind. Diese Forderungen führen zu den drei wichtigen Eigenschaften von Zufallszahlen: 1. Zufallszahlen sind über ein gewünschtes Intervall I gleichverteilt. 2. Die Zufallszahlenfolge ist nicht vorhersagbar.

145

8 Zufallszahlen-Generatoren 3. Zufallszahlen sind nicht reproduzierbar. Zusätzlich wird oft gefordert, dass die Zufallszahlen in dem Intervall I = [0, 1] liegen. 8.2.2 Erzeugung von Zufallszahlen

Zufallszahlen bzw. Folgen aus Zufallszahlen können auf verschiedene Weisen erzeugt werden. Viele der manuellen Experimente, wie z. B. der Münzwurf, werden auch im Alltag verwendet. Dabei wird zum Beispiel Kopf als „1“ oder „ja“, Zahl als „0“ oder „nein“ definiert. Eine Methode, um mehr verschiedene Ergebnisse zu erzielen, ist der Würfel. Hierbei spielt die Gleichmäßigkeit für die Wahrscheinlichkeit der Ergebnisse eine entscheidende Rolle. Bei diesen Methoden ist es ein großer Vorteil, dass die Experimente, zumindest theoretisch, unendlich oft wiederholt werden können und die Länge einer Folge von Zufallszahlen somit unendlich sein kann. Wie aber in der Motivation schon erwähnt, sind Zufallszahlen heute vor allem im Gebrauch mit Computern wichtig. Sie sollen also auch von Computern selbst generiert werden. Um in dem  Programm MATLAB eine Zufallszahl zu erhalten, wird der Befehl   benutzt. Das Bemerkenswerte ist hier aber, dass die Zufallszahlen nach jedem Neustart des Programms die gleichen sind. Die Erste ist jeweils 0,9501, dann folgen: 0,2311; 0,6068; 0,4860; . . . Diese Tatsache widerspricht aber der obigen Forderung der Unvorhersagbarkeit. Deshalb stellt sich die Frage, ob es sich hier überhaupt noch um Zufall handelt. Der Grund für dieses Phänomen liegt darin, dass Computer deterministische Geräte sind. Sie geben für eine bestimmte Eingabe also immer die gleiche Ausgabe aus. Damit sind die Ausgaben aber vorhersagbar und es kann nicht mehr von Zufall gesprochen werden. Dies führt zu dem Begriff der Pseudozufallszahlen. 8.2.3 Pseudozufallszahlen

Pseudozufallszahlen sind Zufallszahlen, die durch einen deterministischen Algorithmus erzeugt werden. Also nach dem Prinzip „gleiche Eingabe → gleiche Ausgabe“. Sie gleichen statistisch gesehen aber den echten Zufallszahlen.

8.3 Zufallszahlen-Generatoren Zunächst zwei allgemeine Definitionen: Definition 8.1 (Zufallszahlen-Generator). Ein Zufallszahlen-Generator erzeugt eine Sequenz statistisch unabhängiger und gleichverteilter Ausgaben. Definition 8.2 (Pseudozufallszahlen-Generator). Ein Pseudozufallszahlen-Generator ist ein deterministischer Algorithmus, der nach Eingabe echt zufälliger Startwerte („seed“) eine Ausgabe berechnet, die statistisch gesehen echten Zufallszahlen gleicht. Im Weiteren werden speziell die Pseudozufallszahlen-Generatoren besprochen.

146

8.3 Zufallszahlen-Generatoren 8.3.1 Formale Definition: Pseudozufallszahlen-Generator

Definition 8.3 (Pseudozufallszahlen-Generator (formal)). Ein Pseudozufallszahlen-Generator ist als Quintupel definiert: G = (S, T, O, g, s0 ) Dabei sind S und O endliche Mengen, T : S → S und g : S → O Abbildungen; s 0 ist der Startwert. S heißt Zustandsraum, O Ausgaberaum, T Übergangsfunktion und g Ausgabefunktion des Generators G. Die Pseudozufallszahlen werden folgendermaßen berechnet: • Wähle den Startwert s0 . • Berechne die Übergangsfolge (sn ) durch Iteration der Übergangsfunktion sn = Tn (s0 ),

mit

n ≥ 0.

• Berechne die Folge (xn ) durch Einsetzen der Werte aus der Übergangsfunktion xn = g(sn ),

mit

n ≥ 0.

Die Elemente der Folge (xn ) heißen dann Pseudozufallszahlen des Generators G. 8.3.2 Beispiele verschiedener Zufallszahlengeneratoren

1. Middle-Square-Methode: Die Middle-Square-Methode zu Berechnung von Pseudozufallszahlen wurde 1946 von John von Neumann eingeführt. Diese ist aber, wie sich im Folgenden zeigen wird, kein „guter“ Generator. Die Zahlen werden wie folgt berechnet: • n sei die Anzahl der Ziffern der gewünschten Zahl. • Wähle Startwert s0 mit n Ziffern.

• Berechne Folge (si ):

– x = s2i . – s(i + 1): mittlere n Ziffern der Zahl x. – i = i + 1.

Zur Veranschaulichung hierzu nun ein konkretes Beispiel für n = 4: • s0 = 8441

• s20 = 71250481 • s1 = 2504

147

8 Zufallszahlen-Generatoren Somit ergibt sich die Folge: 8441, 2504, 2700, 2900, 4100, 8100, 6100, 2100, 4100, . . . . In diesem Beispiel ist der Nachteil dieser Methode erkennbar: Es entstehen Zyklen. Durch diese so genannte Degenerierung werden die Periodenlängen sehr kurz und die Abfolge ist somit leicht vorhersagbar. 2. Linearer Kongruenzgenerator: Der Lineare Kongruenzgenerator (engl.: „linear congruential generator“, kurz: „LCG“) wurde von Professor Derrik Henry Lehmer (1867–1938) entwickelt. Dieser Generator ist die Basis für viele der heutigen Generatoren und wird deshalb im Folgenden näher vorgestellt. Die Ausgangswerte sind drei ganzzahlige, beliebige, aber feste Parameter a (Multiplikator), b (Inkrement) und m (Modul). Der Starwert x 0 (engl.: seed) wird beliebig gewählt. Alle Werte werden in die zugehörige Vorschrift xn+1 = (axn + c)

mod m

eingesetzt und somit die Folge berechnet. Auch hierzu ein Beispiel: • a = 13, c = 0, m = 31, x0 = 1;

also heißt die Vorschrift hier: xn+1 = 13xn

mod 31

und es ergibt sich die Folge: 1, 13, 14, 27, 10, 6, 16, 22, 7, 29, 5, 3, . . . In diesem Fall ergibt sich eine Permutation der Zahlen 1 bis m − 1 und deshalb wird die maximale Periodenlänge erreicht. Aber im nächsten Beispiel wird sich zeigen, dass die Güte der Pseudozufallszahlen-Folge entscheidend von der Wahl der Parameter abhängt: • a = 4, c = 2, m = 8, x0 = 5;

also heißt die Vorschrift: xn+1 = 4x+ 2

mod 8

und es ergibt sich die Folge: 5, 6, 2, 2, 2, . . . • a = 4, c = 2, m = 8, x0 = 4;

also heißt die Vorschrift: xn+1 = 4xn + 2 mod 8

und es ergibt sich die Folge: 4, 2, 2, 2, . . . Wird der LCG als Quintupel definiert, sieht dies so aus:

148

8.3 Zufallszahlen-Generatoren • G = (S, T, O, g, s0 ) – S : Zm = {0, 1, 2, . . . , m − 1} – O : o ∈ [0, 1[ – T : Ts = as + c mod m – G : g(s) = ms – s0 ∈ Zm beliebig, aber fest. Für den Linearen Kongruenzgenerator, der allgemein mit LCG(m, a, b, s 0 ) abgekürzt wird, sind einige Einschränkungen zu beachten: 0 pc gilt, „lebenswichtig“. Im ersten Fall liegen die Bäume relativ verstreut zueinander und dadurch werden bei einem Brand nur wenige Bäume abbrennen, während im anderen Fall durch hohe Dichte des Waldes nahezu alle Bäume abbrennen werden. Natürlich stellt sich hier die Frage, was an einem so besonderen Punkt wie p = p c geschieht. Doch zuerst wollen wir unser Modell ein wenig näher definieren: Die Bäume sollen auf einer quadratischen Grundfläche mit einem Zufallfaktor p verteilt werden; das Feuer soll am linken Rand gelegt werden und darf sich nur in diskreten Schritten ausbreiten. Ferner sollen pro Schritt nur die „nächsten Nachbarn“ angesteckt werden, d. h. die Bäume rechts, links, über und unter einem brenndenden Baum fangen selbst an zu brennen.

5 10 15 20 25 30 35 40 45 50 5

10

15

20

25

30

35

40

45

50

Abbildung 9.10: Beispiel für einen brennenden Wald Ergebnisse

Es stellt sich an dieser Stelle nun die Frage, wie lange solch ein Feuer bei einer gegebenen Wahrscheinlichkeitsverteilung brennt. Sind die Bäme spärlich vorhanden (p ist klein), dann wird das Feuer wohl nicht lange brennen. Auf der anderen Seite wird das Feuer bei einem dichten

165

9 Randomisierung deterministischer Fraktale Bewuchs ebenfalls recht schnell wieder ausgehen, da zwar sehr viele Bäume verbrennen, das Feuer sich aber nahezu ungehindert ausbreiten kann. Es muss also eine dazwischen liegende Wahrscheinlichkeit geben, an der das Feuer am längsten dauert. Die Auswertung von Dauer n, Wahrscheinlichkeit p und Seitenlänge L des Quadrates ergibt folgende Graphik:

Abbildung 9.11: Zusammenhang zwischen n, p und L – [44] Es lässt sich recht gut ein Scheitelpunkt nahe der Wahrscheinlichkeit p = 0, 6 erkennen. Vergrößert man die Kantenlänge L dabei, so fällt auf, dass die Amplitude des Scheitelpunktes schneller wächst als L, was bedeutet, dass es eine Singularität bei p ≈ 0, 5928 gibt. Dieser Punkt ist die schon bekannte Perkolations-Schwelle p c . Diese Eigenschaft erlaubt es, eine enge Verbindung zwischen diesem ersten großen Cluster und der Dauer des Feuers herzustellen. Hierfür müssen noch ein paar Vorbereitungen getroffen werden: Sei M(L) die Anzahl der Bäume im größten Cluster bei einer gegebenen Seitenlänge L. p L (p) sei die Wahrscheinlichkeit, dass sich ein zufällig herausgegriffener Baum im Cluster befindet. Für größer werdende Quadrate verschwindet die Abhängigkeit von L, d. h. wir erreichen ein Limit: P∞ (p) = lim PL (p) L→∞

Es folgt einfach, dass für niedrige Werte von p die Wahrscheinlichkeit PL (p) relativ gering ist und für L → ∞ sogar gegen null geht. Aber es gibt einen kritischen Wert, nämlich die Perkolations-Schwelle, ab der PL (p) bzw. P∞ (p) sehr schnell ansteigt. Mit anderen Worten: Für p > pc ist das erste große Cluster (mit L → ∞) unendlich groß und kommt den Seiten des Quadrates recht nahe. Für p < p c ist die Wahrscheinlichkeit, dass ein zufällig herausgegriffener Ort zum Cluster gehört, verschwindend gering. Mit p > p c bzw. p

166

9.5 Perkolation nahe pc gilt für P∞ (p): P∞ (p) ∝ (p − pc )β

mit

β=

5 36

Abbildung 9.12: Wahrscheinlichkeit, dass ein Baum innerhalb des größten Clusters liegt – [44] Die Graphik zeigt die Wahrscheinlichkeit, dass ein Baum im großen Cluster ist, und damit die Wahrscheinlichkeit, dass er vom Feuer erfasst wird. Implementierung

f u n c t i o n t r e e ( n , w) % % % % %

TREE ( N ,W) s i m u l a t e s a n∗n f o r e s t w i t h s m a l l g r e e n t r e e s . The p r o b a b i l i t y t h a t a g i v e n p i x e l i s a t r e e i s 0.5+w . The f i r s t column o f t h e t r e e s i s s e t on f i r e and t h e f i r e l i g h t s an a d j a c e n t t r e e a s w e l l i f t h e r e i s one . The s i m u l a t i o n s t o p s a f t e r t h e r e a r e no more b u r n i n g t r e e s .

B = round ( rand ( n )+w ) ; % i gnit i ng the f i r e for k = 1: n i f B( k , 1 ) == 1 B( k , 1 ) = 0 . 5 ; end end % print tree

167

9 Randomisierung deterministischer Fraktale

imagesc (B ) ; l o a d map ; colormap ( map ) ; pause Zaehler = 1; while Zaehler > 0 Zaehler = 0; F = B; % remove b u r n i n g t r e e s for z = 1: n for s = 1: n i f B ( z , s ) == 0 . 5 B( z , s ) = 0 ; end end end % s e t new t r e e s on f i r e for z = 1: n for s = 1: n % is it a tree? i f B ( z , s ) == 1 % a t r e e in the middle i f ( z > 1) & ( z < n ) & ( s > 1) & ( s < n ) % i s there a burning tree next to i t ? i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z , s +1) == 0 . 5 ) | . . . ( F ( z +1 , s ) == 0 . 5 ) | ( F ( z , s −1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % the t r e e in the l e f t bottom corner e l s e i f ( z == 1 ) & ( s == 1 ) i f ( F ( z , s +1) == 0 . 5 ) | ( F ( z +1 , s ) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % a t r e e on t h e l e f t e d g e e l s e i f ( z == 1 ) & ( s ~= 1 ) & ( s < n ) i f ( F ( z , s +1) == 0 . 5 ) | ( F ( z +1 , s ) == 0 . 5 ) | . . . ( F ( z , s −1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % t h e t r e e i n t h e upper l e f t corner e l s e i f ( z == 1 ) & ( s == n ) i f ( F ( z +1 , s ) == 0 . 5 ) | ( F ( z , s −1) == 0 . 5 ) B( z , s ) = 0 . 5 ;

168

9.5 Perkolation

Zaehler = Zaehler +1; end % a t r e e on t h e u p p e r e d g e e l s e i f ( z < n ) & ( z ~= 1 ) & ( s == n ) i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z +1 , s ) == 0 . 5 ) | . . . ( F ( z , s −1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % t h e t r e e i n t h e upper r i g h t corner e l s e i f ( z == n ) & ( s == n ) i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z , s −1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % a t r e e on t h e l e f t e d g e e l s e i f ( z == n ) & ( s ~= n ) & ( s > 1 ) i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z , s +1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % the t r e e in the r i g h t bottom corner e l s e i f ( z == n ) & ( s == 1 ) i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z , s +1) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end % a t r e e on t h e b o t t o m e d g e e l s e i f ( z < n ) & ( z ~= 1 ) & ( s == 1 ) i f ( F ( z −1 , s ) == 0 . 5 ) | ( F ( z , s +1) == 0 . 5 ) | . . . ( F ( z +1 , s ) == 0 . 5 ) B( z , s ) = 0 . 5 ; Zaehler = Zaehler +1; end end end end end % print the current f or es t imagesc (B ) ; l o a d map ; colormap ( map ) ; pause ( 0 . 2 ) ; end

Wir haben eine eigene Colormap für diese Funktionen definiert: Diese ordnet jedem Eintrag der Matrix B eine Farbe zu. Hierzu haben wir die Colormap so eingestellt, dass sie bei 0 weiß, bei

169

9 Randomisierung deterministischer Fraktale 0,5 rot und bei 1 grün ist. Da in B nur diese drei Zahlen vorkommen, werden auch nur diese drei Farben ausgegeben. Die vielen Fälle waren notwendig, da wir ausschließen wollten, dass unsere Funktion die Matrix verlässt und so das System zum Absturz bringt. 9.5.3 Korrelationslänge ξ

Definition 9.3 (Korrelationslänge). ξ sei die durchschnittliche Entfernung zwischen zwei Seiten eines Clusters. Die Korrelationslänge ξ ist eine wichtige charakteristische Größe, welche unter anderem bei numerischen Simulationen von Bedeutung ist. Wenn p sich p c von unten annähert, wächst ξ unbegrenzt. Dieses Wachstum kann nun wiederum durch folgendes Gesetz beschrieben werden:

ξ ∝ |p − pc |−v

mit

v=

4 3

für ein zweidim. Gitter

Für L < ξ haben alle Cluster eine fraktale Gestalt und die gleiche Dimension. Nur für L À ξ kann ermittelt werden, dass die Cluster tatsächlich endlich sind und die Dimension null (für p < pc ) haben. 9.5.4 Folgerungen

Für p > pc gilt: P∞ (p) > 0



Cluster hat das Maß L2 .

Für p < pc gilt: Die Größe ist proportional zu LD , mit D < 2. Das impliziert eine fraktale Struktur des ersten großen Clusters genau dann, wenn p = p c . Die fraktale Dimension kann in diesem Fall ebenfalls gemessen werden; sie lautet: D ≈ 1, 89. Für den Fall, dass p < pc gilt, beträgt die maximale Clustergröße log(L). Weiter ist wichtig, dass pc abhängig vom zugrunde liegenden Gitter ist. Beim obigen Beispiel mit den Waldbränden wurde ein Quadrat als Gitter gewählt; wenn nun statt dessen als Grundfläche ein Dreieck verwendet wird, ändert sich p c dementsprechend wieder. Größen wie die Korrelationslänge ξ oder die fraktale Dimension D sind jedoch konsistent bezüglich eines solchen Gitterwechsels. Folglich haben Werte wie ξ , ν und D einen universalen Charakter. Ansonsten gelten beim Dreieck genau dieselben Definitionen für M(L), PL (p) und P∞ (p) wie beim Quadrat auch. Erste numerische Schätzungen in den sechziger Jahren des letzten Jahrhunderts ergaben, dass die Perkolations-Schwelle bei ca. 0,5 liegen muss. Es brauchte dann noch weitere 20 Jahre bis zu einem vollständigen mathematischen Beweis, der belegt, dass p c = 0, 5. Außerdem wurde gezeigt, dass die fraktale Dimension des ersten großen Perkolationsclusters 91 ≈ 1, 896 ist. D = 48

170

9.6 Zusammenfassung Die fraktale Dimension kann auch aus einem log-log-Diagramm ermittelt werden, in dem man die Clustergröße über der Gitterkonstanten L aufträgt. Die Steigung der Näherungsgeraden be91 stätigt den theoretischen Wert D = 48 .

Abbildung 9.13: Clustergröße vs. Gitterkonstante – [44]

9.6 Zusammenfassung Abschließend lässt sich somit sagen, dass die Randomisierung klassischer Fraktale einen ersten Schritt darstellt, die Realität zu beschreiben. Außerdem fällt die Bedeutung der PerkolationsSchwelle pc durch deren besondere Eigenschaften auf. So ist das erste große Cluster bei dieser Wahrscheinlichkeit bei unendlicher Ausdehnung des Gitters ein Fraktal mit eigener Dimension. Um dies anschaulich zu machen, kann man auch sagen, dass die Wahrscheinlichkeit, dass ein Baum in einem theoretischen Wald als Gitter Feuer fangen wird, mit p = p c rapide ansteigt.

171

10 Irrfahrten und ihre Auswirkungen von Stefanie Schetter und Fabian Hantsch Zusammenfassung: Der vorliegende Text soll in das mathematische Modell der Irrfahrt einführen. Zudem werden Verbindungen zu anderen Themen aufgezeigt und unter dem Standpunkt der Irrfahrt näher beleuchtet.

10.1 Irrfahrten 10.1.1 Einleitung

In diesem Proseminarvortrag geht es um das mathematische Modell der Irrfahrt. Was wollen wir also im Folgenden grundsätzlich darunter verstehen? Wir bezeichnen als Irrfahrt die Bewegung eines „Teilchens“ in einem zugrundeliegenden Raum. Offensichtlich ist diese Definition nicht gerade konkret, jedoch ermöglicht sie, wie wir in zahlreichen Anwendungsgebieten der Irrfahrt feststellen werden, eine universelle Nutzbarkeit. 10.1.2 Die eindimensionale symmetrische Irrfahrt

In diesem Abschnitt befassen wir uns mit dem Prinzip der eindimensionalen symmetrischen Irrfahrt, dem wohl einfachsten Beispiel einer Irrfahrt. In der eindimensionalen symmetrischen Irrfahrt betrachten wir ein Teilchen im Verlauf der Zeit, das nur einen Freiheitsgrad zur Verfügung hat. Konkret: In jedem Schritt (entspricht einem ZeitSchritt) bewegt sich das Teilchen zufällig eine feste Streckenlänge in einem Raum, der nur Bewegungen in zwei Richtungen zulässt. Dabei soll die neue Bewegungsrichtung unabhängig von der bisherigen Bewegung sein. Beispiel 10.1. Man wirft eine Münze und bewegt sich je nach Ergebnis um einen Schritt nach links oder rechts. Die eindimensionale symmetrische Irrfahrt wird auch Pólya-Irrfahrt genannt. Der ungarische Mathematiker Georg Pólya (1887-1985) beschäftigte sich zu Beginn des 20. Jahrhunderts mit der Irrfahrt und formulierte grundlegend wichtige Theoreme (siehe Satz 10.1). Zur Veranschaulichung der eindimensionalen Irrfahrt haben wir das MATLAB-Programm     geschrieben. Hier wird die eindimensionale symmetrische Irrfahrt simuliert, indem die Position eines Teilchens über der Schrittzahl in ein Schaubild eingetragen wird. Zudem wird die

173

10 Irrfahrten und ihre Auswirkungen „Besuchswahrscheinlichkeit“ grafisch dadurch veranschaulicht, dass die Anzahl der Besuche für ein vorgegebenes Intervall an x-Werten aufgetragen wird. Es sei hier erwähnt, dass sich die Kurve der Verteilung in der eindimensionalen symmetrischen Irrfahrt an eine Gaußsche Glockenkurve annähert. Das hängt damit zusammen, dass diese Irrfahrt normalverteilt ist. In den folgenden Bildern ist in der linken Spalte die eindimensionale symmetrische Irrfahrt für die Schrittzahlen 10, 100, 1000 und eine Million abgebildet. Rechts sieht man die zugehörige Verteilung. 10 9 8 7 6 5 4 3 2 1 0 −2

−1.5

−1

−0.5

0

0.5

1

1.5

2

Abbildung 10.1: eindimensionale symmetrische Irrfahrt mit 10 Schritten

100 90 80 70 60 50 40 30 20 10 0

−8

−6

−4

−2

0

2

4

Abbildung 10.2: eindimensionale symmetrische Irrfahrt mit 100 Schritten

1000 900 800 700 600 500 400 300 200 100 0 −15

−10

−5

0

5

10

15

20

Abbildung 10.3: eindimensionale symmetrische Irrfahrt mit 1000 Schritten

174

10.1 Irrfahrten

Abbildung 10.4: eindimensionale symmetrische Irrfahrt mit einer Million Schritten 10.1.3 Die mehrdimensionale Irrfahrt

Die mehrdimensionale Irrfahrt wird auch, nach dem englischen Wort für Zufallsbewegung, „random walk“ genannt. Generell betrachtet man die mehrdimensionale Irrfahrt in Räumen mit euklidischen Dimensionen (n = 1, 2, 3, . . . ). In solch einem Raum befindet sich ein Teilchen, welches sich von einem Ort zu einem anderen bewegt. Dabei vergisst es immer wieder, wo es herkam und wie großder letzte Schritt war; d. h. die Schritte, die es hintereinander ausführt, sind voneinander unabhängig. Im Folgenden betrachten wir die unterschiedlichen Bewegungen der Teilchen in Räumen der Dimension n = 2, 3, . . . . Die einfache symmetrische zweidimensionale Irrfahrt Prinzip

Abbildung 10.5: Darstellung der zweidimensionalen symmetrischen Irrfahrt – [50] Man betrachtet zunächst ein quadratisches, einfaches (Schrittlänge konstant), symmetrisches (an jedem Punkt hat man die gleiche Anzahl von Möglichkeiten, seine Richtung zu wählen) Gitter, welches unendlich groß ist.

175

10 Irrfahrten und ihre Auswirkungen Ein Teilchen in einem Punkt hat hier nur vier mögliche Richtungen, in die es sich um einen Schritt vorbewegen kann: Rechts, links, oben oder unten. D. h. es hat vier verschiedene Winkel zur Auswahl, um die es drehen kann, um dann genau einen Schritt mit konstanter Schrittlänge zu laufen. Diese Richtung wird zufällig gewählt, unabhängig vom Ort, woher es kam. Man kann sagen, dass die neue Schrittwahl abhängig von der momentanen Lage (Gegenwart), aber unabhängig von den bereits besuchten Plätzen (Vergangenheit) ist. Beobachtungen

Bei der einfachen symmetrischen Irrfahrt kommt das Teilchen mit einer Wahrscheinlichkeit von 100 % wieder zu seinem Anfangspunkt zurück. Der Beweis geht zu sehr in die Wahrscheinlichkeitstheorie und wurde aus diesem Grund hier nicht abgedruckt. Diese Irrfahrten werden auch als rekurrente Irrfahrten bezeichnet (siehe Definition 10.1). Man kann beobachten, dass 43 % der Pfade grösser als 100 Schritte, 32 % grösser als 1.000 und 27 % grösser als 10.000 Schritte sein müssen, um wieder den Anfangspunkt zu erreichen. Addiert man die Anzahl auf, wie oft ein Teilchen an einem bestimmten Punkt war, so erhält man nach einer sehr großen Anzahl von Schritten eine Gauß-Verteilung um den Startpunkt (siehe Abschnitt 10.1.2). Beispiele

1 0.5 0 −0.5 −1 −1.5 −2 −2.5 −3 0

1

2

3

4

5

6

Abbildung 10.6: Zweidimensionale symmetrische Irrfahrt mit 50 Schritten

0

−5

−10

−15

−20

−25

−30

−25

−20

−15

−10

−5

0

5

Abbildung 10.7: Zweidimensionale symmetrische Irrfahrt mit 1000 Schritten

176

10.1 Irrfahrten

0

30 20 10

−50

0 −10 −20

−100 −30 −40 −50 −150 −40

−20

0

20

40

60

−120

−100

−80

−60

−40

−20

0

20

40

60

Abbildung 10.8: Zweidimensionale symmetrische Irrfahrt mit jeweils 10000 Schritten Rekurrenz

Definition 10.1 (Rekurrenz). Eine Irrfahrt heißt rekurrent, wenn sie sicher, d. h. mit Wahrscheinlichkeit 1 wieder zum Startpunkt zurückkehrt. Georg Pólya, einer der Pioniere der Irrfahrt, formulierte folgenden Satz: Satz 10.1. Bei der Irrfahrt auf einem unendlichen Gitter in einer oder zwei Dimensionen kommt man sicher wieder zum Startpunkt zurück. Wir werden Pólyas Satz im Eindimensionalen beweisen. Beweis: Zunächst einige Überlegungen: • Wir betrachten Pfade, die in der Null starten, d. h. es reicht, den positiven Teil der Zahlengerade zu betrachten. • Um zur 0 zurückzukehren, muss man bei 1 (bzw. -1) vorbeikommen. • Vor der ersten Rückkehr nach 0 kann man einmal, zweimal, . . . bei 1 (bzw. -1) vorbeikommen. • Nach 1 geht man mit P =

1 2

zu 0 bzw. 2.

Schreiben wir nun R ∈ [0, 1] für die Wahrscheinlichkeit, auf irgendeinem Pfad von 1 zu 0 zu gehen, dann ist klarerweise die Wahrscheinlichkeit, auf irgendeinem Pfad von 2 zu 1 zu gehen, auch R. Betrachte nun den Wahrscheinlichkeitsbaum in Abbildung 10.9 mit eingetragenen Wahrscheinlichkeiten.

177

10 Irrfahrten und ihre Auswirkungen 1 2© © 0;

0

©©

1H

HH 1 H 2

W=

1 2 1 2© © 0;

2

© R Rückkehr© zu 1 H

HH 1 H 2

W=

2

R

¡ 1 ¢2 2

R 1 2© © 0;

© Rückkehr© zu 1 HH H ··· 1H

W=

¡ 1 ¢3 2

R2

2

Abbildung 10.9: Schema für die Bestimmung von R – [50] Aufsummieren der Pfade, die zur Null führen, ergibt: R

= = = = = ⇐⇒

µ ¶2 µ ¶3 1 1 1 + R+ R2 + · · · 2 2 2 ! Ã µ ¶2 1 1 1 2 R + ··· 1+ R+ 2 2 2 µ ¶ 1 ∞ R i ∑ 2 2 i=0 1 1 2 1 − R2 1 2−R R(2 − R) = 1 ⇐⇒ (R − 1)2 = 0

⇐⇒

R = 1.

Also ist die Wahrscheinlichkeit dafür, dass der Pfad irgendwann wieder zur Null führt, gleich eins, d. h. die eindimensionale Irrfahrt ist rekurrent. ¤ Beispiele von Irrfahrten mit der Dimension n ≥ 2

Man hat verschiedene Möglichkeiten, Einfluss auf die zweidimensionalen Irrfahrten zu nehmen, die z. B. von den folgenden Faktoren abhängig ist: • Gitterstruktur/Dimension • Vorlieben der Teilchen • Selbstbeeinflussende Irrfahrten Diese Komponenten, auf die wir im weiteren eingehen werden, kann man modifizieren und jeweils verschiedene Ergebnisse notieren.

178

10.1 Irrfahrten

Gitterstruktur/Dimension

Man kann die Teilchenbewegungen in unterschiedlichen euklidischen Dimensionen, z.B. 2, 3, . . . betrachten. Dabei ändert sich die Wahrscheinlichkeit dafür, dass ein Teilchen wieder an seinem Anfangspunkt vorbeikommt. Hierauf wird im folgenden bei einigen Beispielen eingegangen. Man kann auch die Gitterstruktur verändern, auf welchem sich das Teilchen bewegen soll. Es kann unterschiedliche Richtungen einschlagen. Auch in diesem Fall kann sich die Wahl des Gitters auf die Wahrscheinlichkeit auswirken, dass das Teilchen wieder an seinen Anfangspunkt zurückkehrt. Dieser Aspekt soll ebenfalls in den folgenden Beispielen erläutert werden. Beispiel 10.2 (Bienenwaben). Nun wird ein Gitter mit der Struktur von Bienenwaben, d. h. regelmäßigen Sechsecken betrachtet. Dieses ist zweidimensional, unendlich und symmetrisch aufgebaut. Hier hat das Teilchen in einem Punkt immer drei Möglichkeiten einen Winkel, d. h. eine Richtung zu wählen. Die Schrittlänge ist konstant.

Abbildung 10.10: Irrfahrt auf Sechseck-Gitter – [50] Die Wahrscheinlichkeit, wieder an den Startpunkt zurückzukehren, liegt in diesem Beispiel bei 100 %, allerdings geht dies prozentual mit weniger Schritten als bei dem quadratischen Gitter. Beispiel 10.3 (Dreiecke). Wir betrachten Dreiecke auf einem zweidimensionalen, unendlichen Gitter, die symmetrisch angeordnet sind. In jedem Punkt hat das Teilchen die Möglichkeit, aus sechs verschiedenen Winkeln zu wählen; es stehen dem Teilchen also sechs verschiedene Richtungen zur Auswahl, die es einschlagen kann (siehe Abbildung 10.11). Das Teilchen macht immer Schritte konstanter Länge. Das Teilchen kehrt mit einer Wahrscheinlichkeit von 100 % wieder an seinen Startpunkt zurück. Die Wege sind im allgemeinen länger als bei einem quadratischen Gitter, da immer zwischen sechs verschiedenen Richtungen gewählt werden kann, im Gegensatz zu vier möglichen Richtungen. Beispiel 10.4 (Würfel). Nun betrachten wir ein dreidimensionales Gitter, welches aus einzelnen Würfeln zu einem großen unendlichen symmetrischen Würfel zusammengebaut wurde (vgl.

179

10 Irrfahrten und ihre Auswirkungen

Abbildung 10.11: Irrfahrt auf Dreiecksgitter – [50] Abbildung 10.12). In jedem Punkt bestehen nun sechs Möglichkeiten, in unterschiedliche Richtungen zu laufen (hoch, runter, links, rechts, hinten, vorne). Das Teilchen bewegt sich auch hier wieder mit einer konstanten Schrittlänge.

Abbildung 10.12: dreidimensionale Irrfahrt auf Würfelgitter – [50] Allerdings ist die Wahrscheinlichkeit, dass es wieder an seinen Anfangspunkt zurückkehrt, nur noch 34 %. Es bewegt sich nun in drei Dimensionen, was die Wahrscheinlichkeit verringert, dass es wieder am Ausgangspunkt vorbeikommt. Unsymmetrische Irrfahrten

Wir befinden uns in einer beliebigen euklidischen Dimension. Nun geben wir dem Teilchen kein bestimmtes Gitter als Grundlage. Es kann also in eine beliebige Richtung laufen; d. h. die Winkel, die es einschlägt, sind beliebig. Auch die Schrittlänge bleibt völlig frei. Per Zufall bewegt sich das Teilchen nun in der Ebene. Dies wird als unsymmetrische Irrfahrt bezeichnet, da keine symmetrischen Grundstrukturen vorgegeben sind. Egal in welcher Dimension sich das Teilchen nun bewegt, die Wahrscheinlichkeit, dass es wieder

180

10.1 Irrfahrten am Startpunkt vorbeikommt, liegt bei 0 %. Die unsymmetrische Irrfahrt zeigt Ähnlichkeiten mit einer Brownschen Bewegung, die in 10.2 näher beschrieben wird. Im folgenden wollen wir dazu noch ein paar Beispiele betrachten:

100 4000

3000

50

2000 0 1000

0 −50 −1000

−100

−2000 −150

−100

−50

0

50

100

−2000

−1000

0

1000

2000

3000

4000

5000

6000

Abbildung 10.13: Unsymmetrische Irrfahrt mit 50 bzw. 500 Schritten

6000 5000

4000 2000

4000

0 3000

−2000 −4000

2000

−6000 1000 −8000 −10000

0

−12000 −4000

−3000

−2000

−1000

0

1000

2000

3000

−5000

0

5000

10000

15000

Abbildung 10.14: Unsymmetrische Irrfahrt mit 1000 bzw. 10000 Schritten

Beschreibung von Teilchenbewegungen mit Hilfe der zweidimensionalen symmetrischen Irrfahrt

In diesem Abschnitt werden weitere Möglichkeiten der Beeinflussung der Teilchen beschrieben. Dabei halten wir uns zur Veranschaulichung in einem zweidimensionalen, symmetrischen, unendlichen und quadratischen Gitter auf.

181

10 Irrfahrten und ihre Auswirkungen

Drift - Vorliebe des Teilchens für bestimmte Richtungen

Wie die Überschrift schon sagt, ist der Drift die Vorliebe des Teilchens, in eine bestimmte Richtung zu gehen. Es hat also eine bestimmte Richtungstendenz.

Abbildung 10.15: Bewegung eines Teilchens mit Drift – [50] Die Wahrscheinlichkeit, dass das Teilchen wieder an seinen Ausgangspunkt zurückkehrt, ist auf jeden Fall kleiner als 100 %. Die Rückkehrwahrscheinlichkeit ist abhängig davon, wie stark das Teilchen in die jeweiligen Richtungen abgelenkt wird. Je grösser die Ablenkung ist, desto kleiner wird die Wahrscheinlichkeit. Einige Beispiele hierzu sind in den Abbildungen 10.16, 10.17 und 10.18 dargestellt.

7000

6000

5000

4000

3000

2000

1000

0 −2000

−1000

0

1000

2000

3000

4000

5000

6000

7000

Abbildung 10.16: 5000 Schritte; Drift: x-Achse +1, y-Achse +1

Selbstanziehende Irrfahrt

In dieser Variante wählt ein Teilchen bevorzugt Punkte aus, an denen es schon einmal war (siehe Abb. 10.19).

182

10.1 Irrfahrten

3000

2000

1000

0

−1000

−2000

−3000

−4000

−5000 0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

Abbildung 10.17: 5000 Schritte; Drift: x-Achse +2, y-Achse 0 1000

500

0

−500

−1000

−1500

−2000

−2500 −4500

−4000

−3500

−3000

−2500

−2000

−1500

−1000

−500

0

Abbildung 10.18: 5000 Schritte; Drift: x-Achse -0,5, y-Achse -0,2

Abbildung 10.19: Bewegung eines selbstanziehenden Teilchens – [50] Selbstabstoßende Irrfahrt

Das Teilchen wählt bevorzugt die Nachbarpunkte aus, in denen es noch nicht war. Dadurch wird die Wahrscheinlichkeit immer geringer, dass es wieder in seinem Startpunkt ankommt. Es möchte eigentlich gar nicht mehr zurückkehren.

183

10 Irrfahrten und ihre Auswirkungen

Abbildung 10.20: Bewegung eines selbstabstossenden Teilchens – [50] Selbstvermeidende / selbstfangende Irrfahrt

Hierbei bekommt das Teilchen die Einschränkung, Punkte, die es bereits besucht hat, nicht mehr zu besuchen. In dieser Konstellation kann es sogar vorkommen, dass sich das Teilchen in eine aussichtslose Situation manövriert, in der es sich nicht weiterbewegen kann. Gelegentlich nennt man diesen Spezialfall auch überschneidungsfreie Irrfahrt.

Abbildung 10.21: Bewegung eines selbstfangenden Teilchens – [50] 10.1.4 Mathematische Aussagen zur Irrfahrt

Die Möglichkeiten, Irrfahrten mathematisch zu analysieren, sind sehr groß. Beispielhaft möchten wir in diesem Zusammenhang die mittlere quadratische Verschiebung einführen und eine Aussage zur Dichtheit der Bewegungskurve einer unsymmetrischen Irrfahrt in der Ebene machen. Die mittlere quadratische Verschiebung

Sei n die Anzahl der Schritte, x eine Position im zugrundeliegenden Raum I und P(S n = x) die Wahrscheinlichkeit, dass das Teilchen nach n Schritten auf x steht.

184

10.1 Irrfahrten Dann definieren wir

Vn = ∑ |x|2 P(Sn = x) x∈I

als mittlere quadratische Verschiebung. Anschaulich beschreibt die mittlere quadratische Verschiebung, wie weit das Teilchen nach n Schritten durchschnittlich vom Startpunkt (Ursprung) entfernt ist. Andere Bezeichnungen für die mittlere quadratische Verschiebung sind Varianz oder Dispersion. Aus der√mittleren quadratischen Verschiebung erhält man leicht die Standardabweichung, indem man Vn bildet. Es gilt in der d-dimensionalen symmetrischen Irrfahrt: Vn = n2u

mit

1 u= , 2

unabhängig von der Dimension d. Eine interessante Fragestellung ist nun, wie sich Vn für die selbstvermeidende Irrfahrt verhält. Man kann Vn ∼ δ n2u

schreiben, wobei δ die Diffusionskonstante bezeichnet. Da die selbstvermeidende Irrfahrt insbesondere auf Räumen mit niedriger Dimension nur eingeschränkte Möglichkeiten an Wegen hat, hängt u von der Raumdimension d ab. d u

1 1

2 3 4

3 0, 59 . . .

4 > 12

≥5 1 2

Die Werte für d = 2, 3, 4 stammen aus der Physik (Quantenfeldtheorie), und es gibt bis heute noch keinen vollständigen, mathematischen Beweis. u = 12 für d ≥ 5 wurde erst 1992 bewiesen. Man kann die Werte für u aber auch ohne Beweis deuten: In höherdimensionalen Räumen sind Überschneidungen recht unwahrscheinlich. Deswegen verhält sich die selbstvermeidende Irrfahrt so wie die symmetrische. In niederdimensionalen Räumen sind Überschneidungen dagegen sehr wahrscheinlich, es fehlt dort einfach der Platz! Folglich muss die Irrfahrt in den Fällen d = 2, 3, 4 nach „außen“ ausweichen. Dichtheit der Bewegungskurve

Trägt man die Position eines Teilchens, das eine unsymmetrische zweidimensionale Irrfahrt vollführt, in ein Schaubild ein, so entsteht eine stetige, nicht differenzierbare Kurve, was schon Jean Perrin (1870 - 1946) feststellte. Interessant ist hierbei der folgende Satz: Satz 10.2. Die unbeschränkte Kurve einer unsymmetrischen zweidimensionalen Irrfahrt liegt dicht in der Ebene.

185

10 Irrfahrten und ihre Auswirkungen Beweisidee: Wir verwenden die Tatsache, dass die unbeschränkte Kurve unendlich oft in ein vorgegebenes Gebiet G zurückkehrt. Wähle für G z. B. G = Bε (x∗ ), wobei x∗ ein beliebiger, vorgegebener Punkt der Ebene sei. Bilde dann ε → 0, was die Behauptung impliziert, da die Kurve in jedem der ε - Bälle liegt. Die Kurve ist also raumfüllend. ¤ Allerdings gilt ebenfalls: Satz 10.3. Die Wahrscheinlichkeit, dass die Bewegungskurve einer unsymmetrischen zweidimensionalen Irrfahrt einen festen Punkt P durchläuft, ist Null. Ein fester Punkt wird also von der Kurve sicher nicht getroffen. Es verhält sich hierbei genauso wie bei Q ∩ [0, 1] auf dem reellen Intervall [0, 1]. Q liegt ebenfalls dicht in [0, 1], ist jedoch nur eine Nullmenge. 10.1.5 Irrfahrten als Modelle

Wenn man die reichhaltige Auswahl an Variationsmöglichkeiten betrachtet, wird klar, dass die Irrfahrt vor allem in naturwissenschaftlichen Problemstellungen ein unverzichtbares Mittel zur Simulation von Prozessen ist. Dabei findet sie sowohl in der theoretischen Physik im Zusammenhang der Brownschen Bewegung als auch in der theoretischen Chemie ihre Anwendung. An dieser Stelle sei auf die im zweiten Teil dieses Dokuments bearbeiteten Simulationen zu diesen Themen verwiesen.

Abbildung 10.22: Anwendungsmöglichkeiten der Fraktale und der Brownschen Bewegung

186

10.1 Irrfahrten 10.1.6 Implementierung eindimensionale symmetrische Irrfahrt

f u n c t i o n i r r 1 s ( Anzahl , Achse ) % % % % % %

IRR1S ( ANZAHL , ACHSE ) s i m u l a t e s a one−d i m e n s i o n a l s y m m e t r i c random walk ( e q u a l p r o b a b i l i t y o f g o i n g l e f t o r r i g h t ) and p l o t s i t . A n z a h l i s t h e number o f s t e p s . The p r o b a b i l i t y d i s t r i b u t i o n ( t h e number o f t i m e s t h e same p o i n t i s v i s i t e d ) i s p l o t t e d o v e r t h e i n t e r v a l [− a c h s e , a c h s e ] .

% measure t h e e l a p s e d t i m e tic ; clf ; axis square ; hold on ; subplot (1 ,2 ,1); % z e r o l e v e l − i n d i c a t e d by a b l a c k l i n e p l o t ( [ 0 , 0 ] , [ 0 , Anzahl ] , ’ k−’ ) ; % i n i t i a l i s e t h e s t a r t i n g p o i n t and t h e c o u n t e r x P o s i t i o n = z e r o s ( 1 , Anzahl + 1 ) ; Z a e h l e r = z e r o s ( 1 , 2∗ Achse + 1 ) ; x P o s i t i o n (1 , 1) = 0; Z a e h l e r ( 1 , Achse +1) = Z a e h l e r ( 1 , Achse + 1 ) + 1 ; % p e r f o r m t h e random walk f o r x = 1 : Anzahl Z u f a l l = round ( rand ( 1 ) ) ; i f ( Z u f a l l == 1 ) x P o s i t i o n ( 1 , x +1) = x P o s i t i o n ( 1 , x ) + 1 ; else x P o s i t i o n ( 1 , x +1) = x P o s i t i o n ( 1 , x ) −1; end ; i f ( abs ( x P o s i t i o n ( 1 , x + 1 ) ) < Achse ) Z a e h l e r ( 1 , x P o s i t i o n ( 1 , x +1)+ Achse +1) = . . . Z a e h l e r ( 1 , x P o s i t i o n ( 1 , x +1)+ Achse + 1 ) + 1 ; end ; end ; % t i m e end toc ; y = 0 : Anzahl ; hold on ; % plot the positions p l o t ( x P o s i t i o n , y , ’ b−’ ) ; axis t i g h t ; p l o t ( [ 0 , 0 ] , [ 1 , Z a e h l e r ( 1 , Achse + 1 ) ] , ’ k−’ ) ; hold o f f ; subplot (1 ,2 ,2);

187

10 Irrfahrten und ihre Auswirkungen

hold on ; % p l o t t h e prob . d i s t r i b u t i o n p l o t ( [ Achse +1 , Achse + 1 ] , [ 0 , Z a e h l e r ( 1 , Achse + 1 ) ] , ’ k−’ ) ; p l o t ( 1 : 2 ∗ Achse +1 , Z a e h l e r , ’ b−’ ) ; axis off ; hold o f f ; zweidimensionale symmetrische Irrfahrt

f u n c t i o n i r r 2 s ( Anzahl , Achse ) % % % % % %

IRR2S ( ANZAHL , ACHSE ) s i m u l a t e s a two−d i m e n s i o n a l s y m m e t r i c random walk ( e q u a l p r o b a b i l i t y o f g o i n g up , down , l e f t o r r i g h t ) and p l o t s i t . A n z a h l i s t h e number o f s t e p s . The p r o b a b i l i t y d i s t r i b u t i o n ( t h e number o f t i m e s t h e same p o i n t i s v i s i t e d ) i s p l o t t e d o v e r t h e i n t e r v a l [− a c h s e , a c h s e ] .

clf ; axis square ; axis equal ; hold on ; % i n i t i a l i s e t h e s t a r t i n g p o i n t and t h e c o u n t e r P o s i t i o n = z e r o s ( 2 , Anzahl + 1 ) ; Z a e h l e r = z e r o s ( 2 ∗ Achse +1 , 2∗ Achse + 1 ) ; P o s i t i o n (1 , 1) = 0; P o s i t i o n (2 , 1) = 0; Z a e h l e r ( Achse +1 , Achse +1) = Z a e h l e r ( Achse +1 , Achse + 1 ) + 1 ; % measure t h e e l a p s e d t i m e tic ; f o r x = 1 : Anzahl % c h o o s e a d i r e c t i o n ( N , S , E , W) r a n d o m l y Z u f a l l = round ( 4 ∗ rand ( 1 ) ) ; i f ( Z u f a l l == 1 ) P o s i t i o n ( 1 , x +1) = P o s i t i o n ( 1 , x ) + 1 ; P o s i t i o n ( 2 , x +1) = P o s i t i o n ( 2 , x ) ; end ; i f ( Z u f a l l == 2 ) P o s i t i o n ( 1 , x +1) = P o s i t i o n ( 1 , x ) ; P o s i t i o n ( 2 , x +1) = P o s i t i o n ( 2 , x ) + 1 ; end ; i f ( Z u f a l l == 3 ) P o s i t i o n ( 1 , x +1) = P o s i t i o n ( 1 , x ) −1; P o s i t i o n ( 2 , x +1) = P o s i t i o n ( 2 , x ) ; end ; i f ( Z u f a l l == 0 ) | ( Z u f a l l == 4 ) P o s i t i o n ( 1 , x +1) = P o s i t i o n ( 1 , x ) ; P o s i t i o n ( 2 , x +1) = P o s i t i o n ( 2 , x ) −1; end ; i f ( abs ( P o s i t i o n ( 1 , x +1)) < Achse )&( abs ( P o s i t i o n ( 2 , x +1)) < Achse )

188

10.1 Irrfahrten

Z a e h l e r ( Achse +1+ P o s i t i o n ( 1 , x + 1 ) , Achse +1+ . . . P o s i t i o n ( 2 , x + 1 ) ) = Z a e h l e r ( Achse +1+ P o s i t i o n ( 1 , x + 1 ) , . . . Achse +1+ P o s i t i o n ( 2 , x + 1 ) ) + 1 ; end ; end ; toc ; x = 1 : Anzahl + 1 ; y = 1 : Anzahl + 1 ; figure (1) ; % p l o t t h e c u r v e o f t h e random walk p l o t ( P o s i t i o n ( 1 , x ) , P o s i t i o n ( 2 , y ) , ’ b−’ ) ; figure (2) ; % image o f t h e f r e q u e n c y o f v i s i t i n g imagesc ( Z a e h l e r ( : , : ) ) ; axis off ; zweidimensionale unsymmetrische Irrfahrt

f u n c t i o n i r r 2 u ( Anzahl , Weite , D r i f t x , D r i f t y ) % % % % % %

IRR2U ( ANZAHL , WEITE , DRIFTX , DRIFTY ) s i m u l a t e s two−d i m e n s i o n a l a s y m m e t r i c random walk and A n z a h l i s t h e number o f s t e p s , w e i t e i s t h e step size . D r i f t x and d r i f t y can c a u s e a d r i f t o f t h e t o t h e r i g h t and t h e t o p r e s p e c t i v e l y .

an plots it . maximum particle

clf ; axis square ; axis equal ; hold on ; P o s i t i o n = z e r o s ( 2 , Anzahl + 1 ) ; P o s i t i o n (1 , 1) = 0; P o s i t i o n (2 , 1) = 0; % measure t h e e l a p s e d t i m e tic ; f o r x = 1 : Anzahl % random v a l u e o u t o f [ 0 , 2 p i ] f o r t h e a n g l e Z u f a l l W i n k e l = 2∗ p i ∗ rand ( 1 ) ; % random s t e p l e n g t h o u t o f [ 0 , w e i t e ] Z u f a l l W e i t e = Weite ∗ rand ( 1 ) ; P o s i t i o n ( 1 , x +1) = round ( P o s i t i o n ( 1 , x ) + . . . ZufallWeite ∗ cos ( ZufallWinkel ))+ D r i f t x ; P o s i t i o n ( 2 , x +1) = round ( P o s i t i o n ( 2 , x ) + . . . ZufallWeite ∗ sin ( ZufallWinkel ))+ Drifty ; end ; toc ; x = 1 : Anzahl + 1 ; y = 1 : Anzahl + 1 ; % p l o t t i n g t h e random walk p l o t ( P o s i t i o n ( 1 , x ) , P o s i t i o n ( 2 , y ) , ’ b−’ ) ; hold o f f ;

189

10 Irrfahrten und ihre Auswirkungen 10.1.7 Fazit

Irrfahrten sind zufällige Teilchenbewegungen, die von unterschiedlichen Voraussetzungen abhängen. Dementsprechend variiert die Rückkehrwahrscheinlichkeit an den Ausgangspunkt. Findet das Teilchen sicher wieder an seinen Ausgangspunkt zurück, so bezeichnet man die Irrfahrt als rekurrente Irrfahrt. Je mehr Möglichkeiten das Teilchen jedoch hat, desto unwahrscheinlicher ist die Rückkehr an den Startpunkt.

10.2 Brownsche Bewegung Hier wollen wir den Begriff der Irrfahrt konkretisieren, indem wir die Brownsche Bewegung einführen und anhand einer Anwendung ihren Wert für die Simulation naturwissenschaftlicher Prozesse kennenlernen. 10.2.1 Die Geschichte der Brownschen Bewegung

Der schottische Botaniker Robert Brown (1773–1858) beschäftigte sich 1828 mit der mikroskopischen Beobachtung von Pollenkörnern in Wassertröpfchen. Dabei machte er eine erstaunliche Beobachtung: Trotz längerer Beobachtungszeit stellte er eine regellose Bewegung der Körner fest. Seine Überlegung: „Alle Teilchen der organischen, wie auch anorganischen Materie sind innewohnend lebendig. “ Der wahre Grund für seine Beobachtung sind etwa 10 13 Stöße, welche die Partikel in jeder Sekunde mit anderen Molekülen ausführen. Diesen Grund deutete aber erst W. Ramsay im Jahre 1876. Dreißig Jahre später erbrachten Albert Einstein (1879–1955) und M. von Smoluchowski (1872– 1917) genaue Beweise für Ramsays Vermutungen (Einstein 1905: „Über die von der molekularkinetischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen“). Schon im Jahre 1900 schlug der französische Mathematiker Louis Bachelier (1870–1946) die Brownsche Bewegung als Beschreibung für die Verhaltensweise von Aktienkursen vor (seine Doktorarbeit: „Théorie de la spéculation“). Schließlich folgte 1923 die erste zufriedenstellende, mathematische Behandlung der Brownschen Bewegung durch Norbert Wiener (1894–1964), nach dem die Brownsche Bewegung in der Mathematik auch Wiener Prozess genannt wird. Bis heute ist die Brownsche Bewegung von fundamentaler Bedeutung für die Wahrscheinlichkeitstheorie, insbesondere als wichtigstes Beispiel eines zufälligen Prozesses in stetiger Zeit. In unserem Fall spielt die Brownsche Bewegung deshalb eine Rolle, weil ihre Pfade fraktalen Charakter haben. (Dazu mehr im nächsten Abschnitt). 10.2.2 Definition und Eigenschaften der Brownschen Bewegung

Wir sehen die Brownsche Bewegung als „Grenzwert“ aus der Irrfahrt, wie wir sie oben beschrieben haben.

190

10.2 Brownsche Bewegung Definition 10.2 (Brownsche Bewegung). Sei (Wt ) ∈ Rd eine Folge von zufälligen Werten mit 0 ≤ t ≤ T , wobei Wt den Wert zur Zeit t bezeichnet und W0 = 0 ist. Sei h > 0 eine Zeitdauer und t, s beliebige Zeitpunkte mit |t − s| > h. (Wt ) habe zudem folgende Eigenschaften: • Die Werte Wt+h −Wt und Ws+h −Ws sind voneinander unabhängig. • Wt+h − Wt folgt dem Zufallsgesetz, nämlich der Normalverteilung (Gaußverteilung) mit Mittelwert 0 und Varianz h. Dann bezeichnen wir Wt als Brownsche Bewegung. Um diese Definition besser zu verstehen, betrachten wir einige Eigenschaften der Brownschen Bewegung: • Homogenität: Ist (Wt )t≥0 eine Brownsche Bewegung im Rd , so ist (Xs+t − Xs )t≥0 für jedes s ≥ 0 eine Brownsche Bewegung. • Zeitverschiebung: Mit (Wt )t≥0 ist auch (Ws+t )t≥0 für jedes s ≥ 0 eine Brownsche Bewegung im Rd . • Symmetrie: Mit (Wt )t≥0 ist auch (−Wt )t≥0 eine Brownsche Bewegung im Rd . • Skalenwechsel: Für jede reelle Zahl τ > 0 ist mit (Wt )t≥0 auch (τ W t2 )t≥0 τ

eine d-dimensionale Brownsche Bewegung. • Koordinatenprozesse: Ist (Wt )t≥0 eine Brownsche Bewegung im Rd und bezeichnen Wt1 , . . . , Wtd die Koordinaten von Wt , so ist jeder der Koordinatenprozesse (Wt j ), j = 1, . . . , d, eine reelle Brownsche Bewegung. Die Homogenität sorgt dafür, dass der Verlauf der Brownschen Bewegung unabhängig vom gewählten Startzeitpunkt ist. Das bedeutet, dass die Brownsche Bewegung eine Brownsche Bewegung bleibt, wenn wir sie von einem anderen, frei wählbaren Zeitpunkt an betrachten. Besonders die Möglichkeit eines Skalenwechsels spielt im Zusammenhang mit fraktalen Eigenschaften eine zentrale Rolle. Diese Eigenschaft erlaubt uns nämlich, bei der Brownschen Bewegung eine Art von Selbstähnlichkeit zu erkennen. Verändern wir den Betrachtungsmaßstab, indem wir die Zeitachse strecken oder stauchen, so bleibt die Eigenschaft der Brownschen Bewegung erhalten. Das ist klarerweise, verglichen mit den klassischen Fraktalen, die bei Skalenwechseln invariant sind, eine weniger starke Aussage; wenn man jedoch bedenkt, dass die Brownsche Bewegung durch zufällige Werte erzeugt wird, kann man doch den Wert dieser Eigenschaft erkennen.

191

10 Irrfahrten und ihre Auswirkungen 10.2.3 Die Brownsche Bewegung am Beispiel der Aggregation

Wie im vorigen Abschnitt schon angedeutet wurde, hat die Brownsche Bewegung als zufälliger Prozess den großen Vorteil, unabhängig von Zeit und Skalierung zu sein, weswegen sie in wissenschaftlichen Simulationen oft als Modell oder zumindest als Modellgrundlage eingesetzt wird. Hier wollen wir dies am konkreten Beispiel der Aggregation näher beleuchten. Unter Aggregation versteht man die Ablagerung kleiner Teilchen zu größeren Strukturen, sogenannten Clustern. Beispiele hierfür findet man zum Beispiel in der Chemie bei der Bildung von Polymeren. Zur Simulation einer Aggregation bietet sich das Modell der Brownschen Bewegung an. Wie wir im Abschnitt über die Geschichte der Brownschen Bewegung schon erwähnten, führen die betrachteten Teilchen aufgrund von Kollisionen mit benachbarten Molekülen eine Irrfahrt aus. Im Folgenden soll die Ablagerung von solchen irrfahrenden Teilchen an ein Cluster simuliert werden. Wir gehen von folgender Konfiguration für unsere Simulation aus: • Fixiere ein Teilchen (z. B. im Ursprung), das von nun an fest sein soll. • Wähle einen Radius um dieses fixierte Teilchen (≈ 100 - 500 Teilchendurchmesser). • Injiziere nun sukzessive je ein irrfahrendes Teilchen am Rand des Kreises. Es können zwei Fälle auftreten: – Das Teilchen verlässt den Kreis. Starte in diesem Fall ein neues Teilchen. – Das Teilchen betritt ein benachbartes Feld zu einem fixierten Teilchen. In diesem Fall wird dieses Teilchen selbst fixiert. Auf diese Weise baut sich nach und nach eine Aggregation auf.

10 20 30 40 50 60 70 80 90 100 10

20

30

40

50

60

70

80

90

100

Abbildung 10.23: Aggregation mit 500 Teilchen und einem Startradius von 50

192

10.2 Brownsche Bewegung Zur Veranschaulichung haben wir das Programm    geschrieben, bei dem das Teilchen eine symmetrische zweidimensionale Irrfahrt ausführt.

20 40 60 80 100 120 140 160 180 200 20

40

60

80

100

120

140

160

180

200

Abbildung 10.24: Aggregation mit 2000 Teilchen und einem Startradius von 100 Es ergibt sich bei der Simulation am Rechner das Problem, dass bei großen Radien oder hohen Teilchenzahlen die Rechenzeit für die Aggregation enorm hoch ist. Grund hierfür ist die zeitintensive Erstellung von Zufallszahlen in MATLAB innerhalb von Schleifen. Daher liegt auch das Programm     von Andreas Klimke bei, dessen Programmierung eine schnellere Berechnung von Aggregationen erlaubt, da die Zufallszahlen außerhalb der eigentlichen Hauptschleife gebildet werden. Zudem wird dort die Schrittweite in Gebieten, die weit vom Cluster entfernt liegen, erhöht, um ein schnelleres Fortbewegen der Teilchen zu ermöglichen, ohne jedoch den eigentlichen Prozess der Ablagerung am Cluster zu stören. Bei der Simulation haben sich die Cluster in Abbildung 10.23, 10.24 und 10.25 ergeben.

50

100

150

200

250

300

350

400

50

100

150

200

250

300

350

400

Abbildung 10.25: Aggregation mit 8000 Teilchen und einem Startradius von 200 Im letzten Bild fällt im oberen Teil die abgerundete Clusterbildung auf. Offensichtlich ist ein Ast des Clusters bis an den Rand des durch den Radius definierten Kreis gelangt und konnte

193

10 Irrfahrten und ihre Auswirkungen so nur entlang des Kreisrandes weiterwachsen. Dies ist vergleichbar mit entsprechenden chemischen oder biologischen Experimenten in Petrischalen, bei denen eine Aggregation den Rand der Schale erreicht hat. Unter dem Gesichtspunkt der fraktalen Eigenschaften der entstehenden Aggregationen kann man z. B. eine Messung der fraktalen Dimension des Clusters vornehmen. Hierbei bietet sich die Box-Counting-Dimensionsformel an, da wir, wie oben schon festgestellt, keine Selbstähnlichkeit im klassischen Sinne haben. Messungen für Aggregationen im Zweidimensionalen ergaben ungefähr den Wert 1,7. In einer dreidimensionalen Aggregation erhält man Werte zwischen 2,4 und 2,5. Man könnte sich noch Erweiterungen für das Modell vorstellen. Zum Beispiel könnten mehrere Teilchen gleichzeitig simuliert oder das Cluster selbst bewegt werden. Die Aggregation ist jedoch nicht das einzige Beispiel für eine Anwendung der Brownschen Bewegung. Besonders bei der Simulation von natürlichen, fraktalen Formen, z. B. Landschaften, ist sie einsetzbar. 10.2.4 Implementierung Agg.m

f u n c t i o n Agg ( Anzahl , D u r c h m e s s e r ) % D i e s e s Programm s i m u l i e r t e i n e A g g r e g a t i o n m i t " A n z a h l " % T e i l c h e n und einem S t a r t d u r c h m e s s e r " D u r c h m e s s e r " . clf ; hold on ; F e l d = z e r o s ( Durchmesser , D u r c h m e s s e r ) ; % fes tes Teilchen i n i t i a l i s i e r e n F e l d ( round ( D u r c h m e s s e r / 2 ) , round ( D u r c h m e s s e r / 2 ) ) = 1 ; tic ; f o r T e i l c h e n = 1 : Anzahl % S t a r t p o s i t i o n a u f Rand b e s t i m m e n S t a r t w i n k e l = 2∗ p i ∗ rand ( 1 ) ; S t a r t x = round ( D u r c h m e s s e r / 2 ) + . . . round ( ( D u r c h m e s s e r /2 −2)∗ c o s ( S t a r t w i n k e l ) ) ; S t a r t y = round ( D u r c h m e s s e r / 2 ) + . . . round ( ( D u r c h m e s s e r /2 −2)∗ s i n ( S t a r t w i n k e l ) ) ; weiter = 1; % P r u e f e , ob s c h o n f e s t e s T e i l c h e n an S t a r t p o s i t i o n i f ( F e l d ( S t a r t x , S t a r t y ) == 1 ) w e i t e r = 0 ; end ; % Sonst beginne I r r f a h r t w h i l e ( w e i t e r == 1 ) % F e s t e s N a c h b a r t e i l c h e n => f e s t , s o n s t I r r f a h r t i f ( F e l d ( S t a r t x , S t a r t y −1)==1) | . . . ( Feld ( S t a r t x , S t a r t y +1)==1) | . . .

194

10.2 Brownsche Bewegung ( F e l d ( S t a r t x −1 , S t a r t y ) = = 1 ) | . . . ( F e l d ( S t a r t x +1 , S t a r t y ) = = 1 ) weiter = 0; Feld ( S t a r t x , S t a r t y ) = 1; else Z u f a l l = round ( 5 ∗ rand ( 1 ) ) ; i f ( Z u f a l l == 0 ) | ( Z u f a l l ==5) gut = 0; w h i l e ( g u t == 0 ) Z u f a l l = round ( 5 ∗ rand ( 1 ) ) ; i f ( Z u f a l l > 0 ) & ( Z u f a l l < 5 ) g u t = 1 ; end ; end ; end ; i f ( Z u f a l l == 1 ) Startx = Startx + 1; end ; i f ( Z u f a l l == 2 ) Starty = Starty + 1; end ; i f ( Z u f a l l == 3 ) Startx = Startx − 1; end ; i f ( Z u f a l l == 4 ) Starty = Starty − 1; end ; % T e i l c h e n a u s s e r h a l b K r e i s => N e u s t a r t i f ( sqrt ( ( S t a r t x − Durchmesser / 2 ) ^ 2 + . . . ( S t a r t y − D u r c h m e s s e r / 2 ) ^ 2 ) > D u r c h m e s s e r /2 −2) weiter = 1; S t a r t w i n k e l = 2∗ p i ∗ rand ( 1 ) ; S t a r t x = round ( round ( D u r c h m e s s e r / 2 ) + . . . ( D u r c h m e s s e r /2 −2)∗ c o s ( S t a r t w i n k e l ) ) ; S t a r t y = round ( round ( D u r c h m e s s e r / 2 ) + . . . ( D u r c h m e s s e r /2 −2)∗ s i n ( S t a r t w i n k e l ) ) ; end ; end ; end ; end ; toc ; imagesc ( F e l d ) ; hold o f f ; brown.m

f u n c t i o n brown ( maxr , n p a t h ) % BROWN Simulates electrochemical aggregation using % Brownian m o t i o n % BROWN(MAXR, NPATH) Compute NPATH p a r t i c l e s , u s e

195

10 Irrfahrten und ihre Auswirkungen

% maximum r a d i u s o f i n j e c t i o n c i r c l e MAXR. % % Examples : % brown ( 5 0 , 500) [ ca . 13 s e c o n d s on 1 . 6 GHz A t h l o n ] % brown ( 1 0 0 , 2 0 0 0 ) [ ca . 3 m i n u t e s ] % brown ( 2 0 0 , 8 0 0 0 ) [ ca . 40 m i n u t e s ] % A u t h o r : A n d r e a s Klimke , IANS , U n i v e r s i t a e t S u t t g a r t % Version : 1.0 % Date : Nov . 8 , 2004 i f nargin < 2 e r r o r ( ’ Type " h e l p brown " f o r c a l l i n g s y n t a x . ’ ) ; end % Maximum number o f random i t e r a t i o n s t o p e r f o r m i n % t h e i n n e r l o o p ( 1 0 0 random v a r i a b l e s a r e computed o u t s i d e % o f t h e l o o p s i n c e t h e rand c a l l i s e x p e n s i v e and l o o p s % i n v o l v i n g a c a l l t o rand a r e n o t % JIT−c o m p i l e d ) . maxrand = 1 0 0 ; % I n i t matrix of s t i ck y par ti c l es A = z e r o s ( maxr ∗ 2 , maxr ∗ 2 ) ; % I n i t 1 st s t i ck y par t ic le at center of matrix A( maxr , maxr ) = 1 ; % The d i r e c t i o n t h e p a r t i c l e moves dir = 0; % % % % % r

The i n i t i a l i n j e c t i o n r a d i u s ; t h i s i s i n c r e a s e d up t o maxr . T h i s i m p r o v e s p e r f o r m a n c e , s i n c e t h e l i k e l i h o o d o f h i t t i n g t h e s t i c k y p a r t i c l e would be v e r y low i n t h e b e g i n n i n g i f one would u s e t h e f u l l i n j e c t i o n r a d i u s r i g h t from t h e b e g i n n i n g . = 2;

% C o u n t e r f o r t o t a l number o f i t e r a t i o n s ni t e r = 0; % I f e q u a l t o one , compute new p a t h newval = 1 ; % C o u n t e r f o r t h e number o f c o m p l e t e d p a r t i c l e p a t h s k = 0; while k < npath random = rand ( maxrand , 1 ) ;

196

10.2 Brownsche Bewegung

count = 2; i f newval > 0 % Compute new p o i n t on i n j e c t i o n c i r c l e p h i = random ( 1 ) ; px = round ( r ∗ c o s ( 2 ∗ p h i ∗ p i ) ) ; py = round ( r ∗ s i n ( 2 ∗ p h i ∗ p i ) ) ; end newval = 0 ; while 1 % A r bi tr a r il y s e le c t direction to turn to r v a l = random ( c o u n t ) ; i f rval < 0.25 % EAST px = px + 1 ; e l s e i f r v a l < 0 . 5 % NORTH py = py + 1 ; e l s e i f r v a l < 0 . 7 5 % WEST px = px − 1 ; else % SOUTH py = py − 1 ; end a c t r s q r = px ^2+ py ^ 2 ; i f ( a c t r s q r > r ^2) % Check i f p a r t i c l e h a s l e f t t h e a r e a o f i n t e r e s t ; % i f y e s , d i s c a r d and s t a r t w i t h new p a r t i c l e p a t h . newval = 1 ; break ; e l s e i f ( a c t r s q r < r ^2) % Check i f s t i c k y p a r t i c l e i s h i t ; i f y e s , a t t a c h % p a r t i c l e and do t h e n e x t p a t h . x = px + maxr ; y = py + maxr ; i f (A( x +1 , y ) > 0 | A( x −1 ,y ) > 0 | . . . A( x , y +1) > 0 | A( x , y −1) > 0 ) A( x , y ) = 1 ; newval = 1 ; k = k + 1; break ; end end count = count + 1; i f c o u n t > maxrand break ; end n i t e r = ni t e r + 1;

197

10 Irrfahrten und ihre Auswirkungen

end % Compute new i n j e c t i o n r a d i u s , ( t h e maximum o v e r t w i c e t h e % r a d i u s o f t h e l a s t s t i c k y p a r t i c l e and t h e c u r r e n t r a d i u s % s h o u l d be enough ) a c t m a x r = 2∗ s q r t ( a c t r s q r ) ; i f actmaxr > r r = min ( f l o o r ( a c t m a x r ) , maxr − 1 ) ; end end d i s p ( [ ’ Number o f i t e r a t i o n s : ’ , num2str ( n i t e r ) ] ) ; imagesc (A ) ; colormap(1− gray ) ; axis equal ; axis t i g ht ;

10.3 Finanzmathematik Man betrachtet Brownsche Bewegungen als Grundlage für die Erstellung des Aktienmarktes! 10.3.1 Die Geschichte des Börsenhandels

Im frühen 17. Jahrhundert hat der Handel mit Derivaten begonnen. Dies war vor allem der Tulpenhandel in Holland und der Reishandel in Japan. Im 19. Jahrhundert begann der Handel mit Finanzderivaten (Aktienoptionen) in London an der London Stock Exchange. 1848 begann der moderne Handel mit Derivaten mit der Gründung der Chicago Board of Trade. 1972 wurden die ersten Börsen für den reinen Finanzderivate-Handel gegründet. Von da an hat sich die Existenz solcher Börsen stark vermehrt. 10.3.2 Analyse eines Aktienkurses

Abbildung 10.26: Entwicklung eines Aktienkurses über die Zeit

198

10.3 Finanzmathematik Die Simulation wurde anhand eines gängigen Aktienmodells dargestellt und zeigt die Entwicklung des Aktienkurses x = x(t) mit der Zeit. Die Aktienwerte x n = x(tn ) sind über einem Zeitgitter {tn = nτ | n = 0, 1, . . . } definiert, wobei τ die Gitterweite ist. Es ist zu beachten, dass der Zuwachs des Aktienkurses in jedem Zeitintervall proportional zum aktuellen Wert der Aktie ist. xn+1 = xn + 4xn ,

mit

4xn = µn xn

Dabei ist µn (n ∈ N0 ) die Zuwachsrate, welche stochastisch unabhängige Zufallsvariablen sind mit einem Erwartungswert µτ . µ wird in der Finanzmathematik auch als Drift bezeichnet. Man kann eine Ähnlichkeit mit der eindimensionalen unsymmetrischen Irrfahrt erkennen, mit dem Unterschied, dass die Schrittweite proportional zum aktuellen Wert der Aktie ist. 10.3.3 Begriffserklärungen Volatilität - Risikokennzahl

Die Volatilität kennzeichnet das Risiko einer Aktie. Man kann sie als Maß für die Schwankungen eines Kursverlaufes betrachten. Sie gibt an, in welcher Bandbreite um einen gewissen Trend sich der tatsächliche Kurs in der Vergangenheit bewegt hat. Im allgemeinen wird die Volatilität in einem Zeitraum von 30 bis 250 Tagen berechnet. Je höher die Volatilität ist, umso risikoreicher gilt eine Aktie. Am folgenden Beispiel kann man erkennen, dass bei einer hohen Volatilität passieren kann, dass der Wert einer Aktie schnell sinkt und man somit in kurzer Zeit sehr viel an Wirtschaftsgut verlieren kann.

Abbildung 10.27: Beispiel für einen Aktienkurs mit hoher Volatilität Derivate

Unter einem Derivat versteht man den Finanzkontrakt zwischen einem oder mehreren Beteiligten (z.B. Firmen, Privatpersonen, . . . ). Dieser Finanzkontrakt wird vom zukünftigen Wert eines Wirtschaftsgutes abgeleitet. Man unterscheidet zwischen drei speziellen Derivaten: • Forwards und Futures

199

10 Irrfahrten und ihre Auswirkungen • Swaps • Optionen Im folgenden werden diese Derivate genauer erklärt. Forwards und Futures

• Forwards: Bei einem Forward verpflichtet sich der Verkäufer gegenüber dem Käufer zur Lieferung einer bestimmten Menge eines Wirtschaftsgutes zu einem festgelegten Zeitpunkt. Diese Art von Verträgen wird zwischen juristischen Personen abgeschlossen. Sie sind im Allgemeinen nicht standardisiert, d. h. man kann sie den gegebenen Umständen mit dem Einverständnis beider Parteien anpassen bzw. für das entsprechende Gut neu entwerfen. Ausserdem müssen sie nicht an der Börse gehandelt werden. • Futures: Diese sind im Gegensatz zu den Forwards standardisiert, d. h. sie sind auf bestimmte Bedingungen ausgelegt und können nicht geändert werden. Außerdem können diese Derivate nur an der Börse gehandelt werden. Des weiteren werden sie über ein sogenanntes „Clearing House“ als Vermittler abgeschlossen. Die entstandenen Handelskonditionen werden veröffentlicht, damit sich jeder damit befassen kann. Ansonsten haben sie die gleiche Funktion wie die Forwards. Swaps

Ein Swap ist ein Vertrag, bei dem der Kauf und der Verkauf ähnlicher Wirtschaftsgüter von gleichem Finanzvolumen zu einem bestimmten Zeitpunkt vereinbart wird. An diesen Vertrag haben sich Käufer und Verkäufer zu halten. Beispiele für Swaps: • Zins-Swap: Unter einem Zins-Swap versteht man die Vereinbarung unterschiedlicher Zinssätze, die bei bestimmten Vorgängen (z.B. Kredit, Bausparvertrag) für zukünftige Zahlungen bereits festgelegt wurden. • Währungs-Swap: Unter einem Währungs-Swap versteht man die Festlegung, dass unterschiedliche Währungen zu einem zukünftigen Zeitpunkt gewechselt werden. Optionen

Optionen beinhalten das Recht zum Erwerb (Call-Optionen) oder Verkauf (Put-Optionen) einer bestimmten Menge eines Wirtschaftsgutes zu einem früher bereits festgesetzten Preis. Dabei unterscheidet man zwischen zwei verschiedenen Optionsarten: • Amerikanische Option: Die Option darf innerhalb einer bestimmten Frist ausgeübt werden. • Europäische Option: Das Ausüben der Option ist auf einen festgelegten Zeitpunkt beschränkt.

200

10.3 Finanzmathematik 10.3.4 Die Formel von Black und Scholes

Im folgenden gehen wir nur von der europäischen Put-Option aus. Die Grundlagen zur Entwicklung der Formel

Durch den Kauf eines europäischen Puts erwirbt man das Recht, nach einer festgelegten Laufzeit T > 0 eine Aktie zum Basispreis X > 0 zu verkaufen - unabhängig vom tatsächlichen Wert der Aktie x(T ). Ob man nun einen Gewinn oder einen Verlust mit der Aktie macht, hängt vom aktuellen Wert ab. Ist der aktuelle Wert grösser als der Basispreis (also x(T ) > X), so ist die Option wertlos, denn verkauft man die Aktie zu diesem Zeitpunkt über die europäische Put-Option, so erhält man nur den Basispreis, während die Aktie einen höheren aktuellen Wert hat. Ist der aktuelle Wert der Aktie kleiner als der Basispreis (x(T ) < X), so kann man den Gewinn X − x(T ) beim Verkauf der Aktie verzeichnen; d. h. man kann die Aktie zum festgelegten Basispreis verkaufen, obwohl ihr aktueller Kurs niedriger ist. Nun fragen sich Kunden und Banken, welchen Wert die Option zum Zeitpunkt t vor Ende der Laufzeit (t < T ) besitzt, d.h. wie der Kaufpreis der Option zu diesem Zeitpunkt festzulegen ist. Man erwartet, dass bei einer festen Laufzeit T und einem festen Basispreis X der Kaufpreis abhängig vom aktuellen Zeitpunkt t und vom aktuellen Preis x(t) der Aktie ist. Aus diesem Grund haben Black und Scholes eine Formel entwickelt, um diesen Kaufpreis auszurechnen. Die Formel von Black und Scholes

In den 70er Jahren entwickelten Fisher Black und Myron Scholes ein Modell zur Bestimmung eines fairen Optionspreises. Im Jahre 1997 bekamen dann Robert Merton und Myron Scholes für die endgültige Entwicklung den Wirtschaftsnobelpreis verliehen. Diese Formel konnte dann tatsächlich eingesetzt werden. Die Grundlage der Black-Scholes-Formel ist ein Diffusionsprozess (vgl. Abschnitt 10.4). Voraussetzungen für das Modell

Bei der Entwicklung des Modells für eine Formel, die den Optionspreis ausrechnet, haben Black und Scholes ein paar Grundvoraussetzungen getroffen. Diese sind in der Realität aber nicht immer gegeben. Daher konnte die Formel erst später von Merton und Scholes so weiterentwickelt werden, dass sie eingesetzt werden konnte. Diese Voraussetzungen sind: • Transaktionskosten für den Handel mit Aktien und Optionen sind vernachlässigbar. • Bei den Käufern handelt es sich um „Kleininvestoren“, d. h. die Transaktionen haben keinen Einfluss auf den Aktienkurs.

201

10 Irrfahrten und ihre Auswirkungen • Käufer und Banken haben keine Kenntnisse über die zukünftige Aktienentwicklungen. • Drift (Tendenz) und Volatilität sind bekannt. • Von der Bank kann immer Geld zu einem bestimmten Zinssatz q geliehen werden. Herleitung und Formel

Die Herleitung ist sehr kompliziert und umfangreich. Sie gründet sich auf die Lösung einer Differentialgleichung. Bei Interesse kann sie nachgelesen werden ([21], Seite 537 bis 543). Die Formel von Black und Scholes für den fairen Preis einer europäischen Put-Option beim Aktienpreis x zur Zeit T − t, 0 ≤ t ≤ T lautet: Ã Ã √ ! √ ! log( Xx ) (q − σ ) t log( Xx ) (q − σ ) t −qt √ − √ + √ √ u(x, T − t) = Xe Φ −x Φ , 2 σ 2 σ 2 σt 2 σt √ wobei X, T , t, q oben erklärt sind, 2σ die Volatilität und Φ die Verteilungsfunktion der Normalverteilung ist. 10.3.5 Implementierung function aktienkurs (T, s , v ) % % % % % % %

AKTIENKURS ( T , S , V ) s i m u l a t e s t h e d e v e l o p m e n t of a s t o c k p r i c e at the f i n a n c i a l market . The c u r v e h a s some p r o p e r t i e s o f a Brownian m o t i o n . T i s t h e number o f t i m e i n t e r v a l s ( 1 / T i s t h e s t e p s i z e ) . s is the stock price at time zero . v i n d i c a t e s t h e v o l a t i l i t y o f t h e s t o c k p r i c e (0= xMax ) Richtung (1 , 1) = pi − Richtung (1 , 1 ) ; end ; i f ( P o s i t i o n ( 1 , 1 ) = yMax ) R i c h t u n g ( 1 , 1 ) = 2∗ p i − R i c h t u n g ( 1 , 1 ) ; end ; i f ( P o s i t i o n ( 2 , 1 ) = xMax ) Richtung (1 , j ) = pi − Richtung (1 , j ) ; P o s i t i o n ( 1 , j ) = xMax ; end ; i f ( P o s i t i o n ( 1 , j ) = yMax ) R i c h t u n g ( 1 , j ) = 2∗ p i − R i c h t u n g ( 1 , j ) ; P o s i t i o n ( 2 , j ) = yMax ; end ; i f ( P o s i t i o n ( 2 , j ) = y ) y = Z a e h l e r 2 ( a , b ) ; end ; end ; end ; y = y + 3; f o r i = 1 : Dauer axis square ; axis equal ; clf ; hold on ; p l o t ( [ 1 , xMax+1 , xMax+1 , 1 , 1 ] , [ 0 , 0 , y , y , 0 ] , ’ k−’ ) ; p l o t ( Z a e h l e r 1 ( x , i ) , ’ r−’ ) ; p l o t ( Z a e h l e r 2 ( x , i ) , ’ b−’ ) ; hold o f f ; i f ( i == 1 ) pause ; e l s e pause ( 1 / 6 ) ; end ; end ; diffusionTKurs.m

f u n c t i o n d i f f u s i o n T K u r s ( Anzahl , Dauer , xMax , yMax ) % DIFFUSIONTKURS( ANZAHL , DAUER, XMAX, YMAX ) draws t h e p a t h o f one % d i f f u s i n g p a r t i c l e . For more i n f o r m a t i o n s e e d i f f u s i o n T . m . P o s i t i o n = z e r o s ( 2 , Anzahl ) ; R i c h t u n g = z e r o s ( 1 , Anzahl ) ; % the v a r i a b l e f o r the path Kurs = z e r o s ( 2 , Dauer ) ; % i n i t i a l i s i n g t h e p a r t i c l e s ( random s t a r t i n g p o i n t s ) f o r i = 1 : Anzahl R i c h t u n g ( 1 , i ) = rand ( 1 ) ∗ 2 ∗ p i ; P o s i t i o n ( 1 , i ) = rand ( 1 ) ∗ xMax ; P o s i t i o n ( 2 , i ) = rand ( 1 ) ∗ yMax ; end ; clf ; axis square ; axis equal ; f o r i = 1 : Dauer hold o f f ;

211

10 Irrfahrten und ihre Auswirkungen

p l o t ( [ 0 , 0 , xMax , xMax , 0 ] , [ 0 , yMax , yMax , 0 , 0 ] , ’ b−’ ) ; hold on ; p l o t ([ −10 , −10 , xMax+10 , xMax +10 , −10] , . . . [ −10 , yMax+10 , yMax +10 , −10 , −10] , ’ b−’ ) ; axis t i g h t ; % remembering t h e path Kurs ( 1 , i ) = P o s i t i o n ( 1 , 1 ) ; Kurs ( 2 , i ) = P o s i t i o n ( 2 , 1 ) ; f o r j = 1 : Anzahl i f ( j == 1 ) % plot the special par ti cl e plot ( Position (1 , j ) , Position (2 , j ) , ’ r . ’ ) ; else % plot all other pa r t ic l e s plot ( Position (1 , j ) , Position (2 , j ) , ’b . ’ ) ; end ; f o r t = 1 : Anzahl % i s t h e r e a n o t h e r p a r t i c l e t h a t h i t s t h e c u r r e n t one ? i f ( t ~= j ) & ( s q r t ( ( P o s i t i o n ( 1 , j )− P o s i t i o n ( 1 , t ) ) ^ 2 . . . + ( P o s i t i o n ( 2 , j )− P o s i t i o n ( 2 , t ) ) ^ 2 ) ) < = 2 i f ( P o s i t i o n ( 1 , t ) ~= P o s i t i o n ( 1 , j ) ) L o t = atan ( ( P o s i t i o n ( 2 , t )− P o s i t i o n ( 2 , j ) ) / . . . ( P o s i t i o n ( 1 , t )− P o s i t i o n ( 1 , j ) ) ) ; else Lot = pi / 2 ; end ; alpha1 = Richtung (1 , j ) ; alpha2 = Richtung (1 , t ) ; R i c h t u n g ( 1 , j ) = mod ( 2 ∗ L o t − a l p h a 2 , 2∗ p i ) ; R i c h t u n g ( 1 , t ) = mod ( 2 ∗ L o t − a l p h a 1 , 2∗ p i ) ; end ; end ; % c a l c u l a t i n g t h e new p o s i t i o n s P o s i t i o n ( 1 , j ) = P o s i t i o n ( 1 , j ) + 2∗ c o s ( R i c h t u n g ( 1 , j ) ) ; P o s i t i o n ( 2 , j ) = P o s i t i o n ( 2 , j ) + 2∗ s i n ( R i c h t u n g ( 1 , j ) ) ; % is there a wall ? i f ( Position (1 , j ) Richtung (1 , j ) Position (1 , j ) end ; i f ( Position (1 , j ) Richtung (1 , j ) Position (1 , j ) end ; i f ( Position (2 , j ) Richtung (1 , j ) Position (2 , j )

212

>= xMax ) = pi − Richtung (1 , j ) ; = xMax ; = yMax ) = 2∗ p i − R i c h t u n g ( 1 , j ) ; = yMax ;

10.4 Diffusion

end ; i f ( P o s i t i o n ( 2 , j ) 1 / 2 ∗ h x1 = [ x1 / 2 ; x1 / 2 + 1 / 2 ; x1 / 2 + 1 / 2 ; x1 / 2 ]; x2 = [ x2 / 2 ; x2 / 2 ; x2 / 2 + 1 / 2 ; x2 / 2 + 1 / 2 ] ; z = zeros (2^ n + 1 ) ; z = z + k o n t r a k t i o n ^n ; yges = [ ] ; f o r k = 1 : s i z e ( y , 1 ) %s i z e ( y , 1 ) i s t h e number o f rows o f y % For k=1 we l o o k a t t h e f i r s t 4 y−v a l u e s and t h e f i r s t % 16 x1− and x2−v a l u e s . y t ei l = y(k , : ) ; % The x−v a l u e s a r e computed e a r l i e r t h a n t h e y−v a l u e s % b e c a u s e t h e c o r r e s p o n d i n g y−v a l u e s a r e d e t e r m i n e d

224

11.3 „Konstante“ fraktale Landschaften

% by t h e o l d y−v a l u e s . x 1 t e i l = ( x1 ( 4 ∗ k −3:4∗k , : ) ) ’ ; % For k=1 t h i s g i v e s t h e x1− and x2−v a l u e s o f t h e l e f t % bottom square . x 2 t e i l = ( x2 ( 4 ∗ k −3:4∗k , : ) ) ’ ; % the values at the middle of m i t t e ( 1 ) = ( 0 . 5 ) ∗( y t e i l ( 1 ) + m i t t e ( 2 ) = ( 0 . 5 ) ∗( y t e i l ( 2 ) + m i t t e ( 3 ) = ( 0 . 5 ) ∗( y t e i l ( 3 ) + m i t t e ( 4 ) = ( 0 . 5 ) ∗( y t e i l ( 1 ) + mitte (5) = (0.25)∗( yt e i l (1) + + y t ei l (3) + y t ei l ( 4) );

t h e s q u a r e and o f t h e e d g e s yteil (2)); yteil (3)); yteil (4)); yteil (4)); yt e i l (2) . . .

i n d i c e s = 2^( n ) ∗ ( [ x 1 t e i l ( : ) x2t ei l ( : ) ] ) + 1; for i = 1:16 z t e i l ( i ) = z ( indices ( i ,1) , indices ( i , 2 ) ) ; end % y h e l p g i v e s t h e c o r r e s p o n d i n g y−v a l u e s t o t h e x−v a l u e s % d e p e n d e n t on k yhelp = [ mitte (1) + z t e i l (1) , y t e i l (2) , ... mitte (2) + z t e i l (3) , mitte (5) + z t e i l (4); . . . mitte (5) + z t e i l (5) , mitte (2) + z t e i l (6) , . . . yt e i l (3) , mitte (3) + z t e i l (8); . . . mitte (4) + z t e i l (9) , mitte (5) + z t e i l (10) , . . . mitte (3) + z t e i l (11) , y t e i l (4); . . . yt e i l (1) , mitte (1) + z t e i l (14) , . . . mitte (5) + z t e i l (15) , mitte (4) + z t e i l (16)]; yges = [ yges ; yhelp ] ; end y = yges ; end

Bemerkungen: • Im Fall n = 1 werden die Koordinaten x 1 , x2 und y für das erste Grundgitter festgelegt.

 • Für alle anderen Werte von n wird nach obiger Idee (siehe        Grundgitter erzeugt.

• In 

• 

 ) rekursiv das

stehen die Höhen des k-ten vorherigen Quadrats.

 enthält die Mittelwerte zweier benachbarter x-Werte.

    • In  stehen die Koordinaten der Vektoren   0 und 1 werden umgewandelt in natürliche Zahlen.

und   ; die Werte zwischen

•   ordnet den einzelnen Punkten des Grundgitters ihren entsprechenden y-Wert in der Koordinatenmatrix und damit die zugehörige Höhe zu.

225

11 Fraktale Landschaften • In    stehen die y-Werte der vier neuen kleinen Quadrate, die aus einem der Quadrate des vorherigen Schrittes entstanden sind; dabei wird zum Mittelwert der Höhen zweier benachbarter Punkte der entsprechende Wert aus der Koordinatenmatrix addiert. • Alle Quadrate des vorherigen Schrittes werden anschließend nacheinander betrachtet und die y-Werte der jeweils vier neuen Quadrate zu  hinzugefügt. • Schließlich wird der alte y-Vektor mit den neuen y-Werten überschrieben. Nun betrachten wir die Hauptfunktion: function zeichne_Vierecke (n , f a c t or ) % ZEICHNE_VIERECKE ( N , FACTOR) draws a f r a c t a l l a n d s c a p e % which i s g i v e n by a r e c u r s i v e l y computed m o u n t a i n i n 3D . % % n g i v e s t h e number o f i t e r a t i o n s ; f a c t o r i s t h e c o n t r a c t i o n f a c t o r . % t h e r i g h t colormap l o a d map ; colormap ( map ) ; % g e t t h e co−o r d i n a t e s o f t h e m o u n t a i n [ x1 , x2 , y ] = V i e r e c k e _ m a t r i x ( n , f a c t o r ) ; % p l o t t h e 3D−p i c t u r e f i l l 3 ( x1 ’ , x2 ’ , y ’ , y ’ ) ; axis off ; grid o f f ; camlight ri ght ; view ( − 4 0 , 2 0 ) ;

Bemerkungen: • Die einzelnen Quadrate werden mit dem Befehl 

• 



 • 

•  

• 

  

   





 gezeichnet und eingefärbt.



Achsen werden nicht angezeigt.



Gitter wird nicht angezeigt.

  

   

⇒ ⇒

Scheinwerfer von rechts. Ansicht wird gesetzt.

Nachdem ein Berg auf einem Vierecksgitter untersucht wurde, soll nun ein Berg auf einem Dreiecksgitter betrachtet werden. Abbildung 11.12 zeigt einen Berg mit der Kontraktion 0, 5 n . Hier verlaufen Idee und Implementierung analog zum Berg auf einem Vierecksgitter, so dass hier nicht mehr explizit Idee und Quellcode erläutert werden. Der einzige Unterschied besteht darin, dass nur die Seitenmittelpunkte neu hinzukommen und der Mittelpunkt fehlt. Deshalb folgt anschließend nur der unkommentierte Quellcode.

226

11.3 „Konstante“ fraktale Landschaften

Abbildung 11.12: Berg auf einem Dreiecksgitter f u n c t i o n [ x1 , x2 , y ] = D r e i e c k e _ m a t r i x ( n , k o n t r a k t i o n ) % % % % % %

[ X1 , X2 , Y ] = DREIECKE_MATRIX( N , KONTRAKTION) r e c u s i v e l y c o m p u t e s t h e co−o r d i n a t e s o f t h e f r a c t a l l a n d s c a p e i n 3D . T h i s f i l e i s u s e d i n ZEICHNE_DREIECKE .M. n g i v e s t h e number o f i t e r a t i o n s ; factor is the contraction factor .

% lowest case of the r e c u r s i o n i f n == 1 x1 = [ 0 0 1 / 2 ; 1 / 2 1 / 2 1 ; 0 0 1/2 ; 1/2 1/2 0]; x2 = [ 1 / 2 0 0 ; 1/2 0 0 ; 1 1/2 1/2 ; 0 1/2 1 / 2 ] ; y = [ 0 0 0 ; 0 0 0 ; 0 0 0 ; 0 0 0]; else % r e c u r s i v e method c a l l [ x1 , x2 , y ] = D r e i e c k e _ m a t r i x ( n −1 , k o n t r a k t i o n ) ; % compute t h e x−v a l u e s x1 = [ x1 / 2 ; ( x1 / 2 + 1 / 2 ) ; x1 / 2 ; (−x1 / 2 + 1 / 2 ) ] ; x2 = [ x2 / 2 ; x2 / 2 ; ( x2 / 2 + 1 / 2 ) ; (−x2 / 2 + 1 / 2 ) ] ; z = zeros (2^ n + 1 ) ; z = z + k o n t r a k t i o n ^n ; yges = [ ] ; f o r k = 1 : s i z e ( y , 1 ) % s i z e ( y , 1 ) i s t h e number o f rows o f y y t e i l = y ( k , : ) ; % y−v a l u e s o f t h e t h r e e n o d e s % i n t e r p o l a t i n g values at the middle of the edges y t e i l (4: 5) = 0.5 ∗ ( y t e i l (1:2)+ y t e i l ( 2 : 3 ) ) ; yt e i l (6) = 0.5 ∗ ( y t e i l (3) + y t e i l (1) ) ; x 1 t e i l = ( x1 ( 4 ∗ k −3:4∗k , : ) ) ’ ; % For k=1 t h i s g i v e s t h e x1− and x2−v a l u e s o f t h e l e f t % bottom square . x 2 t e i l = ( x2 ( 4 ∗ k −3:4∗k , : ) ) ’ ; % computes t h e i n d i c e s i n d i c e s = 2^( n ) ∗ [ x 1 t e i l ( : ) x 2 t e i l ( : ) ] + 1;

227

11 Fraktale Landschaften

% r e a d s t h e c o r r e c t v a l u e s o u t o f t h e random m a t r i x for i =1:12 z t e i l ( i ) = z ( indices ( i ,1) , indices ( i , 2 ) ) ; end % y h e l p g i v e s t h e c o r r e s p o n d i n g y−v a l u e s t o t h e x−v a l u e s % d e p e n d e n t on k : A t t h e m i d d l e p o i n t s o f t h e e d g e s t h e % c o r r e s p o n d i n g random v a l u e i s added . yhelp = [ y t e i l (4) + z t e i l (1) , y t e i l (2) , ... y t ei l (5) + z t e i l (3); . . . yt e i l (6) + z t e i l (4) , yt e i l (5) + z t e i l (5) , . . . yteil (3); . . . y t ei l (1) , y t ei l (4) + z t e i l (8) , . . . y t ei l (6) + z t e i l (9); yt e i l (5) + z t e i l (10) , yt e i l (6) + z t e i l (11) , . . . y t ei l (4) + z t e i l (12)]; yges = [ yges ; yhelp ] ; end y = yges ; end

Und anschließend die Hauptfunktion des Berges auf einem Dreiecksgitter: function zeichne_Dreiecke (n , f a c t or ) % ZEICHNE_DREIECKE ( N , FACTOR) draws a f r a c t a l l a n d s c a p e % which i s g i v e n by a r e c u r s i v e l y computed m o u n t a i n i n 3D . % % n g i v e s t h e number o f i t e r a t i o n s ; f a c t o r i s t h e c o n t r a c t i o n f a c t o r ; % l o a d i n g t h e colormap l o a d mat2 ; colormap ( map ) ; % compute t h e co−o r d i n a t e s o f t h e m o u n t a i n [ x1 , x2 , y ] = D r e i e c k e _ m a t r i x ( n , f a c t o r ) ; % plot the r es ul t s f i l l 3 ( x1 ’ , x2 ’ , y ’ , y ’ / max ( max ( y ) ) ) ; axis off ; grid o f f ; camlight ri ght ; view ( − 4 0 , 2 0 ) ;

Vergleicht man die bisher betrachteten Berge mit realen Landschaften, so stellt man einen gewaltigen Unterschied fest (siehe Abbildung 11.13). Der Unterschied liegt vor allem am gleichmäßigen Aufbau der konstruierten Berge.

228

11.3 „Konstante“ fraktale Landschaften

Abbildung 11.13: Realer ([5]) und computergenerierter Berg Warum wachsen „echte“ Berge nicht gleichmäßig?

Berge enstehen sowohl durch Magmaerstarrung aus der Erde wie auch durch Erdplattenverschiebungen. Außerdem ist zu bemerken, dass Berge nicht nur in die Höhe wachsen, da Flüsse und Regen Gesteinsschichten abtragen. Um diese Einflüsse berücksichtigen zu können, muss der Zufall in die Implementierung aufgenommen werden. Das unterschiedliche Aussehen der Berge mit und ohne Zufall soll an folgenden Abbildungen dargestellt werden:

Abbildung 11.14: Ein Bergdurchschnitt ohne und mit Zufall Im folgenden soll auf die Implementierung des zufälligen Bergdurchschnittes eingegangen werden: Während in der Hauptfunktion bei der Hinzunahme des Zufalls keine Änderung (abgesehen von einer Abfrage   , ob der Berg mit oder ohne Zufall erzeugt werden soll) vorgenommen  werden muss, wird in der Funktion             die Zeile m i t t e = ( 0 . 5 ) ∗ ( y t e i l ( 1 ) + y t e i l ( 2 ) ) + kont ^n ;

zu

229

11 Fraktale Landschaften m i t t e = ( 0 . 5 ) ∗ ( y t e i l ( 1 ) + y t e i l ( 2 ) ) + randn ∗ k o n t ^ n ;

Diese Änderung hat zur Folge, dass nicht mehr nur die konstante Kontraktion von 0, 5 n auf den Mittelwert der Höhen zweier benachbarter Punkte addiert wird, da die Kontraktion jetzt mit einem zufälligen Wert zwischen -3 und 3 zu multiplizieren ist. Dadurch wird ein gleichmäßiges Wachsen des Berges verhindert und außerdem ermöglicht, dass der Berg auch wieder „schrumpfen“ kann.

Abbildung 11.15: Berg auf einem Vierecksgitter: Ohne und mit Zufall Auch in der Hauptfunktion des Berges auf einem Vierecksgitter muss bei der Hinzunahme des Zufalls nichts wesentliches geändert werden. In der Funktion          werden die zwei Zeilen z = zeros (2^ n + 1 ) ; z = z + k o n t r a k t i o n ^n ;

durch die Zeile z = ( randn ( 2 ^ n + 1 ) ) ∗ k o n t r a k t i o n ^ n ;

ersetzt. In der Koordinatenmatrix, welche oben schon erklärt wurde, sind jetzt nicht mehr alle Einträge gleich: Die Matrix besteht nun aus vielen verschiedenen Zufallszahlen. An der Funktionsweise dieser Matrix ändert sich jedoch nichts. Wie bei der Erzeugung der Berge ohne Zufall wird jedem neuen Punkt aufgrund seiner Koordinaten ein eindeutiger Eintrag aus der Matrix zugeordnet, mit welchem er dann multipliziert wird. Dieses Verfahren vermeidet die sonst auftretenden „Löcher“ an verschiedenen Kanten und Ecken des Berges. Diese „Löcher“ entstehen dadurch, dass zahlreiche Punkte des Berges während eines Schrittes meherere Male betrachtet und ihnen jedes Mal unterschiedliche Zufallszahlen zugeordnet werden. Wird nun bei jedem Durchlauf derselbe Punkt mit einem anderen Zufallsfaktor multipliziert, so passen die einzelnen kleinen Quadrate nicht mehr zusammen. Durch die Koordinatenmatrix kann dieser Fall nicht mehr eintreten und die Berge sind somit zusammenhängend.

230

11.4 Einschub: Wahrscheinlichkeitsverteilungen

11.4 Einschub: Wahrscheinlichkeitsverteilungen 11.4.1 Das Ereignis

Definition 11.1. Ein Zufallsexperiment habe die Ergebnismenge S = {e1 ; e2 ; . . . ; en }. Dann nennt man jede Teilmenge A von S ein zu diesem Zufallsexperiment gehörendes Ereignis. Endet die Durchführung des Zufallsexperimentes mit einem Ergebnis aus A, so ist das Ereignis A eingetreten. Um diese Defintion zu verdeutlichen, soll folgendes Beispiel betrachtet werden: Beispiel 11.1. Sei das Zufallsexperiment ein Würfelspiel mit der Ergebnismenge S = {1, 2, 3, 4, 5, 6}. Dann wäre ein mögliches Ereignis das Würfeln einer ungeraden Zahl. 11.4.2 Der Erwartungswert

Definition 11.2. Ist X eine Zufallsvariable, welche die Werte x 1 , . . . , xn annehmen kann, so heißt die reelle Zahl µ := E(X) = x1 · P(x1 ) + x2 · P(x2 ) + . . . + xn · P(xn ) Erwartungswert der Zufallsvariablen X. Auch hier soll das Beispiel des Würfelspiels zur Verdeutlichung herangezogen werden. Beispiel 11.2. Es gelte folgende Spielregel: • Gewinn beim Würfeln einer 1:

1e

• Gewinn beim Würfeln einer 2: .. .

2e

• Gewinn beim Würfeln einer 6:

6e

Hierbei entspricht x1 dem Gewinn beim Würfeln einer 1, x2 dem Gewinn beim Würfeln einer 2, usw.. Die Zufallsvariable kann somit in diesem Beispiel sechs verschiedene Werte annehmen. Außerdem steht P(x1 ) für die Wahrscheinlichkeit, eine 1 zu würfeln, P(x 2 ) für die Wahrscheinlichkeit, eine 2 zu würfeln, usw.. Mit Hilfe des Erwartungswertes kann jetzt berechnet werden, welcher Gewinn durchschnittlich erwartet werden kann.

231

11 Fraktale Landschaften Vorsicht: Der Erwartungswert ist ein Mittelwert, dort muss nicht zwingend die größte Wahrscheinlichkeit sein! Diese Tatsache soll anhand der folgenden Wahrscheinlichkeitsverteilung veranschaulicht werden: 6 '

0

' $ 1 2

$ -

1

Abbildung 11.16: Erwartungswert nicht gleich dem wahrscheinlichsten Wert! Hier wäre der Erwartungswert gleich 0, 5, obwohl die Wahrscheinlichkeit an diesem Punkt 0 ist. Beispiel 11.3 (Erwartungswert eines Lotto-Spiels). In diesem Beispiel soll der Gewinn eines fiktiven Lotto-Spiels berechnet werden, mit welchem im Schnitt zu rechnen ist. Der Einsatz pro Spiel betrage 1,70 e. Die Gewinnverteilung lässt sich anhand der folgenden Tabelle ablesen: Anzahl der Richtigen 3 Richtige 4 Richtige 5 Richtige 6 Richtige

Gewinn in e 10,30 42,30 2849,60 483343,30

Tabelle 11.1: Gewinne beim Lotto Die in der Tabelle eingetragenen Daten sind nichts anderes als die Einträge der Zufallsvariablen: • x1 entspricht dem Gewinn bei 6 Richtigen, • x2 entspricht dem Gewinn bei 5 Richtigen, • x3 entspricht dem Gewinn bei 4 Richtigen, • x4 entspricht dem Gewinn bei 3 Richtigen, • x5 entspricht dem Verlust bei weniger als 3 Richtigen

(in unserem Fall −1, 70 e).

Jetzt müssen noch die zugehörigen Wahrscheinlichkeiten P(x 1 ), . . . , P(x5 ) berechnet werden: 1 • P(x1 ) = ¡49¢ ≈ 7, 15 · 10−8 . 6

¡ ¢ Hierbei berechnet 49 6 die Anzahl der Möglichkeiten, 6 Kugeln mit gleicher Wahrscheinlichkeit aus 49 auszuwählen, wobei die Reihenfolge der gezogenen Kugeln unwichtig ist. Da nur eine Kugel-Kombination richtig sein kann, ist die Wahrscheinlichkeit der Kehrwert aller Möglichkeiten.

232

11.4 Einschub: Wahrscheinlichkeitsverteilungen ¡6¢ ¡43¢ · • P(x2 ) = 5 ¡49¢1 ≈ 1, 84 · 10−5 . 6

¡¢ Mit 65 wird die Anzahl der Möglichkeiten berechnet, 5 Kugeln aus den 6 Richtigen und ¡43¢ mit 1 die Anzahl der Möglichkeiten, eine Kugel aus den 43 Falschen auszuwählen.

Das Produkt der beiden Binomialkoeffizienten dividiert durch die Gesamtanzahl ergibt somit die gesuchte Wahrscheinlichkeit, nämlich 5 richtige und eine falsche Kugel auszuwählen. ¡6¢ ¡43¢ · • P(x3 ) = 4 ¡49¢2 ≈ 9, 69 · 10−4 . 6

Dies ergibt sich analog zu oben. ¡6¢ ¡43¢ · • P(x4 ) = 3 ¡49¢3 ≈ 1, 77 · 10−2 . 6

• P(x5 ) = 1 − (P(x1 ) + P(x2 ) + P(x3 ) + P(x4 )) ≈ 0, 98. Die Wahrscheinlichkeit ergibt sich als Gegenwahrscheinlichkeit zu den vier obigen Ereignissen.

Aus diesen Werten kann nun der Erwartungswert berechnet werden. Es ergibt sich:

µ = −1, 36 e. Dies bedeutet, dass langfristig mit einem Verlust von 1,36 e pro Spiel zu rechnen ist. 11.4.3 Die Varianz

Definition 11.3. Ist X eine Zufallsvariable, welche die Werte x 1 , . . . , xn annehmen kann und den Erwartungswert µ hat, so heißt die reelle Zahl

σX 2 := V (X) = (x1 − µ )2 · P(x1 ) + . . . + (xn − µ )2 · P(xn ) die Varianz der Zufallsvariablen X. Dies bedeutet, dass man die Abstände der möglichen Werte der Zufallsvariablen X mit dem Erwartungswert µ vergleicht und dann mit der zugehörigen Wahrscheinlichkeit gewichtet. Hierfür gibt es theoretisch mehrere Möglichkeiten. Eine Idee wäre, die Abweichungen der Werte vom Erwartungswert zu addieren, also

σX 2 1 = (x1 − µ ) · P(x1 ) + . . . + (xn − µ ) · P(xn ). Anhand des folgenden Beispiels lässt sich aber leicht erkennen, dass diese Möglichkeit nicht sehr aussagekräftig wäre, da sich dann die Differenzen gegenseitig aufheben können:

233

11 Fraktale Landschaften Beispiel 11.4. Sei X = {1, 2, 3, 4} eine Zufallsvariable, d. h. es können vier verschiedene Werte angenommen werden. Sei der Erwartungswert in diesem Beispiel µ = 2, 3. Dann wären die Abweichungen der ersten beiden Werte der Variablen X von µ negativ, die der letzten beiden Werte von µ aber positiv. Unsere Test-Version der Varianz wäre somit nicht sehr aussagekräftig, da sich die positiven und die negativen Differenzen gegenseitig aufheben.

x1 £

negativ

x2 ¢

µ

x3 £

positiv

x4 ¢

Es ergeben sich zwei Lösungsmöglichkeiten für dieses Problem: 1. Man nimmt den Betrag der Differenz. 2. Man quadriert die Differenz. Die zweite Möglichkeit hat den Vorteil, dass Werte, welche vom Erwartungswert weiter entfernt sind, stärker ins Gewicht fallen als andere, die näher beim Erwartungswert liegen. Hieraus ergibt sich dann die obige Definition. 11.4.4 Die Standardabweichung

Definition 11.4. Die Standardabweichung ist definiert als die Wurzel der Varianz: p σX = (V (X)). Die Standardabweichung also gibt die Ungenauigkeit des Erwartungswertes an. Beispiel 11.5 (zur Varianz). Eine Firma benötige eine Maschine, welche Stifte herstellt. Die Aufgabe des Einkaufs ist es nun, eine Maschine zu besorgen, welche möglichst viele Stifte der Länge 5 cm herstellt, da diese Länge für die Mitarbeiter am günstigsten ist, wie nach intensiven Untersuchungen festgestellt wurde. Es gibt zwei Angebote – eine blaue und eine rote Maschine. Abbildung 11.17 stellt die Verteilung der Stiftlängen beider Maschinen dar. Es ist zu erkennen, dass beide Maschinen den geforderten Erwartungswert von 5 cm besitzen und die Stiftlänge 5 cm mit der größten Wahrscheinlichkeit auftritt (denn es ist ja bereits bekannt, dass der Erwartungswert nicht zwingend mit der größten Wahrscheinlichkeit angenommen wird, sondern einen Mittelwert darstellt). Bei genauerer Betrachtung der Abbildung lässt sich feststellen, dass die rote Maschine wesentlich mehr Stifte mit falscher Länge herstellt und die Abweichung zudem größer ist (die blaue Maschine stellt z. B. keine Stifte der Länge 2 cm her). Somit ist die Varianz und damit die Standardabweichung der roten Maschine größer und die Firma würde sich deshalb für die blaue Maschine entscheiden.

234

11.4 Einschub: Wahrscheinlichkeitsverteilungen

Abbildung 11.17: Stiftlängenverteilung zweier Maschinen 11.4.5 Diskrete Wahrscheinlichkeitsverteilungen

Eine diskrete Wahrscheinlichkeitsverteilung zeichnet sich durch zwei wesentliche Merkmale aus: • Nur endlich viele Ereignisse sind möglich. • Die Summe der Wahrscheinlichkeiten aller Ereignisse ergibt 1. Die lineare Wahrscheinlichkeitsverteilung

Die lineare Wahrscheinlichkeitsverteilung ist ein Beispiel für eine diskrete Wahrscheinlichkeitsverteilung. Eine Besonderheit ist hierbei, dass alle Wahrscheinlichkeiten gleichverteilt sind, d. h. jedes mögliche Eregnis tritt mit derselben Wahrscheinlichkeit auf. Beispiel 11.6. Als Beispiel für eine lineare Wahrscheinlichkeitsverteilung wird das Würfelspiel betrachtet:

Abbildung 11.18: Würfelspiel Beim Würfelspiel gibt es sechs mögliche Ereignisse: die Zahlen 1 bis 6, die alle mit derselben Wahrscheinlichkeit von 61 gewürfelt werden. Somit ist die Summe der Wahrscheinlichkeiten aller Ereignisse gleich 1.

235

11 Fraktale Landschaften  Beispiel 11.7. Ein weiteres Beispiel ist der Befehl   in MATLAB:

 Abbildung 11.19:   in MATLAB 

Mit dem Befehl   können Zahlen zwischen 0 und 1 zufällig bestimmt werden. Das Besondere dabei ist, dass jede dieser Zahlen mit derselben Wahrscheinlichkeit von 2, 25 · 10 −16 von diesem Befehl ausgewählt wird. Wie kommt es zu dieser Wahrscheinlichkeit?  Die Anzahl der Zahlen zwischen 0 und 1, die mit dem Befehl   zufällig bestimmt werden  können, ist begrenzt; d. h., es gibt nur endlich viele Zahlen, die mit   ausgewählt werden.  Würden mit   unendlich viele Zahlen zufällig bestimmt werden können, so wäre die Wahrscheinlichkeit für eine dieser Zahlen gleich 0. Der Abstand zwischen zwei benachbarten Zahlen in MATLAB beträgt 2, 25 · 10 −16 . Daraus ergibt sich die obige Wahrscheinlichkeit für eine Zahl. Die Linearität des Befehls  



wird anhand der folgenden Abbildung veranschaulicht:

Abbildung 11.20: Wahrscheinlichkeitsverteilung von  



Wie entsteht dieses Bild?  Es wird eine 1000 × 1000 - Matrix erstellt, wobei die Einträge zufällig mit dem Befehl   bestimmt werden. Dann wird die Matrix mit 6 multipliziert, so dass dadurch in der Matrix Zu-

236

11.4 Einschub: Wahrscheinlichkeitsverteilungen fallszahlen zwischen 0 und 6 stehen. Jetzt wird die Matrix grafisch veranschaulicht, d. h. jedem Zahlenwert wird durch eine entsprechende     eine zugehörige Farbe zugeordnet. An dieser Veranschaulichung ist leicht erkennbar, dass die Zahlen gleichmäßig verteilt sind und  keine Muster auftreten. Der Befehl   bestimmt somit jede Zahl mit derselben Wahrscheinlichkeit. Der Quellcode in MATLAB: A = rand ( 1 0 0 0 ) ; A = A .∗6; imagesc (A ) ; Die Binomialverteilung

Definition 11.5. Ein Zufallsexperiment heißt Bernoulli-Experiment, wenn es nur zwei mögliche Ergebnisse hat. Eine Zufallsvariable, die bei einem der Ergebnisse den Wert 1 („Treffer“), beim anderen den Wert 0 („Niete“) annimmt, heißt Bernoulli-Variable. Die Wahrscheinlichkeit für „Treffer“ wird mit p und für „Niete“ mit q = 1 − p bezeichnet. Ein Beispiel für ein Bernoulli-Experiment ist der Wurf einer Münze. Sollte sie nicht ideal sein, so gibt es unterschiedliche Wahrscheinlichkeiten für Kopf und Zahl. Beispiel 11.8. Es gelte bei einem Spiel folgende Spielregel: Zeigt die Münze nach dem Wurf Kopf, so ist das Spiel gewonnen, zeigt sie die Zahl, dann ist das Spiel verloren. Somit ist bei diesem Spiel Kopf der „Treffer“ und Zahl die „Niete“. Folglich ist die Wahrscheinlichkeit für den Wurf eines Kopfes p und die für den Wurf einer Zahl q = 1 − p. Definition 11.6. Ein Zufallsexperiment, das aus n unabhängigen Durchführungen desselben Bernoulli-Experimentes besteht, heißt Bernoulli-Kette der Länge n. Dabei bedeutet unabhängig, dass sich keine Durchführung des Experimentes davon beeinflussen lässt, ob das Experiment vorher schon einmal oder mehrmals durchgeführt worden ist. Das Ziehen von Kugeln aus einer Trommel ohne Zurücklegen ist beispielsweise nicht unabhängig, da sich die Wahrscheinlichkeiten in jedem Schritt ändern. Wird in Beispiel 11.8 das Experiment 100-mal nacheinander durchgeführt, so ergibt sich eine Bernoulli-Kette der Länge 100. Satz 11.1 (von Bernoulli). Ein Bernoulli-Experiment mit der Wahrscheinlichkeit p für einen „Treffer“ werde n-mal durchgeführt. Die Durchführungen seien voneinander unabhängig. Dann gilt für die Wahrscheinlichkeit für genau k „Treffer“ (k = 0, 1, . . . , n): µ ¶ n P(k) = · pk · (1 − p)n−k , k ¡¢ wobei nk die Anzahl der Möglichkeiten beschreibt, k aus n auszuwählen. 237

11 Fraktale Landschaften Mit Hilfe dieses Satzes kann die Wahrscheinlichkeit berechnet werden, bei n Durchführungen genau k Treffer zu erhalten (wie zum Beispiel die Wahrscheinlichkeit, bei 100 Würfen genau 35-mal Kopf zu sehen). Obige Gleichung erinnert an die allgemeine binomische Formel: n µ ¶ n n · an · bn−k (a + b) = ∑ k k=1

(11.1)

Wird für jede mögliche Trefferanzahl die zugehörige Wahrscheinlichkeit berechnet und diese in einer neuen Zufallsvariable gespeichert, so ergibt sich die Binomialverteilung – eine Bezeichnung, die aufgrund der engen Verbindung mit der binomischen Formel entstanden ist. Definition 11.7. Sei X eine Zufallsvariable, welche die Werte 0, 1, . . . , n annehmen kann. Dann nennt man eine Wahrscheinlichkeitsverteilung X von der Form µ ¶ n · pk · (1 − p)n−k k 7−→ k eine Binomialverteilung mit den Parametern n und p. Satz 11.2. Für eine Binomialverteilung gilt folgendes: Der Erwartungswert ist µ = E(X) = n · p, wobei n die Anzahl der Durchführungen und p die „Trefferwahrscheinlichkeit“ ist. Die Varianz lässt sich berechnen durch

σX 2 = V (X) = n · p · q, mit q = (1 − p) als „Nietenwahrscheinlichkeit“. Daraus ergibt die Standardabweichung: √ σX = n · p · q. Beispiel 11.9 (Binomialverteilung). Betrachtet wird eine Münze mit folgenden Eigenschaften: A = Kopf A¯= Zahl

P(A) = p = 0, 3 ¯ = q = 1 − p = 0, 7 P(A)

Hierbei sei Kopf als „Treffer“ definiert. Wird die Münze 165-mal geworfen (n = 165) und zu jeder möglichen Kopfanzahl k die zugehörige Wahrscheinlichkeit notiert (k = 0, 1, . . . , 165), dann können mit Hilfe des obigen Satzes folgende Eigenschaften berechnet werden:

µ = 165 · 0, 3 = 49, 5 σX2 = 49, 5 · 0, 7 = 34, 65 p σX = 34, 65 ≈ 5, 89. 238

11.4 Einschub: Wahrscheinlichkeitsverteilungen

Abbildung 11.21: Binomialverteilung Die auf diese Weise theoretisch berechneten Werte lassen sich auch anhand des Schaubild (siehe Abbildung 11.21) überprüfen. Die Bergspitze liegt bei etwa 50 Köpfen, d. h. die Wahrscheinlichkeit, 50-mal einen Kopf zu sehen, ist am größten. Da die Abbildung zudem relativ symmetrisch zur Bergspitze ist, wird der Mittelwert gleich dieser Anzahl sein. In Kenntnis der Standardabweichung von ungefähr 6 Köpfen ist es folglich nicht sehr sinnvoll, mit mehr als 70 oder weniger als 30 Köpfen zu rechnen. 11.4.6 Kontinuierliche Wahrscheinlichkeitsverteilungen

Eine kontinuierliche Wahrscheinlichkeitsverteilung zeichnet sich durch folgende wesentlichen Merkmale aus: • Unendlich viele Ereignisse sind möglich. • Das Integral über der Wahrscheinlichkeitskurve beträgt 1. Als Beispiel wird die Normalverteilung betrachtet, welche häufig verwendet wird, um „natürliche“ Beobachtungen zu beschreiben. Beispiel 11.10. Die allgemeine Formel einer Normalverteilung lautet: 1 2 1 ϕ (x) = √ · e(− 2 (x −ρ )) 2πθ

Es gilt: • Erwartungswert: • Varianz:

E(X) = µ = ρ ,

V (X) = σX 2 = θ 2 ,

• Standardabweichung:

σX = θ .

239

11 Fraktale Landschaften Die Gauß-Kurve ist eine spezielle Normalverteilung mit θ = 1 und ρ = 0 .

Abbildung 11.22: Die Gauß-Kurve Sie beschreibt einen „natürlichen“ Zufall, der vor allem in der Natur vorkommt. 

Eine Näherung der Normalverteilung ist der Befehl    in MATLAB. Dieser Befehl bestimmt zufällige Zahlen zwischen -3 und 3, welche nach der Wahrscheinlichkeitsverteilung einer GaußFunktion ausgewählt werden. Das bedeutet, dass die Zahlen im Bereich um 0 mit einer größeren Wahrscheinlichkeit gewählt werden ist als die Zahlen im Bereich um 3 und -3. 

Warum stellt der Befehl    „nur“ eine Näherung der Normalverteilung dar? Wie oben schon erwähnt ist die Anzahl der Zahlen, die in MATLAB zufällig bestimmt werden können, begrenzt. Somit kann dieser Befehl nicht kontinuierlich sein, da nicht unendlich viele Ereignisse möglich sind.  Die Näherung des Befehls    an die Normalverteilung kann wieder veranschaulicht werden:

 Abbildung 11.23: Wahrscheinlichkeitsverteilung von   

Um dieses Bild zu erzeugen, wird wieder eine 1000 × 1000-Matrix erstellt, wobei die einzelnen  Einträge mit dem Befehl    zufällig bestimmt werden. Nun wird zu jedem Eintrag 4 addiert, sodass in der Matrix Zufallszahlen zwischen 1 und 7 stehen (zum besseren Vergleich mit  dem Bild des Befehls   ). Schließlich wird die Matrix mithilfe einer geeigneten     veranschaulicht, indem wieder jedem Zahlenwert eine zugehörige Farbe zugeordnet wird. An der Abbildung ist zu erkennen, dass die Zahlen dieses Mal nicht gleichverteilt sind. Anders  als beim Befehl   gibt es somit Zahlen, die mit einer größeren Wahrscheinlichkeit ausgewählt werden als andere.

240

11.5 Noch natürlichere Berge . . . 11.4.7 Vergleich unterschiedlicher Wahrscheinlichkeitsverteilungen

Abbildung 11.24: Vergleich zweier zufälliger Berg mit  



 bzw.   

Bei diesem Vergleich sind zwei Berge auf einem Dreiecksgitter zu erkennen, welche sich deutlich voneinander unterscheiden. Bei der Erzeugung des linken Berges wurde zur Berechnung  der Zufallszahlen der Befehl   verwendet, bei der Erzeugung des rechten Berges der Befehl     . Es ist bekannt, dass bei einem Neustart von MATLAB der Zufallszahlengenerator neu initialisiert wird. Dadurch ergeben sich nach jedem Neustart immer wieder dieselben Zufallszahlen. Beide Berge wurden direkt nach dem Neustart erzeugt – somit ist ihr unterschiedliches Ausse  hen allein darauf zurückzuführen, dass zwei verschiedene Befehle (  und    ) zur Bestimmung der Zufallszahlen verwendet wurden. Denn wäre für beide Berge derselbe Befehl verwendet worden, so müssten die Berge identisch sein. 11.4.8 Schlussfolgerung

In der Mathematik und in der Natur existieren verschiedene Wahrscheinlichkeitsverteilungen, welche bei der Anwendung auch unterschiedliche Zufallszahlen liefern. Deshalb hängt sowohl die Berechnung als auch das Aussehen der Berge von der verwendeten Wahrscheinlichkeitsverteilung sowie von dem zugehörigen Zufallsgenerator ab.

11.5 Noch natürlichere Berge . . . In diesem Abschnitt sollen „noch natürlichere“ Berge erstellt werden! Warum ist das bisherige Aussehen der Berge nicht zufriedenstellend? Ziel bei der Erzeugung der Berge ist es, diese möglichst natürlich wirken zu lassen. Bisher wurde das Aussehen eines Berges allein durch den Zufall entschieden. Hierbei wurde aber vernachlässigt, dass je nach Standort eventuell nur bestimmte Landschaftsformen vorkommen können. Diese Landschaftsformen können beispielsweise durch den Untergrund, Flüsse oder Windverhältnisse geprägt sein. Die Implementierung soll deshalb so erweitert werden, dass diese künftig die genannten Einflüsse berücksichtigen kann.

241

11 Fraktale Landschaften Eine Möglichkeit, dies zu realisieren, besteht darin, auf den „zufällig“ erzeugten Berg eine sogenannte Geländefunktion anzuwenden, welche die gewünschte Landschaftsform erzwingt. Was die Änderungen in der Implementierung betrifft, so muss lediglich in der Hauptfunktion eine Erweiterung vorgenommen werden. Hier wird in den Quellcode die Geländefunktion eingefügt, welche dann auf den zufällig erzeugten Berg angewandt wird. Dabei werden beispielsweise folgende Zeilen eingefügt: fakt or = 32; exponent = 1 / 2 ; y = y + f a k t o r ^ exponent ∗( ( 1 / 2 7 ) ^ exponent − (1/27 − . . . x1 . ∗ x2 .∗(1 − x1−x2 ) ) . ^ e x p o n e n t ) ;

Als sinnvolle Geländefunktion sind viele verschiedene Funktionen vorstellbar. Am besten ist es deshalb, einfach verschiedene Funktionen auf den zufällig erzeugten Berg anzuwenden und sich dann für diejenige zu entscheiden, die für die gewünschte Landschaftsform am geeignetsten ist.

11.5.1 Landschaftsbeispiele

Im Folgenden werden einige Beispiele für erzwungene Landschaften gezeigt:

Abbildung 11.25: Berg mit Spitze auf Dreiecksgitter Abbildung 11.25 stellt einen Berg auf einem Dreiecksgitter dar, auf den eine Funktion angewandt wurde, welche in ihrem Schwerpunkt ihr Maximum annimmt. Die verwendete Funktion lautet: 1 2

y = y + 32 ·

õ

1 27

¶ 12

µ

1 − − x1 · x2 · (1 − x1 − x2 ) 27

¶ 21 !

(11.2)

Wird diese Funktion angewandt, so entsteht auf jeden Fall eine Bergspitze über der Mitte des Gitters.

242

11.5 Noch natürlichere Berge . . .

Abbildung 11.26: Ein erzwungenes Tal In Abbildung 11.26 wird ein Tal erzwungen. Dies wird mit folgender Funktion erreicht: y = y + sin (π · x1 ) · (sign (|x2 − 0, 5| − 0, 2) + 1)

(11.3)

Abbildung 11.27: Berg mit Spitze auf Vierecksgitter Natürlich können die Berge auch auf einem Vierecksgitter beeinflusst werden. Abbildung 11.27 zeigt einen Berg, dessen Spitze sich über der Mitte des Gitters befindet. Erstellt wurde dieser Berg mit der Funktion: õ ¶ µ ¶0,9 ! 1 0,9 1 0,9 y = y + 10 · − − x1 · (1 − x1 ) · x2 · (1 − x2 ) (11.4) 16 16

Abbildung 11.28: Gebirgszug Die letzte Landschaft (Abbildung 11.28) wurde mit derselben Funktion wie die vorherige erzeugt. Dabei wurden lediglich ein paar Parameter verändert. Auf diese Weise wird aus der Bergspitze ein länglicher Gebirgszug.

243

11 Fraktale Landschaften 11.5.2 Zusammenfassung der Implementierung

Wie wir bereits gesehen haben, muss in MATLAB immer mit Rücksichtnahme auf die fehlenden Datenstrukturen programmiert werden. Deshalb ist die Logik des Programmes ist immer so ausgerichtet, dass sie sich auf Matrizen anwenden lässt. Um diese Situation zu verbessern, könnte die Möglichkeit, C- oder C++-Code in MATLAB zu importieren, genutzt werden. MATLAB wird dann allein für die Visualisierung, also das Zeichnen der Landschaften, verwendet, da dies in MATLAB ein wesentlich geringer Aufwand ist als in einer anderen Programmiersprache. Ansetzen könnte man zum Beispiel mit einer Datenstruktur, welche die einzelnen Dreiecke oder Vierecke beschreibt. Man definiere sich ein Objekt Dreieck, indem folgende Eigenschaften gespeichert werden:

        





• •



 



Hier wird zu jedem Dreieck gespeichert, aus welchem anderen es entstanden ist. Anhand des           können die zugehörigen Koordinaten errechnet werden. Die   gibt an, ob das Dreieck links unten, rechts unten, oben oder in der Mitte des Vaterdreiecks entstanden ist. Mithilfe der Variablen    kann die kontrahierende Höhe hinzuaddiert werden. Sollen insgesamt n Schritte durchgeführt werden, so können die Dreiecke nacheinander im Bezug auf ihr Vaterdreieck errechnet werden und in einem für MATLAB geeigneten Format gespeichert werden. Diese Berechnungen können alle in C vorgenommen werden, woraus sich ein großer Geschwindigkeitsvorteil ergibt. Zum Schluss wird das Ergebnis dann in MATLAB geplottet. 

11.6 Wolken 11.6.1 Zweidimensionale Wolken

Abbildung 11.29: Wolke auf Dreiecksgitter

244

11.6 Wolken In diesem letzten Abschnitt soll gezeigt werden, wie aus den obigen Bergen relativ leicht zweidimensionale Wolken erzeugt werden können. Dabei wird der Berg auf die x1 -x2 -Ebene projiziert. Dies ist vergleichbar mit einer Sicht von oben auf die Berge. Mit Hilfe einer geeigneten     werden dann die x 1 - und x2 -Koordinaten des Berges mit dem Befehl  veranschaulicht. In Abbildung 11.29 und 11.30 ist sowohl eine Wolke auf einem Dreiecksgitter als auch eine Wolke auf einem Vierecksgitter zu sehen.

Abbildung 11.30: Wolke auf Vierecksgitter Um zweidimensionale Wolken zu implementieren, muss nur die Hauptfunktion geändert werden, welche dann folgendermaßen aussieht: function zeichne_Vierecke (n , f a c t o r ) % t h e r i g h t colormap l o a d map_wolke ; colormap ( map ) ; % g e t t h e co−o r d i n a t e s o f t h e m o u n t a i n [ x1 , x2 , y ] = V i e r e c k e _ m a t r i x ( n , f a c t o r ) ; % p l o t t h e 2D−p i c t u r e f i l l ( x1 ’ , x2 ’ , y ’ / max ( max ( y ) ) ) ; axis off ; grid o f f ; shading i n t e r p ;

Bemerkungen: • Der dreidimensionale Berg wird auf die zweidimensionale Ebene projiziert, d. h. der y-Vektor wird nur für die Farbgebung verwendet.        ⇒ Die Übergänge zwischen den Quadraten werden interpoliert, •   wodurch die Wolken realistischer aussehen.

245

11 Fraktale Landschaften 11.6.2 Dreidimensionale Wolken

Warum lassen sich dreidimensionale Wolken nicht genauso leicht erzeugen? Zweidimensionale Wolken entstehen durch die Projektion eines dreidimensionalen Berges auf die zweidimensionale Ebene. Folglich entstehen dreidimensionale Wolken durch die Projektion eines vierdimensionalen Berges auf den dreidimensionalen Raum. Dabei besteht die größere Schwierigkeit nicht darin, einen vierdimensionalen Berg zu erzeugen. Weitaus schwieriger ist es, diesen Berg dann so zu veranschaulichen, dass die Transparenz, die man von Wolken erwartet, sichtbar wird.

246

12 Codierung von fraktalen Bildern mit einfachen Transformationen von Marko Grob und Wiebke Heidelberg Zusammenfassung: Die vorliegende Ausarbeitung erläutert und demonstriert die Funktionsweisen verschiedener Verfahren zum Generieren von Fraktalen, nämlich der Multiple Reduction Cody Machine, der Iterated Function Systems und der L-Systems. Außerdem gibt sie einen Überblick über die fraktale Bildkompression.

12.1 Multiple Reduction Copy Machine (MRCM) 12.1.1 Das Prinzip der MRCM

Die Multiple Reduction Copy Machine, im Folgenden mit MRCM abgekürzt, beschreibt einen Algorithmus zur Erzeugung von Fraktalen. Dabei wendet die MRCM festgelegte affine Transformationen auf ein vorgegebenes Startbild an. Auf das erhaltene Bild werden erneut die Transformationen angewandt (siehe Abbildung 12.1).

Abbildung 12.1: Die Funktionsweise der MRCM So nähert sich das Bild einem Zielbild an, das vom Startbild unabhängig und durch die affinen Transformationen eindeutig bestimmt ist. Bekannte Fraktale wie die Koch-Kurve, das Sierpinski-Dreieck oder der Barnsley-Farn lassen sich so darstellen. 12.1.2 Affine Transformationen

Im folgenden werden die affinen Transformationen im zweidimensionalen Raum definiert, die die MRCM zur Erzeugung von Fraktalen verwendet. Solche Transformationen sind z. B. Ver-

247

12 Codierung von fraktalen Bildern mit einfachen Transformationen schieben, Strecken, Spiegeln oder Drehen. Sie werden durch Vektor- und Matrixoperationen dargestellt. ¡x¢

Verschieben: Ein Punkt y wird durch Vektoraddition verschoben.

¶ µ ¶ µ ¶ µ x + ∆x ∆x x . = + y + ∆y ∆y y

¡¢ Strecken: Durch Multiplikation von Punkten xy mit einem Skalar wird ein Objekt gestreckt. ¶ µ ¶ µ a·x x . = a· a·y y

Verzerren: Um ein Objekt zu verzerren, werden für die Achsen unterschiedliche Streckungs-

faktoren verwendet. Hierzu wird eine Transformationsmatrix verwendet: µ ¶ µ ¶ µ ¶ x s1 · x s1 0 × = , 0 s2 y s2 · y wobei s1 den Streckfaktor für die x-Achse und s 2 den für die y-Achse angibt. Spiegeln: Eine Spiegelung wird durch Matrixmultiplikation mit einer Transformaionsmatrix

erreicht, wobei die −1 jeweils zur Spiegelung an der y- oder der x-Achse führt, z. B. µ

−1 0 0 1



×

µ ¶ µ ¶ −x x . = y y

Drehen: Eine Drehung mit beliebigem Rotationswinkel α erhält man durch eine Matrixmulti-

plikation der Form µ

cos α sin α

− sin α cos α



µ ¶ µ ¶ x x · cos α − y · sin α × = . y x · sin α + y · cos α

Da das Hintereinanderausführen der einzelnen Transformationen einen enormen Rechenaufwand bedeutet, fasst man die einfachen Operationen in einer Matrix zusammen: µ

a b c d



      µ ¶ µ ¶ a b e x a·x+b·y+e x e × + =  c d f × y  =  c·x+d ·y+ f  y f 0 0 1 1 1

mit a = ±s1 · cos α , b = − sin α , c = sin α , d = ±s2 · cos α , e = ∆x und f = ∆y. Dabei ermöglicht die Erweiterung der Matrix um eine Dimension auch das Einbinden der Verschiebung um ∆x und ∆y.

248

12.1 Multiple Reduction Copy Machine (MRCM) 12.1.3 Formale Funktionsweise der MRCM

Wie bereits anhand des Schemas in Abb. 12.1 erläutert, werden in der MRCM Transformationen τ1 , τ2 , . . . , τn auf ein Startbild A angewandt. So entsteht T (A) = τ1 (A) ∪ τ2 (A) ∪ . . . ∪ τn (A) als neues Bild, wobei T Hutchinson-Operator genannt wird. Durch Anwenden des HutchinsonOperators erhält man also Ak = T (Ak−1 ), k = 0, 1, 2, . . . Das erste erzeugte Bild A1 wird als Blueprint bezeichnet. Am Blueprint kann man gut erkennen, wie sich die verwendeten Transformationen auf das Eingabebild auswirken. Die erhaltenen Abbildungen streben gegen das Zielbild der MRCM, den sog. Attraktor A ∞ : lim T (An ) = A∞ .

n→∞

Dieser Attraktor ist eindeutig bestimmt und gegenüber der MRCM invariant, also T (A∞ ) = A∞ . 12.1.4 Der Algorithmus der MRCM

Für das Programm     werden ein Startbild und Transformationen benötigt. Die folgenden wurden für die Erzeugung der in der Ausarbeitung eingefügten Bilder verwendet: function sb = s t a r t b i l d % SB = STARTBILD c r e a t e s a s m a l l s q u a r e . sb = [ 0 1 1 0 0 NaN 0.1 0.1 NaN 0.3 0.1 ];

0 0 1 1 0 NaN 0.5 0.1 NaN 0.1 0.1

function sb = v a r _ s t a r t b i l d % SB = VAR_STARTBILD c r e a t e s a s m a l l t r i a n g l e . sb = [ 0

0

249

12 Codierung von fraktalen Bildern mit einfachen Transformationen

0 1 0 NaN 0.1 0.1 0.3 0.3 0.1 ];

−1 −0.5 0 NaN −0.4 −0.6 −0.6 −0.4 −0.4

function T = c hrt r ee % T = CHRTREE r e t u r n s t h e t r a n s f o r m a t i o n f o r % creating the twin christmas tree . clear T; R = [ 0 −1 0 ; 1 T{1} = [ 1 / 2 0 T{2} = [ 1 / 2 0 T{3} = [ 1 / 2 0

0 0; 0 0 1]; % 90 d e g r e e r o t a t i o n 1 / 2 ; 0 1 / 2 0 ; 0 0 1 ] ∗R ; 1 / 2 ; 0 1 / 2 1 / 2 ; 0 0 1 ] ∗ i n v (R ) ; 1/4;0 1/2 sqrt ( 3 ) / 4 ; 0 0 1];

function T = s i e r d r % T = SIERDR r e t u r n s t h e t r a n s f o r m a t i o n f o r % creating the Si erpins ki triangle . clear T; T{1} = [ 1 / 2 0 0 ; 0 1 / 2 0 ; 0 0 1 ] ; T{2} = [ 1 / 2 0 1 / 2 ; 0 1 / 2 1 / 2 ; 0 0 1 ] ; T{3} = [ 1 / 2 0 1 / 2 ; 0 1 / 2 0 ; 0 0 1 ] ; f u n c t i o n T = koch % T = KOCH r e t u r n s t h e t r a n s f o r m a t i o n f o r % c r e a t i n g t h e Koch c u r v e . clear T; T{1} = [ 1 / 3 0 0 ; 0 1 / 3 0 ; 0 0 1 ] ; T{2} = [ 1 / 3 ∗ c o s ( p i / 3 ) −1/3∗ s i n ( p i / 3 ) 1/3∗ sin ( pi / 3 ) 1/3∗ cos ( pi / 3 ) 0 0 T{3} = [ 1 / 3 ∗ c o s ( p i / 3 ) 1 / 3 ∗ s i n ( p i / 3 ) −1/3∗ s i n ( p i / 3 ) 1 / 3 ∗ c o s ( p i / 3 ) 0 0 T{4} = [ 1 / 3 0 2 / 3 ; 0 1 / 3 0 ; 0 0 1 ] ; f u n c t i o n T = frbaum

250

1/3; . . . 0; . . . 1]; 1/2; . . . sqrt ( 3 ) / 6 ; 1];

...

12.1 Multiple Reduction Copy Machine (MRCM)

% T = FRBAUM r e t u r n s t h e t r a n s f o r m a t i o n f o r % creating a fractal tree structure . clear T T{1} = [ 0 0 0 ; 0 0 . 5 0 ; 0 0 T{2} = [ 0 . 4 2 −0.42 0 ; 0 . 4 2 T{3} = [ 0 . 4 2 0 . 4 2 0 ; −0.42 T{4} = [ 0 . 1 0 0 ; 0 0 . 1 0 . 2 ;

1]; 0.42 0.2;0 0 1]; 0.42 0. 2; 0 0 1]; 0 0 1];

function T = farn % T = FARN r e t u r n s t h e t r a n s f o r m a t i o n f o r % creating a f r a c t al farn leaf . clear T; T{1} = [ 0 0 0 ; 0 0 . 1 6 0 ; 0 0 1 ] ; T{2} = [ 0 . 8 5 0 . 0 4 0 ; −0.04 0 . 8 5 1 . 6 ; 0 0 1 ] ; T{3} = [ 0 . 2 −0.26 0 ; 0 . 2 3 0 . 2 2 1 . 6 ; 0 0 1 ] ; T{4} = [ −0.15 0 . 2 8 0 ; 0 . 2 6 0 . 2 4 0 . 4 4 ; 0 0 1 ] ;

Das Programm      verwendet die angegebenen Transformationen T und erzeugt so nach N Iterationen eine Annäherung an das entsprechende Fraktal: f u n c t i o n mrcm (N, s t a r t , f l a g ) % % % % % % % % % % % % %

MRCM( N , START , FLAG ) c o n s t r u c t s a f r a c t a l p i c t u r e by t h e p r i n c i p l e o f a MRCM ( m u l t i p l e r e d u c t i o n c o p y machine ) . The a l g o r i t h m s t o p s a f t e r e a c h i t e r a t i o n . N i s t h e number o f i t e r a t i o n s . s t a r t determines the basic item : s t a r t = 0 uses a t r i a n g l e , o t h e r w i s e a square i s used . f l a g c h o o s e s t h e form o f t h e p i c t u r e : flag = 0 r e s ul t s in the Sierpinski tri angle ; f l a g = 1 draws t h e Koch c u r v e ; f l a g = 2 shows a f r a c t a l t r e e ; flag = 3 returns a f r ac t a l farn leaf ; otherwise a christmas tree is constructed .

% choose the basic item i f ( s t a r t == 0 ) sb = v a r _ s t a r t b i l d ; % t r i a n g l e else sb = s t a r t b i l d ; % square end % choose the t r a n s f o r m a t i o n switch ( flag ) case 0 T = sierdr ; % Sierpinski triangle

251

12 Codierung von fraktalen Bildern mit einfachen Transformationen

case 1 T = koch ; % Koch c u r v e case 2 T = frbaum ; % f r a c t a l t r e e case 3 T = farn ; % f r ac t a l farn leaf otherwise T = chrtree ; % christmas tree end k = l e n g t h ( T ) ; % number o f t r a n s f o r m a t i o n s e s b = [ sb ’ ; o n e s ( 1 , s i z e ( sb , 1 ) ) ] ; % adaption of the basic item p l o t ( esb ( 1 , : ) , esb ( 2 , : ) , ’ Color ’ , [0 0 0 ] , ’ LineWidth ’ , 2 ) ; % plot the basic item axis equal , axis o f f pause f o r i = 1 :N tb = [ ] ; for j = 1: k b = T{ j } ∗ e s b ; % perform the t r a n s f o r m a t i o n t b = [ t b [NaN NaN 1 ] ’ , b ] ; % add t h e new p i c t u r e end esb = tb ; % s u b s t i t u t e t h e o l d by t h e new image p l o t ( esb ( 1 , : ) , esb ( 2 , : ) , ’ Color ’ , [0 0 0 ] , ’ LineWidth ’ , 1 ) ; % p l o t t h e new image axis equal , axis o f f ; pause end

12.1.5 Beispiele in MATLAB

Abbildung 12.2: Das verwendete Startbild In diesem Abschnitt werden verschiedene Bilder von mit der MRCM erzeugten Fraktalen ge-

252

12.1 Multiple Reduction Copy Machine (MRCM) zeigt. Verschiedene Anzahlen von Iterationen demonstrieren die beliebige Annäherung an den Attraktor. Als Startbild wird ein einfaches Quadrat mit einem „L“ in der unteren linken Ecke verwendet (siehe Abbildung 12.2). Bei der Erzeugung der Bilder in MATLAB zeigt sich der sehr hohe Rechenaufwand der MRCM: Lassen sich beim Twin Christmas Tree und dem Sierpinski-Dreieck, die jeweils über drei Transformationen erzeugt werden, noch zehn Iterationen auf dem verwendeten Rechner durchführen, so sind für Koch-Kurve, Baum und Farn, die durch vier Transformationen erzeugt werden, nur noch 9 Iterationen durchführbar. Da aber auch nach dieser maximal möglichen Anzahl von Iterationen das Ergebnisbild vor allem beim Farn nicht zufriedenstellend ist, zeigt sich, dass das Verfahren der MRCM zur Erzeugung von Fraktalen nicht uneingeschränkt geeignet ist. Es wird deshalb später ein optimiertes Verfahren vorgestellt.

Abbildung 12.3: Twin Christmas Tree – Blueprint und Bild nach 10 Iterationen

Abbildung 12.4: Sierpinski-Dreieck – Blueprint und Bild nach 10 Iterationen

253

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.5: Kochkurve – Blueprint und Bild nach 3, 6 und 9 Iterationen

Abbildung 12.6: Fraktaler Baum – Blueprint und Bild nach 9 Iterationen

Abbildung 12.7: Farn – Blueprint und Bild nach 9 Iterationen

254

12.2 Iterated Function Systems (IFS) Wie bereits im Abschnitt 12.1.3 erläutert, ist der Attraktor der MRCM vom Startbild unabhängig. Um dies zu veranschaulichen, ist in Abb. 12.8 der Farn mit einem veränderten Startbild erzeugt.

Abbildung 12.8: Farn mit anderem Startbild - Blueprint und Bild nach 9 Iterationen 12.1.6 Idealisierte MRCM

Die Beobachtungen zeigen, dass das Zielbild der MRCM vom Startbild unabhängig ist. Nach unendlich vielen Schritten wird das Startbild nur noch in einen Punkt abgebildet. Die Struktur des Startbildes ist also vernachlässigbar. Hinzu kommt die Überlegung, dass ein Punkt, der im Fraktal liegt, wieder auf einen Punkt im Fraktal abgebildet wird, und ein Punkt, der außerhalb liegt, sich mit jedem Schritt dem Fraktal annähert. Diese Vorstellung wird als idealisierte MRCM bezeichnet, welche die Grundlage für die IFS bildet, die im folgenden Kapitel behandelt wird.

12.2 Iterated Function Systems (IFS) 12.2.1 Das Prinzip der IFS

Die Iterated Function Systems (IFS) sind eine weitere Möglichkeit, Fraktale zu erzeugen. Die Idee der IFS ist eine Abstraktion der MRCM. Es wird nicht von einem Startbild mit einer bestimmten Struktur ausgegangen, sondern es werden nur noch Punkte verwendet. Auf einen beliebig festgelegten Startpunkt wird über eine Zufallsauswahl eine Transformation angewendet, wobei auf die gleichen Transformationen zurückgegriffen wird, die auch die

255

12 Codierung von fraktalen Bildern mit einfachen Transformationen MRCM verwendet. Auf den erzeugten Punkt wird dann wieder eine Transformation angewendet, usw. (siehe Abb. 12.9).

Abbildung 12.9: Die Funktionsweise der IFS Das zu codierende Fraktal wird als Fixpunkt einer kontraktiven Transformation in einem metrischen Raum betrachtet. Der Abstand der Punkte nimmt dabei mit jeder Transformation ab. Diese Annäherung an einen Fixpunkt ist in Abb. 12.10 dargestellt.

Abbildung 12.10: Anwendung einer kontraktiven Transformation τ auf drei Punkte – [12] Zur Beschreibung von Fraktalen und Binärbildern wird der Hausdorff-Raum H (X) mit der

256

12.2 Iterated Function Systems (IFS) Hausdorff-Metrik h verwendet. Ein Binärbild wird als Teilmenge des R 2 aufgefasst, also werden z. B. alle schwarzen Bildpunkte betrachtet. Der Hausdorff-Raum ist dann die Menge aller möglichen Binärbilder. Die Hausdorff-Metrik h ist definiert als h(B,C) = max {d(C, B), d(B,C)}, wobei der Abstand eines Punktes x ∈ R 2 von einem Binärbild B ∈ H (X) durch d(x, B) = min {d(x, y)} y∈B

gegeben ist. Der Abstand von einem Binärbild C zu einem Binärbild B ist wie folgt definiert: d(C, B) = max {d(x, B)} x ∈C

Die genaue Theorie zu metrischen Räumen ist in der Ausarbeitung zum „Raum der Fraktale“ angegeben. Nach Definition des Hausdorff-Raums lassen sich die IFS formal wie folgt definieren: Definition 12.1 (IFS). Ein Iterated Function System (IFS) bezeichnet einen metrischen Raum mit einer Transformation T , wobei T die Vereinigung kontraktiver Transformationen τ n ist. Der dazugehörige Fixpunkt A ist der Attraktor (vgl. Abschnitt 12.1.3) und erfüllt als einziger Punkt die Bedingung A = T (A) =

N [

τn (A).

n=1

Der Attraktor lässt sich durch A = lim T n (B) n→∞

∀ B ∈ H (X)

erzeugen und stellt ein Fraktal dar. 12.2.2 Der Algorithmus der IFS

Der Algorithmus in    greift auf die gleichen Transformationen wie    zurück, die bereits in Abschnitt 12.1.4 aufgeführt sind. f u n c t i o n i f s (N, f l a g ) % % % % % % %

IFS ( N , FLAG ) c o n s t r u c t s a f r a c t a l p i c t u r e by t h e p r i n c i p l e o f a IFS ( i t e r a t e d f u n c t i o n s y s t e m s ) . I t p lot s N si ngle points according which i s c h o s e n r a n d o m l y o f a f i x e d The s e t i s d e t e r m i n e d by t h e v a l u e flag = 0 r e s ul t s in the Sierpinski

to a transformation set of transformations . of flag : triangle ;

257

12 Codierung von fraktalen Bildern mit einfachen Transformationen

% % % %

f l a g = 1 draws t h e Koch c u r v e ; f l a g = 2 shows a f r a c t a l t r e e ; flag = 3 returns a f r ac t al farn leaf ; otherwise a christmas tree is constructed .

% choose the t r a n s f o r m a t i o n s e t switch ( flag ) case 0 T = sierdr ; % Sierpinski triangle case 1 T = koch ; % Koch c u r v e case 2 T = frbaum ; % f r a c t a l t r e e case 3 T = farn ; % f r ac t a l farn leaf otherwise T = chrtree ; % christmas tree end k = length (T ) ; % number o f t r a n s f o r m a t i o n s X = z e r o s ( 3 ,N ) ; % memory f o r t h e p o i n t s X( : , 1 ) = [ 0 . 5 ; 0 . 5 ; 1 ] ; % i n i t i a l p o i n t − d e l i b e r a t e l y chosen f o r i = 1 :N−1 zk = f l o o r ( k∗ rand ) + 1 ; % random c h o i c e o f t h e t r a n s f o r m a t i o n X ( : , i +1) = T{ zk }∗X ( : , i ) ; end figure ( 1) ; % p l o t s a l l p o i n t s i n t h e end p l o t (X ( 1 , : ) , X ( 2 , : ) , ’ . ’ , ’ C o l o r ’ , [ 0 0 0 ] , ’ M a r k e r S i z e ’ , 5 ) ; axis off ;

12.2.3 Beispiele in MATLAB

Um die Entstehung der Fraktale durch die IFS zu demonstrieren, werden jeweils vier Bilder nach unterschiedlich vielen Iterationen dargestellt.

258

12.2 Iterated Function Systems (IFS)

Abbildung 12.11: Twin Christmas Tree nach 1.000 und 10.000 Iterationen

Abbildung 12.12: Twin Christmas Tree nach 100.000 und 4 Millionen Iterationen

Abbildung 12.13: Sierpinski-Dreieck nach 1.000 und 10.000 Iterationen

259

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.14: Sierpinski-Dreieck nach 100.000 und 4 Millionen Iterationen

Abbildung 12.15: Koch-Kurve nach 1.000 und 10.000 Iterationen

Abbildung 12.16: Koch-Kurve nach 100.000 und 4 Millionen Iterationen

Abbildung 12.17: Fraktaler Baum nach 1.000 und 10.000 Iterationen

260

12.2 Iterated Function Systems (IFS)

Abbildung 12.18: Fraktaler Baum nach 100.000 und 4 Millionen Iterationen

Abbildung 12.19: Farn nach 1.000 und 10.000 Iterationen

Abbildung 12.20: Farn nach 100.000 und 10 Millionen Iterationen Anhand der Koch-Kurve lässt sich gut die Funktionsweise der IFS verdeutlichen: Durch die zufällige Auswahl der Transformationen ist bei wiederholter Ausführung des Programms kein Bild wie das zuvor erzeugte. Dies ist gut daran zu erkennen, dass die außerhalb des Fraktals liegenden Punkte jeweils an unterschiedlichen Stellen liegen (vgl. Abb. 12.21).

261

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.21: Unterschiedliche Ausgaben der Kochkurve nach 100.000 Iterationen

In Abbildung 12.22 kann man – wieder am Beispiel der Koch-Kurve – gut erkennen, dass es zu unterschiedlichen Ergebnissen führt, das Programm fünfmal mit 1.000 Punkten laufen zu lassen und übereinander zu legen, oder das Fraktal einmal mit 5.000 Punkten zu erzeugen.

Abbildung 12.22: Kochkurve nach 5 Mal 1.000 und ein Mal 5.000 Iterationen

Abschließend ist als optischer Vergleich zwischen MRCM und IFS in Abbildung 12.23 gezeigt, wie sich die jeweils erzeugten Fraktale unterscheiden: Vergrößert man einen Bereich des Fraktals, erkennt man beim durch die MRCM erzeugten Bild die Struktur des Startbildes. Beim durch das IFS erzeugten Bild werden nur Punkte sichtbar.

262

12.3 L-Systems

Abbildung 12.23: Vergleich MRCM – IFS: Ganzes Bild (oben) und Vergrößerung (unten)

12.3 L-Systems 12.3.1 Geschichte

Im Jahre 1968 erfand der Biologe Aristid Lindenmayer eine formelle Beschreibung des Pflanzenwachstums. Heute ist es bekannt als L-System oder „String-Rewriting-System“. Das Wissen über L-Systems ist in dem Buch „The Algorithmic Beauty of Plants“ von Przemyslaw Prusinkiewicz und Aristid Lindenmayer festgehalten.

12.3.2 Das Prinzip der L-Systems

In der Biologie ist der „initial string” (Axiom) eine Zelle, die zu Beginn einer Entwicklung gegeben ist und von der das darauf folgende Wachstum ausgeht. Die Notation wird meist mit einem Buchstaben vorgenommen. Der „initial string” wird an den „input string” weitergegeben, auf den die „production rules” (biologische Fortpflanzungsregeln) Anwendung finden. Auf diesen Vorgang folgt die Ausgabe des „output string”. Eine erneute Anwendung erfolgt dadurch, dass der „output string” an den „input string” zurückgegeben wird und eine wiederholte Anwendung der „production rules” stattfindet.

263

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.24: Das Prinzip der L-Systems 12.3.3 Beispiele zu den L-Systems

Einige Notationen vorab: F G a + [ ]

→ → → → → → →

wird grafisch als eine bestimmte Länge interpretiert. wird grafisch als eine bestimmte Länge interpretiert. Winkel zwischen den Strecken F und G. Winkel zur aktuellen Orientierung addieren. Winkel zur aktuellen Orientierung subtrahieren. aktuelle Zeichenposition und Orientierung merken. zu der im Speicher liegenden Position zurückkehren.

Diese Notationen werden für das 2D-Zeichnen verwendet. Die Notationen für 3D sind getrennt im MATLAB-Programm       aufgeführt. Hier nun einige Beispiele, wofür man L-Systems verwenden kann: 1. Cantor-Menge: • Axiom: F • Production Rules:

½

F f

→ →

FfF fff

→ → → →

+G-F-G+ -F+G+F+ -

2. Sierpinski arrowhead: • Axiom: F • Production Rules: • Parameter: α = 60◦ 3. Dragon Curve: • Axiom: F

264

 F    G +    -

12.3 L-Systems

• Production Rules: • Parameter: α = 45◦

 F    G +    -

→ → → →

-F++G F- -G+ + -

 L     R  F   +    -

→ → → → →

+RF-LFL-FR+ -LF+RFR+FLF + -

  F +  -

→ → →

F[+F]F[-F]F + -

  F +  -

→ → →

FF+[+F-F-F]-[-F+F+F] + -

 F    B +    -

→ → → →

FF F[+B]F[-B]+B + -

4. Hilbert Curve: • Axiom: L • Production Rules: • Parameter: α = 90◦ 5. Weedlike plant I: • Axiom: F • Production Rules:

• Parameter: α = 25, 7◦

6. A simple bush: • Axiom: F • Production Rules: • Parameter: α = 25◦ 7. Weedlike plant II: • Axiom: B • Production Rules: • Parameter: α = 25◦

265

12 Codierung von fraktalen Bildern mit einfachen Transformationen Um Pflanzen noch realistischer aussehen zu lassen, kann man den Zufall innerhalb der „Production Rules” einarbeiten. Somit erreicht man, dass die Pflanzen zufällig wachsen. Im unten aufgeführten MATLAB-Programm ist dies jedoch nicht implementiert. Dies wird dem Leser überlassen.

Abbildung 12.25: Die Kochkurve mit L-Systems erzeugt

Abbildung 12.26: Der Lindenmayer-Busch

12.3.4 Die Algorithmen Das 2D-Programm

f u n c t i o n L_systems_2D

266

12.3 L-Systems

Abbildung 12.27: Eine Pflanze mit L-Systems erzeugt % % % % %

L_SYSTEMS_2D s i m u l a t e s t h e L−s y s t e m o r s t r i n g −r e w r i t i n g −s y s t e m in 2 dimensions . The d e f a u l t s e t t i n g draws a ’ branch ’ , a t r e e −l i k e s t r u c t u r e p l o t t e d w i t h t h e c o l o u r s brown and g r e e n w i t h 5 i t e r a t i o n s .

clear al l ; clf ; % 0 . PART − INPUT VARIABLES %============================ % input rule (1). rule (1). rule (2). rule (2).

rules for vorher = danach = vorher = danach =

the construction of the picture ’F ’ ; ’ FF ’ ; ’G ’ ; ’ F [+G][ −G] F [+G][ −G] FG ’ ;

n_Rules = length ( r u l e ) ; % a n g l e : ’+ ’ = r o t a t e a n t i c l o c k w i s e ; % ’−’ = r o t a t e c l o c k w i s e . alpha = 30; % degrees ( angle ) % l e n g t h s o f t h e l i n e s F and G length_F = 2; length_G = 0 . 5 ;

267

12 Codierung von fraktalen Bildern mit einfachen Transformationen

% starting string axiom = ’G ’ ; % i t e r a t i o n s ( c h o o s e o n l y from 1 t o 7 , >= 8 c r i t i c a l , % d e p e n d s on t h e s t r i n g and on t h e c o m p u t e r ! ! n_Repeats = 5; % 1 . PART − CALCULATE THE STRING %================================= for i = 1: n_Repeats % a s i n g l e l e t t e r ( axiom ) a x i o m I N c e l l s = c e l l s t r ( axiom ’ ) ; for j = 1: n_Rules % f i n d a l l o c c u r r e n c e s o f t h a t axiom h i t = s t r f i n d ( axiom , r u l e ( j ) . v o r h e r ) ; i f ( l e n g t h ( h i t ) >= 1 ) for k = h i t % perform the r u l e % ( r e p l a c e ’ v o r h e r ’ by ’ n a c h h e r ’ ) a x i o m I N c e l ls{k} = r u l e ( j ) . danach ; end end end axiom = [ ] ; for j = 1: length ( axiomINcells ) % put a l l s t r i ng s together axiom = [ axiom , a x i o m I N c e l l s { j } ] ; end end % 2 . PART − PLOT %================= % initialization xT = 0 ; yT = 0 ; aT = 0 ; da = a l p h a / 1 8 0 ∗ p i ; % c o n v e r t deg t o r a d stkPtr = 1; hold on ; f o r i = 1 : l e n g t h ( axiom ) cmdT = axiom ( i ) ; s w i t c h cmdT % I t i s p o s s i b l e t o add m u l t i p l e c a s e s h e r e % i n o r d e r t o expand t h e program .

268

12.3 L-Systems

case ’F ’ newxT = xT + l e n g t h _ F ∗ c o s ( aT ) ; newyT = yT + l e n g t h _ F ∗ s i n ( aT ) ; % plot c har a c te r i s t i c s of the line l i n e ( [ yT newyT ] , [ xT newxT ] , ’ c o l o r ’ , [ . 3 . 3 0 ] , . . . ’ linewidth ’ ,2); xT = newxT ; yT = newyT ; c a s e ’G ’ newxT = xT + l e n g t h _ G ∗ c o s ( aT ) ; newyT = yT + l e n g t h _ G ∗ s i n ( aT ) ; % plot c har a c te r i s t i c s of the line l i n e ( [ yT newyT ] , [ xT newxT ] , ’ c o l o r ’ , ’ g ’ , ’ l i n e w i d t h ’ , 2 ) ; xT = newxT ; yT = newyT ; c a s e ’+ ’ % r o t a t e a n t i c l o c k w i s e aT = aT + da ; c a s e ’− ’ % r o t a t e c l o c k w i s e aT = aT − da ; case ’ [ ’ % save c u r r e n t p o s i t i o n s t a c k ( s t k P t r ) . xT = xT ; s t a c k ( s t k P t r ) . yT = yT ; s t a c k ( s t k P t r ) . aT = aT ; s t k P t r = s t k P t r +1 ; case ’ ] ’ % r e t u r n to former p o s i t i o n ( l a s t save ) s t k P t r = s t k P t r −1 ; xT = s t a c k ( s t k P t r ) . xT ; yT = s t a c k ( s t k P t r ) . yT ; aT = s t a c k ( s t k P t r ) . aT ; otherwise disp ( ’ e r r o r ’ ) ; return end % draw now end % s e t s data aspect r a t i o daspect ([1 ,1 ,1]); axis off ; Das 3D-Programm

f u n c t i o n L_systems_3D % % % % %

L_SYSTEMS_3D s i m u l a t e s t h e L−s y s t e m o r s t r i n g −r e w r i t i n g −s y s t e m in 3 dimensions . The d e f a u l t s e t t i n g draws a ’ branch ’ , a t r e e −l i k e s t r u c t u r e p l o t t e d w i t h t h e c o l o u r s brown and g r e e n w i t h 4 i t e r a t i o n s .

269

12 Codierung von fraktalen Bildern mit einfachen Transformationen

clear all ; % 0 . PART − INPUT VARIABLES %============================ % input rule (1). rule (1). rule (2). rule (2).

rules for vorher = danach = vorher = danach =

the construction of the picture ’F ’ ; ’ F[−&\G] [ \ + + &G ] | | F[−−&/G][+&G] ’ ; ’G ’ ; ’ F [+G][ −G] F [+G][ −G] FG ’ ;

n_Rules = length ( r u l e ) ; % a n g l e a : ’+ ’ = r o t a t e a n t i c l o c k w i s e , r o t a t i o n m a t r i x R_U ( a ) ; % ’−’ = r o t a t e c l o c k w i s e , r o t a t i o n m a t r i x R_U(−a ) . % ’& ’ = g r a d e downwards , r o t a t i o n m a t r i x R_L ( a ) . % ’ ^ ’ = g r a d e upwards , r o t a t i o n m a t r i x R_L(−a ) . % ’ \ ’ = r o l l a n t i c l o c k w i s e , r o t a t i o n m a t r i x R_H ( a ) . % ’ / ’ = r o l l c l o c k w i s e , r o t a t i o n m a t r i x R_H(−a ) . % ’ | ’ = t u r n around , r o t a t i o n m a t r i x R_H ( 1 8 0 ) . a = 22.5; % degrees ( angle ) % l e n g t h s o f t h e l i n e s F and G length_F = 1; length_G = . 7 5 ; % starting string axiom = ’ F ’ ; % i t e r a t i o n s ( c h o o s e o n l y from 1 t o 7 , >= 8 c r i t i c a l , % d e p e n d s on t h e s t r i n g and on t h e c o m p u t e r ! ! n_Repeats = 4; % DO NOT CHANGE THIS VALUES xT = 0 ; yT = 0 ; zT = 0 ; hT = [ 1 0 0 ] ; lT = [0 1 0 ] ; uT = [ 0 0 1 ] ; a = a / 1 8 0 ∗ p i ; % deg −> r a d % THESE MATRICES MUSTN’ T % r o t a t i o n m a t r i x R_U ( a ) Rup = [ c o s ( a ) sin ( a ) −s i n ( a ) c o s ( a ) 0 0

270

BE CHANGED AS WELL 0; . . . 0; . . . 1];

12.3 L-Systems

Rum = [ c o s (−a ) −s i n (−a ) 0

s i n (−a ) c o s (−a ) 0

% r o t a t i o n m a t r i x R_L ( a ) Rlp = [ c o s ( a ) 0 −s i n ( a ) ; 0 1 0; . . . sin ( a ) 0 cos ( a ) ] ; Rlm = [ c o s (−a ) 0 s i n (−a )

0 1 0

0; . . . 0; . . . 1];

...

−s i n (−a ) ; 0; . . . c o s (−a ) ] ;

% rotation Rhp = [ 1 0 0

m a t r i x R_H(−a ) 0 0; . . . c o s ( a ) −s i n ( a ) ; sin ( a ) cos ( a ) ] ;

Rhm = [ 1 0 0

0 c o s (−a ) s i n (−a )

...

...

0; . . . −s i n (−a ) ; c o s (−a ) ] ;

...

% r o t a t i o n m a t r i x R_H ( 1 8 0 ) Rbk = [ −1 0 0; . . . 0 −1 0 ; . . . 0 0 1]; % 1 . PART − CALCULATE THE STRING %================================= for i = 1: n_Repeats % a s i n g l e l e t t e r ( axiom ) a x i o m I N c e l l s = c e l l s t r ( axiom ’ ) ; for j = 1: n_Rules % f i n d a l l o c c u r r e n c e s o f t h a t axiom h i t = s t r f i n d ( axiom , r u l e ( j ) . v o r h e r ) ; i f ( l e n g t h ( h i t ) >= 1 ) for k = h i t % perform the r u l e % ( r e p l a c e ’ v o r h e r ’ by ’ n a c h h e r ’ ) a x i o m I N c e l l s { k} = r u l e ( j ) . d a n a c h ; end end end axiom = [ ] ; for j = 1: length ( axiomINcells ) % put a l l s t r i n gs together axiom = [ axiom , a x i o m I N c e l l s { j } ] ;

271

12 Codierung von fraktalen Bildern mit einfachen Transformationen

end end % 2 . PART − PLOT %===================== stkPtr = 1; figure (1) clf hold on vNF = 1 ; vNG = 1 ; f o r i = 1 : l e n g t h ( axiom ) cmdT = axiom ( i ) ; s w i t c h cmdT % I t i s p o s s i b l e t o add m u l t i p l e c a s e s h e r e % i n o r d e r t o expand t h e program . case ’F ’ % how t o p l o t a ’F ’ l i n e newxT = xT + l e n g t h _ F ∗hT ( 1 ) ; newyT = yT + l e n g t h _ F ∗hT ( 2 ) ; newzT = yT + l e n g t h _ F ∗hT ( 3 ) ; l i n e ( [ xT newxT ] , [ yT newyT ] , [ zT newzT ] , ’ c o l o r ’ , . . . [.5 .4 0] , ’ linewidth ’ ,2); v e r t s F {vNF} = [ xT yT zT ; newxT newyT newzT ] ; vNF = vNF + 1 ; xT = newxT ; yT = newyT ; zT = newzT ; c a s e ’G ’ % how t o p l o t a ’G’ l i n e newxT = xT + l e n g t h _ G ∗hT ( 1 ) ; newyT = yT + l e n g t h _ G ∗hT ( 2 ) ; newzT = yT + l e n g t h _ G ∗hT ( 3 ) ; l i n e ( [ xT newxT ] , [ yT newyT ] , [ zT newzT ] , ’ c o l o r ’ , . . . [0 1 0] , ’ l i n e w i d t h ’ , 2 ) ; v e r t s G {vNG} = [ xT yT zT ; newxT newyT newzT ] ; vNG = vNG + 1 ; xT = newxT ; yT = newyT ; zT = newzT ; c a s e ’+ ’ % rotate anticlockwise hT = hT ∗ Rup ; l T = l T ∗ Rup ; uT = uT ∗ Rup ; c a s e ’− ’ % rotate clockwise

272

12.3 L-Systems hT = hT ∗ Rum ; l T = l T ∗ Rum ; uT = uT ∗ Rum ; c a s e ’&’ % g r a d e downwards hT = hT ∗ Rlp ; l T = l T ∗ Rlp ; uT = uT ∗ Rlp ; case ’^ ’ % g r a d e upwards hT = hT ∗ Rlm ; l T = l T ∗ Rlm ; uT = uT ∗ Rlm ; case ’ \ ’ % roll anticlockwise hT = hT ∗ Rhp ; l T = l T ∗ Rhp ; uT = uT ∗ Rhp ; case ’ / ’ % roll clockwise hT = hT ∗ Rhm ; l T = l T ∗ Rhm ; uT = uT ∗ Rhm ; case ’ | ’ % t u r n around hT = hT ∗ Rbk ; l T = l T ∗ Rbk ; uT = uT ∗ Rbk ; case ’ [ ’ % s a v e t h e c u r r e n t p o s i t i o n and push on t h e s t a c k s t a c k ( s t k P t r ) . xT = xT ; s t a c k ( s t k P t r ) . yT = yT ; s t a c k ( s t k P t r ) . zT = zT ; s t a c k ( s t k P t r ) . hT = hT ; s t a c k ( s t k P t r ) . lT = lT ; s t a c k ( s t k P t r ) . uT = uT ; s t k P t r = s t k P t r +1 ; case ’ ] ’ % pop on t h e s t a c k and r e t u r n t o t h e s a v e d p o s i t i o n s t k P t r = s t k P t r −1 ; xT = s t a c k ( s t k P t r ) . xT ; yT = s t a c k ( s t k P t r ) . yT ; zT = s t a c k ( s t k P t r ) . zT ; hT = s t a c k ( s t k P t r ) . hT ; lT = s t a c k ( s t k P t r ) . lT ; uT = s t a c k ( s t k P t r ) . uT ; otherwise disp ( ’ e r r o r ’ ) ;

273

12 Codierung von fraktalen Bildern mit einfachen Transformationen

return end % draw now end % make t h e f i r s t p l o t p r e t t y daspect ([1 1 1] ); view ( − 7 0 , 7 0 ) ; box on ; r o t a t e 3 d on ; % make t h e s e c o n d p l o t e v e n p r e t t i e r figure ( 2) ; clf ; daspect ([1 1 1] ); Nsides = 8; hsF = s t r e a m t u b e ( v e r t s F , . 3 , [ 1 , N s i d e s ] ) ; s e t ( hsF , ’ c d a t a ’ , c a t ( 3 , . 7 ∗ o n e s ( 2 , N s i d e s + 1 ) , . . . 0.7∗ ones ( 2 , Nsides +1) , zeros ( 2 , Nsides + 1 ) ) ) ; hsG = s t r e a m t u b e ( v e r t s G , . 2 , [ 1 , N s i d e s ] ) ; s e t ( hsG , ’ c d a t a ’ , c a t ( 3 , z e r o s ( 2 , N s i d e s + 1 ) , . . . ones ( 2 , Nsides +1) , zeros ( 2 , Nsides + 1 ) ) ) ; axis t i g ht ; shading i n t e r p ; view ( 3 ) ; camlight ; l i g h t i n g gouraud ; box on ; r o t a t e 3 d on ;

12.4 Fraktale Bildkompression 12.4.1 Geschichte

Im Jahre 1988 erfand Michael Barnsley, ein Professor am Georgia Institute of Technology in Atlanta, die fraktale Bildkompression. In seinem Buch „Fractals Everywhere” präsentiert er sein sogenanntes „Collage Theorem” anhand der Iterated Function Systems. Dieses Theorem sagt etwas über die Eigenschaften eines Iterated Function Systems aus, die es ermöglichen, mit diesem ein Bild zu beschreiben. Das Theorem löst jedoch nicht das sogenannte „Inverse Problem”. Der Schritt von einem Bild zu einem Iterated Function System, welches das Original wieder darstellen kann, wird als das „Inverse Problem” bezeichnet. Barnsley meldete ein Software-Patent an und gründete „Iterated Systems Incorporated”. Es wurden auch einige Artikel veröffentlicht, in denen die Rede von überwältigenden Kompressionsraten war, welche aber nur mittels eigens dafür konstruierten Bildern erzielt werden konnten. Dies

274

12.4 Fraktale Bildkompression führte zu dem bekannten und viel zitierten „graduate student algorithm”, mit dem Kritiker über Barnsley spotten: – Man nehme einen Mathematikstudenten der mittleren Semester (graduate student) . . . – . . . und einen Raum mit einer Grafik-Workstation. – Man gebe dem Studenten ein Bild, sperre ihn in den Raum und schließe die Tür. – Man warte, bis der Student einen Kopierer für das Bild entwickelt hat. Ironischerweise war es ausgerechnet einer von Barnsleys Studenten, der diesen „graduate student algorithm” überflüssig machte. Nachdem Barnsley ein zweites Patent für die von ihm neu angepassten sogenannten PIFS beantragte, war es dieser besagte Student namens Arnaud Jacquin, der den Algorithmus implementierte. Alle damaligen Programme zur fraktalen Bildkomprimierung basierten auf Arnaud Jacquins Promotionsarbeit. Es wäre falsch zu sagen, dass es viele fraktale Kompressionsprogramme gäbe. Iterated Systems vertreibt das einzige kommerzielle Programm (Kompressor und Dekompressor) mit dem Namen „Images Incorporated”. Doch es gibt eine stetig steigende Anzahl an universitären Programmen, die frei zugänglich sind. 12.4.2 Begriffe

Definition 12.2 (Mean Square Error (MSE)). Eine wichtige Metrik, die im Zusammenhang mit fraktaler Datenkompression oft verwendet wird, ist der sogenannte Mean Square Error (MSE). Der MSE gibt die Differenz zwischen dem Originalbild I(x, y) und dem dekomprimierten Bild I 0 (x, y) an. Je niedriger also der Wert ist, desto verlustfreier ist die Kompression. Die mathematische Formel ist: MSE(I, I 0 ) =

1 M N ∑ ∑ [I(x, y) − I 0 (x, y)]2 , MN y=1 x=1

wobei M, N die Dimensionen der Bilder repräsentieren. Ziel einer guten Kompression bzw. Dekompression ist es natürlich, diesen Fehler möglichst gering zu halten, da dann auch die Abweichung vom Ursprungsbild sehr gering ist. Definition 12.3 (PIFS). Bei der fraktalen Bildkompression werden Transformationen nur auf Teilbereiche von Bildern angewandt. Das geschieht deshalb, weil natürliche Bilder meist nicht selbstähnlich sind. Hierzu muss die Transformation um die Komponenten Kontrast und Helligkeit erweitert werden, so dass sich für eine Transformation im i-ten Iterationsschritt folgende Formel ergibt:        x ai bi 0 x ei wi  y  =  ci di 0   y  +  f i  z 0 0 si z oi

Dabei kontrolliert si den Kontrast und oi die Helligkeit. Die iterative Anwendung der Transformationen wird in diesem Fall als Partitionend Iterated Function System (PIFS) bezeichnet.

275

12 Codierung von fraktalen Bildern mit einfachen Transformationen 12.4.3 Methoden Der Algorithmus

Die Grundidee der Partitioned Iterated Function Systems beruht darauf, dass man zwischen größeren und kleineren Teilen eines Bildes eine bestimmte Ähnlichkeit findet. Die größeren Teile werden, um die Notation von Arnaud Jacquin zu verwenden, „domain blocks” (Definitionsbereiche) genannt; die kleineren Bereiche sind die „range blocks” (Wertebereiche). Die Menge der Definitionsbereiche wird als „domain pool” bezeichnet. Dabei ist zu beachten, dass die Genauigkeit der Rekonstruktion natürlich von der Anzahl der Iterationen abhängt.

Das Encoden

Das Encoden braucht erheblich länger als das Decoden. Das hat den einfachen Grund, dass beim Encoden die Transformationsformeln erst gefunden werden müssen. Dies geschieht durch den Vergleich einzelner Regionen.

Der Vergleich

Es gibt unterschiedliche Möglichkeiten um die einzelnen Regionen untereinander zu vergleichen. Hier werden vier verschiedene Optionen besprochen. Heavy Brute Force: Die Heavy Brute Force-Methode analysiert den ganzen „domain pool” für

jeden Wertebereich, d. h. es werden alle möglichen Kombinationen getestet. Hier ein kleines Beispiel, um den Aufwand zahlenmäßig erfassen zu können: Gegeben sei ein Graustufen-Bild von einer Frau mit 256 × 256 Pixeln. Als Partitionierung wird die Methode mit gleichgroßen Quadraten gewählt. Diese besitzen eine Größe von 8 × 8 Pixeln. Die Gesamtfläche des Bildes beträgt 256 × 256 = 65536 Pixel, die „range blocks” besitzen 8 × 8 = 64 Pixel, daraus folgt eine Aufteilung in 1024 gleich große Regionen. Im nächsten Schritt legt man überlappende Bereiche fest, die sog. „domain blocks”. Deren Anzahl beträgt (256 − 15)2 = 58081, deren Größe 16 × 16 Pixel. Weiter wird die Rotation auf ein Vielfaches von 90 ◦ und die Verkleinerung auf 25 % beschränkt. Deswegen sind nur 8 verschiedene Transformationen möglich. Im Endeffekt braucht man also 1024 × 58081 × 8 = 475.799.552 Vergleiche, um die optimalen Transformationen für jeden Bereich zu finden. Diese Zahl muss natürlich noch mit dem Zeitaufwand für eine Vergleichsoperation multipliziert werden, damit sie zeitlich aussagekräftig ist.

276

12.4 Fraktale Bildkompression

Abbildung 12.28: Das Originalbild – [12]

Light Brute Force: Um die Suchzeit zu verkürzen, wurde – im Unterschied zum Heavy Bru-

te Force-Verfahren – die Lage der Definitionsbereiche eingeschränkt. Z. B. kann man die obere linke Kante der „domain blocks” pixel-mäßig einschränken, indem man nur alle vier Pixel (sowohl vertikal als auch horizontal) einen weiteren neuen Bereich ansetzt. Das verkürzt die Suchzeit erheblich. Da in dieser „Lite”-Variante des Brute ForceVerfahrens jedoch der eventuell am besten geeignete Definitionsbereich übersehen werden kann, kommt es möglicherweise zu einem Qualitätsverlust.

Restricted Area Search: Wie der Name schon sagt, wird bei diesem Verfahren die Suche da-

durch eingeschränkt, dass nur Bereiche, die in der Nähe voneinander liegen, verglichen werden. Beispielsweise wird das Ausgangsbild in vier Quadrate unterteilt und nur in diesen vier Bereichen wird untereinander verglichen.

Local Spiral Search: Die dargestellte Variante verfolgt die Suche nach einem geeigneten Block

entlang eines Suchpfades („search path”). Dieser Pfad wird so lange durchwandert, bis ein zufriedenstellender Bereich gefunden wurde. In den meisten Fällen wird die Suche somit stark verkürzt. Die Verkürzung der Suchzeit schlägt sich, wie bei den anderen Verfahren, allerdings auch in der schlechteren Qualität nieder.

277

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.29: Funktionsweise der „Local Spiral Search“ – [12] Das Partitionieren

Unter Partitionierung versteht man die Zerlegung des Bildes in „range blocks”. Es gibt unterschiedliche Arten, ein Bild in verschiedene Regionen zu unterteilen. Quadrate fester Größe (Uniform): Die einfachste Methode diese Unterteilung zu erzielen, ist

es, das gegebene Bild in gleich große Felder zu teilen.

Abbildung 12.30: Partitionierung mit Quadraten fester Größe – [12] Das mag vielleicht die schnellste Variante sein, doch nicht immer von Vorteil, da eventuell günstige Regionen durch die starre Unterteilung zerrissen werden und somit die Komprimierung speziell für dieses Bild nicht optimal ist. Ein weiterer Nachteil dieses Verfahrens ist die feste Größe der Wertebereiche. In vielen Bildern existieren Bereiche, die durch größere Wertebereiche überdeckt werden können, ohne einen Qualitätsverlust in Kauf nehmen zu müssen. Gleichzeitig ist es häufig der Fall, dass komplexere Bildbereiche nur durch sehr kleine Wertebereiche mit einer zufriedenstellenden Qualität codiert werden können. Partitioniert man das zu codierende Bild allerdings vorsorglich in viele kleine Wertebereiche, erhält man eine unnötig schlechte Kompression.

278

12.4 Fraktale Bildkompression Quadtree: Bei der Quadtree-Partitionierung wird eine quadratische Region im Bild in vier

gleich große Teile aufgeteilt, wenn die ursprünglich Region nicht genau genug beschrieben werden kann. Dieses Vorgehen wird rekursiv so lange auf das ganze Bild angewandt bis die Regionen klein genug sind und einer vorgegebenen Toleranz entsprechen.

Abbildung 12.31: Quadtree-Partitionierung – [12] HV-Partitionierungen: HV-Partitionierung steht für „horizontal - vertical partitioning”. Der

Unterschied zum Quadtree-Verfahren liegt darin, dass bei dieser Art der Partitionierung nicht Quadrate, sondern Rechtecke verwendet werden. Es wird wie beim Quadtree-Verfahren rekursiv ein Rechteck in weitere Rechtecke unterteilt, bis eine bestimmte Toleranz erfüllt wird. Dieses Verfahren ist somit flexibler als das vorher genannte, da man nun individuellere Bereiche gestalten kann und nicht mehr auf die quadratische Form festgelegt ist.

Abbildung 12.32: HV-Partitionierung – [12] Triangular: Ein weiteres Schema, um die Partitionen eines Bildes zu erlangen, ist, die Berei-

che in Form von Dreiecken zu unterteilen. Das rechteckige Bild wird in zwei Dreiecke unterteilt. Diese werden dann iterativ jeweils in weitere vier Dreiecke geteilt.

279

12 Codierung von fraktalen Bildern mit einfachen Transformationen

Abbildung 12.33: triangulare Partitionierung – [12] Dieses Schema hat mehrere Vorteile gegenüber der HV-Partitionierung. Es ist flexibler, so dass die Selbstähnlichkeit mancher Bildausschnitte besser ausgenutzt werden kann, da die Unterteilung nicht mehr nur durch vertikale und horizontale Linien vorgenommen wird. Man kommt somit weg von der starren 90 ◦ -Einteilung der bisher besprochenen Vorgehensweisen. Das Decoden

Abbildung 12.34: Startbild und Bild nach 1, 2, 10 Transformationen – [12] Wie wir bereits wissen, ist das Decoden von Bildern wesentlich schneller als das Encoden. Es ist auch flexibler. Das heißt, wenn der Benutzer nur ein kleines Vorschaubild (sogenanntes „Thumbnail”) erzeugen will, dann muss das Bild nicht bis ins letzte Detail decodiert werden,

280

12.4 Fraktale Bildkompression sondern nur bis zu einem gewissen Detailgrad, was sich natürlich in der Geschwindigkeit des Bildaufbaus widerspiegelt. Der Decoder nimmt ein beliebig gewähltes Bild als Vorlage und wendet darauf die gespeicherten Transformationen an. In der Praxis wählt man für Graustufenimages meistens auch ein graues Bild als Vorlage. Dabei wird dieses Startbild derart zerwürfelt, dass das Ergebnis schon eine gewisse grobe Ähnlichkeit zum Zielbild aufweist. Nun werden auf das soeben entstandene Bild die Transformationsformeln erneut angewandt. Dabei entstehen immer feinere Annäherungen an das Originalbild. Wenn der Detailgrad ausreichend groß ist, kann der Decoder (oder der Benutzer) den Vorgang abbrechen. Die Ergebnisse dieses Vorgangs sind in Abbildung 12.34 dargestellt. 12.4.4 Vorteile Kompressionsraten: Durch die Verwendung der fraktalen Bildkompression sind sehr hohe

Kompressionsraten möglich, welche sich im Bereich von 1:50 bis 1:100 bewegen. Berichtet wird von Raten um die 1:1000. Dies sind jedoch konstruierte Spezialfälle, die auf die verwendete Methode zugeschnitten sind. Diese hohen Kompressionsraten können dadurch erzielt werden, dass im Vergleich zu anderen Formaten bzw. Algorithmen das Bild nicht Pixel für Pixel, sondern mittels einer mathematische Beschreibung des Bildes abgespeichert wird. Auflösung: Die Auflösung des Bildes ist nur von der Anzahl der Iterationen und nicht von der

Auflösung des Originals abhängig. Wenn man weiter in das Bild hineinzoomt, werden die Transformationsformeln immer wieder ausgeführt. Hier entstehen enorme Vorteile, z. B. im Bereich der Archivierung von Bildern, da der Speicherplatz minimal gehalten werden kann und das Bild in jeder gewünschten Auflösung vorhanden ist. Vergleich mit jpeg: Jpeg ist bei niedrigen Kompressionsraten besser geeignet, bei großen Ra-

ten jedoch sinkt die Qualität des Bildes rapide ab. Die fraktale Bildkompression ist im Gegensatz dazu bei großen Kompressionsraten eine ernst zu nehmende Methode, Bilder zu komprimieren, da sie immer noch respektable Ergebnisse liefert. 12.4.5 Nachteile Zeitaufwand: Die FBK ist ein asymmetrisches Verfahren. Das heißt, dass das Encoden und

das Decoden nicht den gleichen Zeitaufwand in Anspruch nehmen. Die Kodierung eines Bildes ist mit einem enormen Rechenaufwand verbunden, da dieser stark von der Feinheit und der Struktur der Partitionierung abhängt. Text: Text wird leider nur sehr schlecht erkannt bzw. kodiert. Die fraktale Kompression ist

generell eher nicht für Bilder geeignet, die nicht einen „natürlichen Hintergrund” haben. Patent: Das Verfahren der FBK ist von der Firma Iterated Systems unter der U.S. Patent Num-

mer 5,065,447 patentiert; zur Implementierung ist eine entsprechende Lizenz notwendig.

281

12 Codierung von fraktalen Bildern mit einfachen Transformationen Verbreitung: Die fraktale Bildkompression ist leider noch nicht so weit verbreitet, wie sie viel-

leicht aufgrund ihres Könnens sein sollte. Microsoft hat in seiner Encarta ca. 7.000 Bilder von Tieren, Maschinen, Pflanzen, Gebäuden und anderen unterschiedlichen Motiven verwendet, welche alle auf der Theorie der Fraktale basieren und einen praktischen Nutzen der Mathematik in der heutigen Zeit darstellen.

282

13 Zelluläre Automaten von Stefan Baur und Markus Hanselmann

13.1 Einleitung Die Idee des zellulären Automaten stammt von dem ungarischen Mathematiker John von Neumann (1903–1957).

Abbildung 13.1: John von Neumann – [41] Er wollte eine Maschine bauen, die in der Lage ist, das Verhalten eines menschlichen Gehirns zu imitieren. Sie sollte komplexe Probleme lösen, sich selbst kontrollieren, reparieren und replizieren können. Eine abstraktere Formulierung seiner Idee geht auf den polnischen Mathematiker Stanislav Ulam (1909–1984) zurück: So besteht ein zellulärer Automat aus einem vollständig diskreten Universum von Zellen. Dabei ist jede einzelne Zelle zu jedem Zeitpunkt t durch einen inneren Zustand charakterisiert. In diskreten Zeitschritten wird für alle Zellen gleichzeitig aufgrund von festgelegten Regeln ein neuer Zustand berechnet. Popularität erreichte die Thematik durch ein Regelset des britischen Mathematikers John Conway (geboren 1937), das heute unter dem Namen “Game of Life” bekannt ist (s. 13.5)

13.2 Was sind zelluläre Automaten? Wir geben zunächst die

283

13 Zelluläre Automaten Definition 13.1 (Zellulärer Automat). Ein zellulärer Automat lässt sich beschreiben durch 1. eine Zustandsmenge Q, 2. ein d-dimensionales regelmäßiges Gitter (mit Koordinaten ~x ), 3. zu jedem Zeitpunkt t ein Zustand aus Q (je Zelle): Φ(~x,t), 4. eine Zustandübergangsfunktion (Regeln) R: Φ(~x,t + 1) = R (Φ(~x + δ~1 ,t), . . . , Φ(~x + δ~m ,t)), wobei ~x + δ~ j die Nachbarzellen (s. nächster Abschnitt) von ~x durchläuft. 5. R wird in diskreten Zeitschritten auf alle Zellen gleichzeitig angewandt. Im Folgenden wollen wir als Gitter die mit Einheitsquadraten gepflasterte Ebene betrachten, wobei jedes dieser Quadrate einer Zelle entspricht. 13.2.1 Nachbarschaften

Für eine Zelle können verschiedene Nachbarschaften definiert werden. Wir gehen in diesem Abschnitt auf die drei wichtigsten ein. 1. Von-Neumann-Nachbarschaft: Bei der Von-Neumann-Nachbarschaft betrachtet man für jede Zelle die vier geographisch nächsten Nachbarzellen.

Abbildung 13.2: Darstellung der Von-Neumann-Nachbarschaft Aktuell wird die rote Zelle betrachtet. Als Nachbarschaft ergeben sich die blauen Zellen (Nord, Ost, Süd, West). Anwendung findet dieser Nachbarschaftsbegriff beispielsweise bei der Parity-Rule (siehe Kapitel 13.3.3).

284

13.2 Was sind zelluläre Automaten? 2. Moore-Nachbarschaft (nach Edward F. Moore (1924–2002)): Die Moore-Nachbarschaft ist eine erweiterte Von-Neumann-Nachbarschaft. Hier werden zusätzlich zu den nächsten Nachbarn noch die Diagonalelemente mitbetrachtet.

Abbildung 13.3: Darstellung der Moore-Nachbarschaft Aktuell wird die rote Zelle betrachtet. Als Nachbarschaft ergeben sich die blauen Zellen. Die Moore-Nachbarschaft wird z. B. bei der 1of8-Rule verwendet (siehe Kapitel 13.3.1). Anmerkung: Als Variation der beiden obigen Nachbarschaften wird oft auch noch der Zustand der aktuellen Zelle mitberücksichtigt. Schon diese kleinen Nachbarschaften ermöglichen eine Vielzahl an unterschiedlichen Regelsystemen. Hat man beispielsweise nur die Zustände {0, 1}, gibt es bereits 2 9 verschiedene mögliche Konfigurationen für die 9 Zellen im 3 × 3-Block. Jeder Konfiguration kann als Folgezustand 0 oder 1 zugewiesen werden. Somit erhält man also insgesamt 9 22 ≈ 10150 mögliche Regelsets (!). 3. Margolus-Nachbarschaft (nach Norman Margolus): Die Margolus-Nachbarschaft betrachtet nicht eine einzelne aktuelle Zelle, sondern je einen 2 × 2-Zellblock. Das gesamte Gitter wird in disjunkte 2 × 2-Blöcke zerlegt. Um eine Interaktion zwischen den Blöcken zu ermöglichen, betrachtet man in zwei aufeinanderfolgenden Zeitschritten ein versetztes 2 × 2-Raster.

Abbildung 13.4: Margolus-Nachbarschaft zu den Zeitpunkten t und t + 1

285

13 Zelluläre Automaten Rote und blaue Blöcke zeigen die Zerlegung in 2×2 Blöcke. Innerhalb eines Blocks hängt die Regel nur von den vier einzelnen Zellzuständen ab. Dieser Begriff findet beispielsweise beim HPP-Modell Anwendung (siehe Kapitel 13.4.1).

13.3 Beispiele 13.3.1 1of8-Rule

Hierbei besteht die Zustandsmenge aus Q = {0, 1}, wobei 0 eine tote Zelle und 1 eine lebendige Zelle beschreibt. Die Zustandsübergangsfunktion berücksichtigt alle acht Nachbarn (also die Moore-Nachbarschaft) und den Zustand der aktuellen Zelle: µ

¶ µ ¶ µ ¶ −1 −1 −1 Φ(~x,t + 1) = R ( Φ(~x + ), Φ(~x + ), Φ(~x + ), 0 µ 1 ¶ µ −1 ¶ 0 0 ), . ), Φ(~x), Φ(~x + Φ(~x + −1 µ 1¶ µ ¶ µ ¶ 1 1 1 )) ), Φ(~x + Φ(~x + ), Φ(~x + 1 0 −1 mit  akt = 1  1 falls 1 falls lo + o + ro + l + r + lu + u + ru = 1 R(lo, o, ro, l, akt, r, lu, u, ru) =  0 sonst.

Eine lebendige Zelle bleibt also lebendig. Eine tote Zelle wird lebendig, wenn sie genau einen lebendigen Nachbarn vorfindet. Die Anwendung dieser Regeln auf eine Startkonfiguration mit nur einer lebendigen Zelle führt zu folgender Entwicklung:

Abbildung 13.5: Startkonfiguration und erste Iteration der 1of8-Rule

286

13.3 Beispiele

Abbildung 13.6: Zweite und 11. Iteration der 1of8-Rule Deutlich erkennbar entsteht eine symmetrische fraktale Struktur. Wendet man die Box-CountingDimensionsformel hierauf an, ergeben sich bei einem s × s-Feld folgende Werte: s lebendige Zellen N(s)

7 33

63 1833

127 7297

255 29145

Trägt man ln(N(s)) gegen ln(s) auf, ergibt sich als Steigung (und damit Box-Counting Dimension) etwa 1, 88 (vgl. “Klassische Fraktale 1”). 12

11

10

y = 1.8794*x − 0.19405

9

ln(N(s))

8

7

6

5

4

3 Werte linear 2 1.5

2

2.5

3

3.5

4

4.5

5

5.5

6

ln(s)

Abbildung 13.7: Box-Counting-Dimension für die 1of8-Rule 13.3.2 Binäraddition (Sierpinski-Dreieck-Regel)

Eine weitere fraktale Struktur auf der Zustandsmenge Q = {0, 1} erhält man durch folgende Regeln: Eine lebendige Zelle bleibt für immer lebendig. Eine tote Zelle prüft die linke Nachbarzelle und die untere Nachbarzelle. Ist genau eine von diesen beiden Nachbarn lebendig, wird die Zelle lebendig, ansonsten bleibt sie tot.

287

13 Zelluläre Automaten Angewandt auf eine Startkonfiguration mit nur einer lebendigen Zelle in der linken unteren Ecke ergibt sich die folgende Entwicklung:

Startzustand

nach 7 Iterationen

nach 21 Iterationen

Endzustand

Abbildung 13.8: Ergebnis der Binäraddition Es entsteht ein Sierpinski-Dreieck (!). Wir wollen nun näher untersuchen, warum dies entsteht. Wie bereits im Vortrag “Klassische Fraktale II” erläutert wurde, erhält man das SierpinskiDreieck durch Einfärben der ungeraden Zahlen im Pascalschen Dreieck. Weiterhin lassen sich die Einträge im Pascalschen Dreieck jeweils als Summe der beiden darüberliegenden Einträge berechnen. 1 1 1 1 1

1 1

2 3

4

1 1

3 6

1 1

4

1 1

Pascalsches Dreieck

1

1 0

1 0

1 1

0

1 0

1

Pascalsches Dreieck modulo 2

Betrachtet man die Einträge nun modulo 2, entsteht gerade die Struktur des Sierpinski-Dreiecks. Man kann also weiter gehen und – anstatt zuerst die kompletten Werte zu berechnen – gleich die Einträge modulo 2 mit obigem Konstruktionsprinzip ermitteln. Dabei gilt: 0

0

0 gerade + gerade = gerade 0

1

1 gerade + ungerade = ungerade

1

1

0 ungerade + ungerade = gerade 1

0

1 ungerade + gerade = ungerade

Dies entspricht bei genauerer Betrachtung gerade den Regeln des obigen zellulären Automaten, wenn man das Koordinatensystem so dreht, dass die beiden oberen Einträge im Pascalschen Dreieck der linken bzw. unteren Nachbarzelle entsprechen. Eine tote Zelle wird lebendig, wenn genau eine der beiden betrachteten Nachbarzellen lebendig ist. Somit entsteht das bekannte Sierpinksi-Dreieck.

288

13.3 Beispiele 13.3.3 Parity-Rule

Als Zustandsmenge wird erneut Q = {0, 1} gewählt. Die Zustandsübergangsfunktion addiert die Werte der Nachbarzellen aus der Von-Neumann-Umgebung. Ist die Summe gerade, stirbt die aktuell betrachtete Zelle. Ansonsten lebt sie im nächsten Zeitschritt. Wie man im unten aufgeführten Beispiel sieht, vervielfältigt sich das Anfangsmuster nach einigen Iterationen. Die Parity-Rule beinhaltet also eine einfache Umsetzung von John von Neumanns Idee der Replikation.

Startkonfiguration

erste Iteration

zweite Iteration

vierte Iteration

sechste Iteration

achte Iteration

Abbildung 13.9: Ergebnis der Parity-Rule

289

13 Zelluläre Automaten Diese Vervielfältigung funktioniert bei jeder beliebigen Startkonfiguration, da diese in jedem Iterationsschritt zeitgleich um eine Zelle nach links, oben, rechts und unten verschoben und dabei überlagert wird (vgl. [10]). 13.3.4 Seeds-Rule

Als Zustandsmenge wird Q = {0, 1} gewählt. Die Regel bedient sich der Moore-Umgebung. Eine lebendige Zelle stirbt immer. Eine tote Zelle wird lebendig, wenn sie genau zwei lebendige Nachbarn hat. Diese Regel lässt vermuten, dass eine Anfangspopulation von lebendigen Zellen schnell ausstirbt. Allerdings zeigt sich, dass genau das Gegenteil eintritt: Eine sehr kleine Population füllt schnell das gesamte Feld.

Startkonfiguration

10. Iteration

etwa 50 Iterationen

etwa 100 Iterationen

Abbildung 13.10: Ergebnis der Seeds-Rule

13.4 Anwendungen Zelluläre Automaten finden in den verschiedensten Wissenschaftszweigen Anwendung. So wurden sie bereits seit 1950 in der digitalen Bildbearbeitung eingesetzt, um unter anderem Bildrauschen zu entfernen, Größen abzuschätzen oder Kanten zu erkennen. Doch vor allem bedient sich die Physik der Möglichkeiten, die zelluläre Automaten bieten.

290

13.4 Anwendungen

Abbildung 13.11: Orginalbild – [56] und Kantenerkennung Hierbei ist es Aufgabe der Wissenschaftler, essentielle und relevante Eigenschaften eines Systems einzufangen, um diese – in gewissen Grenzen – als Gesetz eines imaginären Systems interpretieren zu können. So sagte Albert Einstein: “Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher.” 13.4.1 HPP-Modell

1970 realisierten J. Hardy, Y. Pomeau und O. de Pazzis das bereits von Maxwell proklamierte Gas-Modell, in dem mikroskopische Gasteilchen miteinander interagieren, in einem zellulären Automaten. Dies ist heute als HPP Lattice-Gas-Model bekannt. Man verwendet die Margolus-Nachbarschaft. Hierbei wird jedem der möglichen 16 Zellblöcke ein Nachfolgeblock so zugewiesen, dass im Einzelblock das Verhalten fliegender Gasteilchen imitiert wird. Im folgenden sind die Regeln grafisch dargestellt:

































Abbildung 13.12: Regeln des HPP-Modells Mit diesem Modell lässt sich beispielsweise die Diffusion simulieren.

291

13 Zelluläre Automaten

Abbildung 13.13: Diffusion am Anfang und nach etwa 1000 Iterationen Es können aber auch weitaus komplexere Modelle umgesetzt werden; so zeigten 1986 U. Frisch, B. Hasslacher, Y. Pomeau gleichzeitig mit S. Wolfram, dass sich mit zellulären Automaten sogar ein Windsimulator realisieren lässt. 13.4.2 Majority-Rule

Bei der Majority-Rule übernimmt die Mittelzelle den Zustand, den die Mehrheit ihrer Nachbarzellen aus der Moore-Umgebung besitzt. Hier eine kleine Veranschaulichung:

Abbildung 13.14: Die mittlere gelbe Zelle folgt der Mehrheit und wird grün. Auf eine zufällige Startkonfiguration angewandt ergibt sich nach kurzer Zeit eine Verteilung von Mehrheitsgebieten.

Abbildung 13.15: Start- und statischer Endzustand der Majority-Rule

292

13.4 Anwendungen 13.4.3 Verkehrsnetz

Man kann zelluläre Automaten verwenden, um Straßennetze und deren Eigenschaften (Auslastung, Staus, . . . ) zu analysieren. Als Grundlage der Zustandsmenge wählt man Q = {Auto, Straße, Haus}. Diese kann später mit Ampeln, Vorfahrtsstraßen, usw. erweitert werden. Wir wollen hier kurz anreißen, wie dies aussehen könnte: Abbildung 13.16 zeigt eine mögliche Ausgangs-Zellkonfiguration einer Stadt mit Häusern und Straßen. Auf den Straßen befinden sich Autos (rot), die sich nun nach einfachen Regeln fortbewegen. Ist das Feld vor einem Auto frei, so fährt es weiter, ansonsten bleibt es stehen. Bei Kreuzungen können verschiedene Verhaltensweisen (links oder rechts abbiegen) beispielsweise per Zufall oder nach sonstigen vorher festgelegten Regeln simuliert werden.

Abbildung 13.16: Simulation eines Verkehrsnetzes 13.4.4 Sand

Als weiteres Beispiel eines physikalischen Modells, das sich als zellulärer Automat verwirklichen lässt, sei hier die Simulation fallenden Sandes aufgeführt. Wie bei vielen anderen physikalischen Modellen bedient man sich hier der Margolus-Nachbarschaft, in deren Blöcken der fallende Sand im Kleinen modelliert wird. Bei den folgenden Darstellungen der Übegangsregeln sind die Sandkörner weiß eingefärbt.

Abbildung 13.17: Statische Konfigurationen

293

13 Zelluläre Automaten

















Abbildung 13.18: Sandkorn fällt nach unten Für einen realistischeren Ablauf wird bei zwei benachbarten Sandkörnern zufällig entschieden, ob sie fallen (Wahrscheinlichkeit p) oder verkanten.

p



1− p

Abbildung 13.19: Das Zufallselement in der Sanduhr Beispielhaft sei hier eine Sanduhr nachgestellt.

Abbildung 13.20: Sanduhr am Anfang und nach etwa 100 Schritten 13.4.5 Feuer

Mit zellulären Automaten kann auch der Effekt eines brennenden Feuers erzielt werden.

294

13.4 Anwendungen Idee: Der Zustand einer Zelle soll ihre Temperatur repräsentieren. Wir unterscheiden 256 Zustände (0 entspricht kalt, 255 bedeutet heiß). Entsprechend wird die Colormap gewählt. Zusätzlich kann – wie bei unserer Implementation – auch noch einer der Zustände durch die Farbe Grau (Rauch) dargestellt werden, um einen realistischeren Effekt zu erzielen. In jedem Schritt wird der Mittelwert der drei unteren Nachbarn aus der Moore-Umgebung als neuer Zustand gewählt (siehe Abbildung 13.4.5). Dies entspricht der aufsteigenden Wärme, die sich gleichmäßig verteilt.

Abbildung 13.21: Berücksichtigte Nachbarn Anmerkung: In unseren Regeln wird obiger Mittelwert noch mit einem Faktor multipliziert, damit sich das Feuer weiter nach oben ausdehnt.

Abbildung 13.22: brennendes Feuer

295

13 Zelluläre Automaten 13.4.6 Forest-Fire

Wie bereits im Kapitel “Randomisieren deterministischer Fraktale” erläutert, lassen sich mit MATLAB Waldbrände simulieren. Dies ist ebenfalls ein zellulärer Automat. Man wählt als Zustandsmenge Q = {Boden, Baum, brennender Baum} (mit entsprechender Colormap) und als Umgebung die Von-Neumann-Nachbarschaft. Ein Baum fängt Feuer, wenn mindestens einer seiner Nachbarn brennt. Ein brennender Baum stirbt im nächsten Schritt.

Abbildung 13.23: Ein Brandherd / Feuer breitet sich aus

13.5 Game of Life

Abbildung 13.24: John Conway – [13] Wie bereits eingangs erwähnt, erfuhren die zellulären Automaten einen Popularitätsschub durch das Regelsystem “Game of Life” von John Conway. Auf dieses Regelsystem wollen wir nun näher eingehen.

296

13.5 Game of Life 13.5.1 Regeln

• Zwei Zustände: – tot – lebendig • Moore-Umgebung • Idee: – Zelle wird lebendig, wenn sie Gesellschaft hat. – Zelle stirbt, wenn sie einsam ist oder eine Überbevölkerung herrscht. • Regeln:

½

3 Nachbarn ⇒ Zelle wird lebendig. sonst ⇒ Zelle bleibt weiterhin tot.   < 2 Nachbarn ⇒ Zelle stirbt. – für lebendige Zellen: > 3 Nachbarn ⇒ Zelle stirbt.  sonst ⇒ Zelle lebt weiter. – für tote Zellen:

Ausgangskonfiguration

erste Iteration

zweite Iteration

nach ca. 100 Iterationen

Abbildung 13.25: Entwicklung des „Game of Life“ bei zufälliger Startkonfiguration Um die Auswirkungen dieser Regeln zu demonstrieren, betrachten wir die Entwicklung einer zufälligen Startpopulation, die in Abbildung 13.25 dargestellt ist.

297

13 Zelluläre Automaten 13.5.2 Eigenschaften

Im vorherigen Kapitel haben wir stets zu gegebenen physikalischen Beobachtungen Regeln konstruiert, die diese möglichst gut wiedergeben. Nun sehen wir uns der gegenteiligen Problematik konfrontiert: Wir kennen die kompletten Regeln (die physikalische Gesetze im “Game of LifeUniversum”) und wollen makroskopische Eigenschaften ableiten. Statische Gebilde

Als erstes widmen wir uns hierzu den sogenannten statischen Gebilden, d. h. Zellformationen, die sich im nächsten Zeitschritt nicht ändern. Hierzu einige Beispiele:

Block

Tub

Beehive

Boat

Ship

Pond

Abbildung 13.26: Darstellung einiger statischer Gebilde

Periodische Gebilde

Interessanter sind sich bewegende Strukturen, die ihren Ausgangszustand nach einigen Schritten wieder erreichen - sofern keine Störung eintritt. Folgende Beispielkonfigurationen haben eine Periode der Länge 2:

Blinker

Toad

Clock

Abbildung 13.27: Darstellung einiger periodischer Gebilde

298

13.5 Game of Life

Dynamische Gebilde

Neben statischen und periodischen Gebilden finden sich auch solche, die ihre Form beibehalten und sich dabei über das Feld bewegen. Ein Paradebeispiel hierfür ist der sogenannte “Glider”.

Abbildung 13.28: Bewegung eines Gliders Das Interessante an Glidern ist, dass sie mittels periodischer Strukturen erzeugt werden können. Beispielsweise mit einer “Gun”:

Abbildung 13.29: Ausgangskonfiguration einer „Gun“ und Darstellung nach einigen Schritten Deutlich erkennbar haben sich bei obiger “Gun” bereits 3 Glider gebildet, die nun schräg nach rechts unten fliegen. 13.5.3 Universal Computing

Die Glider können als Informationsträger verwendet werden. Hierzu wird das Vorhandensein eines Gliders als Bit angesehen. Ein Glider steht dabei für 1, ansonsten 0. Entsprechend zur “Gun” können alle logischen Verknüpfungen (NOT, AND, OR, XOR) mit geeigneten Zellkonfigurationen gebaut werden. Setzt man diese einzelnen Bausteine zusammen, kann man sogar einen Prozessor simulieren (!). Man spricht von Universal Computing. Beispielhaft wollen wir hier die logische Verknüpfung NOT betrachten. Als erstes machen wir hierzu die Beobachtung, dass sich zwei Glider – treffen sie in entsprechendem Winkel aufeinander – gegenseitig vollständig auslöschen können. Wir verwenden die Gun, um einen Ausgabedatenstrom aus Glidern zu erzeugen (siehe Abb. 13.30). Der Eingabestrom soll negiert werden.

299

13 Zelluläre Automaten

Abbildung 13.30: NOT mit Eingabe 01100 Platziert man die Gun geschickt bezüglich des Eingabestroms, werden die ankommenden Eingabeglider (die einer 1 entsprechen) die Ausgabeglider der Gun auslöschen (also eine 0 auf dem Ausgabestrom erzeugen). Kommt auf dem Eingabestrom kein Glider (was einer 0 entspricht), so bleibt der Ausgabeglider unbeschadet und übermittelt also eine 1.

Glider unversehrt

Auslöschung 1

Auslöschung 2

Abbildung 13.31: Gegenseitige Auslöschung bei NOT Nach einigen Schritten erhält man also gerade die bitweise invertierte Eingabe im Ausgabestrom.

Abbildung 13.32: NOT liefert die Ausgabe 10011 Entsprechend können die anderen logischen Verknüpfungen konstruiert werden.

300

13.6 Implementierung

13.6 Implementierung 13.6.1 Grafische Benutzeroberfläche

Um in MATLAB grafische Oberflächen zu erzeugen, wird   aufgerufen. Hiermit können Buttons, Dropdown-Menüs, etc. auf einer Figure positioniert werden (   -Datei). Dabei wird automatisch eine zugehörige  -Datei erstellt, in der man die gewünschten Funktionen der Steuerelemente implementiert. In unserem Fall ergibt sich die folgende Benutzeroberfläche:

Abbildung 13.33: Die Benutzeroberfläche von 



13.6.2 Timer

Damit man sich nicht anfangs auf eine bestimmte Anzahl von Iterationsschritten festlegen muss, (wie bei einer Implementation mittels for-Schleife,) haben wir eine Timerimplementation gewählt. Ein Timer ruft in vorher gewählten Zeitintervallen eine sog. “Callback-Funktion” auf. In dieser können beliebige auszuführende Befehle aufgeführt werden. In unserem Fall wird pro Timerschritt das Feld einmal neu berechnet (vgl. Regelset unten). Zum Erstellen eines Timers verwendet man das Schlüsselwort timer. tm = t i m e r ( ’ Tag ’ , ’CA\ _Timer ’ , ’ TimerFcn ’ , @CA\ _ t i m e r C a l l b a c k , ’ Period ’ , 0.1 );

...

   und eine Callback-Funktion namens Dies erzeugt einen neuen Timer mit Namen

    

  , die alle 0,1 Sekunden aufgerufen wird, sobald der Timer läuft. Gestartet bzw. gestoppt werden kann der Timer mit den Befehlen      bzw.      .

301

13 Zelluläre Automaten 13.6.3 Regelset

Die aktuellen Zellzustände werden in einer Matrix gespeichert. Je nach gewähltem Regelset wird die entsprechende Funktion auf die Matrix angewandt. Beispielhaft sei hier die Implementation des Regelsets für das “Game of Life” erklärt. f u n c t i o n neu = r u l e s _ c o n w a y ( a k t u e l l , m, n ) % % % %

RULES_CONWAY a r e t h e r u l e s f o r t h e game o f l i f e . ak tuell : actual s t at e of the c e l l s m, n : dimensions of a k t ue l l neu : new s t a t e a f t e r t h i s t i m e s t e p

% new s t a t e s a r e s a v e d i n neu s o t h a t t h e o l d s t a t e s % can be u s e d f o r c o m p u t a t i o n s neu = a k t u e l l ;

still

% l o o p on t h e " i n t e r i o r " o f t h e m a t r i x − t h e b o r d e r i s f i x e d f o r x = 2 :m−2 f o r y = 2 : n−2 % add Moore−n e i g h b o u r s n e i g h b o u r = a k t u e l l ( x −1 ,y −1)+ a k t u e l l ( x , y −1)+ a k t u e l l ( x +1 , y − 1 ) . . . + a k t u e l l ( x −1 ,y )+ a k t u e l l ( x +1 , y ) . . . + a k t u e l l ( x −1 ,y +1)+ a k t u e l l ( x , y +1)+ a k t u e l l ( x +1 , y + 1 ) ; % rules i f a k t u e l l ( x , y )==1 % l i v i n g c e l l a t ( x , y ) i f n e i g h b o u r ==2 | n e i g h b o u r ==3 % 2 o r 3 l i v i n g n e i g h b o u r s neu ( x , y ) = 1 ; % c e l l i s s t i l l a l i v e else neu ( x , y ) = 0 ; % c e l l d i e s end e l s e % dead c e l l a t ( x , y ) i f n e i g h b o u r ==3 % e x a c t l y 3 l i v i n g n e i g h b o u r s neu ( x , y ) = 1 ; % c e l l becomes a l i v e else neu ( x , y ) = 0 ; % c e l l s t a y s dead end end end end

Unser Programm erkennt automatisch alle Dateien der Form       im Programmverzeichnis als Regelsets. Diese können dann in der Oberfläche unter dem Namen   angewählt werden. Somit können leicht eigene Regelsets hinzugefügt werden.

302

13.6 Implementierung 13.6.4 Visualisierung einer Matrix

Wir verwenden zur Darstellung der jeweiligen Zellzustände den Befehl    , dieser ordnet jedem Zustand in der Matrix eine Farbe aus der aktuellen   zu, wie folgender Beispielcode verdeutlicht. m = magic ( 5 ) ; % B e i s p i e l s m a t r i x s = p c o l o r (m ) ; s e t ( s , ’ L i n e S t y l e ’ , ’− ’ ) ; % G i t t e r 5

4.5

4

3.5

3

2.5

2

1.5

1

1

1.5

2

2.5

3

3.5

4

4.5

5

4.5

5

s e t ( s , ’ L i n e S t y l e ’ , ’ none ’ ) ; % k e i n G i t t e r 5

4.5

4

3.5

3

2.5

2

1.5

1

1

1.5

2

2.5

3

3.5

4

Je nach Anwendung kann durch eine entsprechende Colormap die Bedeutung der Zellzustände, die in unserem Fall als Zahlenwerte in einer Matrix vorliegen, verdeutlicht werden. Zum Beispiel wurde bei den Forest-Fire-Regeln (vgl. Kapitel 13.4.6) eine Colormap bestehend aus {dunkelbraun, grün, rot} entsprechend den Zuständen {Waldboden, Baum, brennender Baum} gewählt. In MATLAB besteht eine Colormap aus einer n×3-Matrix, wobei jeweils die drei Einträge einer Zeile den Intensitäten von Rot, Grün und Blau im RGB-Farbmodell repräsentieren. Eine Schwarz-Weiß-Colormap ergibt sich also aus folgender Matrix:

  



303

13 Zelluläre Automaten Obige Forest-Fire-Colormap:









  

 

  

13.7 Fazit Wir haben gesehen, dass zelluläre Automaten die Möglichkeit eröffnen, eigene “Welten” mit zugehörigen “physikalischen Regeln” zu kreieren. Dabei ergeben sich oftmals überraschende Strukturen, deren Analyse Eigenschaften hervorbringt, die tief mit realen Anwendungen verknüpft sind. So haben wir beispielsweise aufgezeigt, dass man mit John Conway’s “Game of Life” einen Prozessor aufbauen kann. Auf der anderen Seite haben sich zelluläre Automaten zu einem wichtigen Hilfsmittel für die Simulation naturwissenschaftlicher Prozesse entwickelt. Ein weiteres wichtiges Anwendungsgebiet für zelluläre Automaten stellt die elektronische Datenverarbeitung dar. Da die Erforschung der zellulären Automaten bei weitem noch nicht abgeschlossen ist, werden sich in Zukunft mit Sicherheit weitere Einsatzmöglichkeiten erschließen.

304

14 Chaos von Eva Brauch und Verena Fink

14.1 Einführung Die Anfänge der mathematischen Forschung im Bezug auf das Chaos gehen bis ins Jahr 1890 zurück. Der Franzose Henri Poincaré beschäftigte sich zu diesem Zeitpunkt mit der Stabilität des Sonnensystems. Dabei stieß er auf die Frage, ob die Planeten auf ihren gegenwärtigen Bahnen bleiben würden, oder ob einer von ihnen in die ewige Dunkelheit abschweifen bzw. in die Sonne hereinstürzen könnte. Poincaré entdeckte damit zum ersten Mal Chaos in der Bewegung dreier Körper, deren gegenseitige Gravitationskräfte aufeinander wirken. Es folgten viele weitere Mathematiker und Naturwissenschaftler, die sich mit dem Konzept „Chaos“ befassten. Die bekanntesten unter ihnen sind z. B. Edward N. Lorenz, Alexander M. Lyapunov und Benoit Mandelbrot.

Was aber versteht man unter dem Begriff Chaos?

Anders als in der Umgangssprache charakterisiert der mathematische Begriff nicht den Zustand eines Systems, wie beispielsweise seine Unordnung, sondern sein zeitliches Verhalten, d. h. seine Dynamik. Gleichwohl sind chaotische Bewegungen weit davon entfernt, vollständig ungeordnet zu sein. Im Gegenteil, sie zeigen eine wohldefinierte Struktur, die leicht erfassbar ist. „Wo das Chaos auf die Ordnung trifft, gewinnt meist das Chaos, weil es besser organisiert ist.“ Man könnte Chaos also auch als eine Ordnung bezeichnen, die wir zunächst nicht durchschauen. Man redet z. B. von Chaos, wenn ein System regel-los erscheint und wenn man keinerlei Erkenntnis über die Systematik eines Systems hat. Etwas formaler sagt man, dass ein System chaotisch ist, wenn unter nur minimalen Veränderungen der Anfangsbedingungen die Entwicklung zu deutlich unterschiedlichen Ergebnissen führt. So kann etwa der Flügelschlag eines Schmetterlings im Amazonas einen Gewittersturm über Europa auslösen. Dieser sogenannte „Schmetterlingseffekt“ ist eines der bekanntesten Beispiele der Chaostheorie.

305

14 Chaos

Wie kann man nun die Verbindung zwischen Chaos und Fraktalen ziehen?

Im Zentrum der Chaostheorie steht das „deterministische“ Chaos. Es ist als Bereich zwischen der linearen Voraussagbarkeit von Systemen und dem absolut Zufälligen (Stochastischen) einzureihen. Allen Systemen liegt ein Konstruktionsprinzip zugrunde, welches durch bestimmte Informationen beeinflusst wird und durch Informationen von Informationen sich selbst wieder beeinflusst. Es liegt also ein Rückkopplungsprozess vor, durch den es nicht mehr möglich ist, die Auswirkungen von Anfangsbedingungen vorauszusagen, denn bei chaotischen Systemen müssen oft unendlich viele Zufallsvariablen miteinbezogen werden. Systeme, die gelegentlich chaotisches Verhalten aufweisen, sind Wetter, Klima, Plattentektonik, Wirtschaftskreisläufe und Bevölkerungswachstum, um nur einige Beispiele zu nennen. Wir wollen nun wissen, wie man den Begriff „Chaos“ besser fassen kann. Wie kann man sich davon überzeugen, dass das, was chaotisch aussieht, auch wirklich chaotisch ist und nicht nur sehr kompliziert, aber genau vorhersagbar? Da es viele verschiedene dynamische Systeme gibt, die Chaos hervorbringen können, betrachten wir im Folgenden stellvertretend eine spezielle Funktion. Es ist die quadratische Funktion.

14.2 Die Eigenschaften von Chaos 14.2.1 Sensitivität

Das größte Problem für den Computer im Umgang mit Chaos ist die extreme Sensitivität eines Iterators. Deshalb muss man mit der Interpretation einer Computerausgabe sehr vorsichtig sein. Numerische Schwierigkeiten am Beispiel des quadratischen Iterators erläutert

Abbildung 14.1: Zeitreihe für den quadratischen Iterator mit x 0 = 0, 2027 und a = 4 Abbildung 14.1 zeigt die Zeitreihe von x-Werten, die mit dem quadratischen Iterator xn+1 = axn (1 − xn )

306

14.2 Die Eigenschaften von Chaos für a = 4 und den Startwert x0 = 0, 02027 erzeugt wurde. Diese Zeitreihe nennt man die Bahn von x0 . Auf der horizontalen Achse ist die Anzahl der Iterationen abgetragen, während auf der vertikalen Achse die Amplitude gegeben ist, die zwischen 0 und 1 liegt. Geradenstücke verbinden die Punkte. Das Bild zeigt ein unregelmäßiges Muster, ähnlich dem von Aktienkursen, die bekanntlich schwer vorhersagbar sind. Offensichtlich ist, dass sich die Amplitude zwischen 0 und 1 befindet, da für 0 ≤ xn ≤ 1 und 0 ≤ a ≤ 4 auch 0 ≤ xn+1 ≤ 1 gilt. Sensitives und stabiles Verhalten

Abbildung 14.2: Zeitreihe für den quad. Iterator mit x 0 = 0, 2027 und a = 3, 742718 In Abbildung 14.2 liegt nach ungefähr 55 Zeitschritten Periodizität vor. Es gibt aber auch Bahnen, die gegen einen einzigen Wert konvergieren: dann liegt nichtsensitives, stabiles Verhalten vor.

Abbildung 14.3: Nichtsensitives, stabiles Verhalten des quad. Iterators für a = 2, 75 Vergleichen wir dazu Abbildung 14.3. Es spielt keine Rolle, wo wir mit der Iteration anfangen, wir gelangen immer zu dem gleichen Endzustand. Diesen Mechanismus könne wir durch grafische Iteration veranschaulichen.

307

14 Chaos

Abbildung 14.4: Konvergenz gegen einen Punkt, dargestellt durch grafische Iteration In Abbildung 14.4 beginnt die grafische Iteration mit dem Startwert x 0 = 0, 22. Die Parabel ist der Graph der Funktion ax(1 − x), auf deren Kurve alle Punkte (x n , xn+1 ) liegen, da gilt: xn+1 = axn (1 − xn ). Daher hat die Parabel über x0 die Höhe x1 . Auf derselben Höhe finden wir auf der Winkelhalbierenden den Punkt (x1 , x1 ), über dem die Parabel die Höhe x2 hat. Fährt man mit der grafischen Iteration fort, kommt man zum Schnittpunkt der Parabel mit der Winkelhalbierenden; dies ist der Punkt (x∞ , x∞ ). In Abbildung 14.5 sehen wir eine Variation des Experiments:

Abbildung 14.5: Iteration eines Intervalls, das gegen einen Punkt konvergiert Wir iterieren das Intervall [x0 − 0, 015; x0 + 0, 015] der Breite 0, 03. Wir erhalten ebenfalls Bahnen, die gegen denselben Endzustand konvergieren; dies ist also ein Beispiel für Stabilität, die

308

14.2 Die Eigenschaften von Chaos man sicherlich nicht in der Gegenwart von Chaos finden kann. Sensitivität veranschaulicht durch grafische Iteration

Liegt Sensitivität vor, dann wird jede Abweichung verstärkt, egal wie klein sie ist. In Abbildung 14.6 wiederholen wir den Versuch, den wir schon in Abbildung 14.5 gesehen haben, diesmal jedoch mit a = 4. Schon nach wenigen Iterationen ist das ursprüngliche Intervall beträchtlich gewachsen; würde man noch mehr Iterationen durchführen, wäre das ganze Intervall [0; 1] überdeckt.

Abbildung 14.6: Iteration eines Intervalls veranschaulicht durch grafische Iteration Dasselbe geht auch mit einem wesentlich kleinerem Intervall (siehe Abbildung 14.7); wir erkennen, dass selbst die kleinste Abweichung im Laufe der Iteration beträchtlich anwächst.

Abbildung 14.7: Iteration eines sehr kleinen Intervalls

309

14 Chaos Wir fassen also zusammen: Sensitivität zieht nach sich, dass ein beliebig kleines Intervall von Anfangswerten durch Iteration deutlich vergrößert wird, was man sensitive Abhängigkeit von den Anfangsbedingungen nennt. Beim quadratischen Iterator für a = 4 weitet sich jedes beliebige Anfangsintervall unter Iteration auf [0; 1] aus. Folglich ist Sensitivität eine zentrale Eigenschaft, um Chaos mathematisch zu charakterisieren. Sie führt aber nicht automatisch zu Chaos. Wir betrachten nun ein Beispiel eines sensitiven Systems, das sich nicht chaotisch verhält: Die lineare Transformation x 7→ cx mit c > 1. Diese Transformation ist linear und zeigt sensitive Abhängigkeit von den Anfangsbedingungen. Jede Abweichung wird durch Iteration verstärkt (siehe Abbildung 14.8). Für einen gegebenen Startwert x0 haben wir nach n Iterationen xn = c n x0 , da gilt: x1 = cx0 ;

x2 = cx1 = ccx0 = c2 x0 ;

....

Gegeben sei eine Abweichung von E0 = ε , d. h. wir iterieren einen Startwert u 0 = x0 + E0 und bekommen nach n Iterationen un = cn (x0 + E0 ). Der Fehler hat sich also zu En = un − xn = cn (x0 + ε ) − cn x0 = cn ε entwickelt. Somit vergrößert sich eine Abweichung von ε bei jeder Iteration um den Faktor c > 1. Das System ist sensitiv, aber sicherlich nicht chaotisch.

Abbildung 14.8: Iteration bei der linearen Transformation x 7→ 1, 5x

310

14.2 Die Eigenschaften von Chaos

Die Charakterisierung von Lorenz

Der Meteorologe Lorenz beschreibt die Sensitivität von chaotischen Systemen auf eine Weise, die es erlaubt, zwischen dem „wilden“ quadratischen Iterator und der „zahmen“ linearen Transformation zu unterscheiden. Für chaotische Systeme ist es typisch, dass eine gegebene Abweichung im Lauf der Entwicklung so groß wird wie das „Bezugssignal“ selbst. Betrachten wir noch einmal den quadratischen Iterator mit a = 4 und dem Startwert x 0 = 0, 202. Ausgehend von einer sehr kleinen Abweichung von ε = 10 −6 finden wir einen nahegelegenen Anfangswert u0 = 0, 202001. Abbildung 14.9 zeigt die erste Zeitreihe (x0 , x1 , x2 , . . .) im oberen Schaubild, die zweite (u o , u1 , u2 , . . .) in der Mitte und die Entwicklung der Absolutbeträge der Abweichungen |u n − xn | im unteren Diagramm. Also wird oben die Originaliteration gezeigt, in der Mitte die Iteration mit gestörtem Anfangswert, und unten wird die Entwicklung der Differenz zwischen den beiden Zeitreihen verzeichnet.

Abbildung 14.9: Quadratische Iteration für zwei Anfangswerte und ihre Differenz Am Anfang bleibt der Fehler sehr klein. Während der ersten 15 Iterationen kann man ihn nicht von null unterscheiden. Sobald er jedoch eine kritische Größe überschritten hat, schnellt er explosionsartig in die Höhe. Ab diesem Zeitpunkt verhält sich die Differenz der beiden Zeitreihen ebenso sprunghaft und unregelmäßig wie die Zeitreihen selbst. Die Amplitude des Fehlers ist gleich der Amplitude der beiden Zeitreihen, nämlich 1. Dieses Verhalten ist typisch für chaotische Systeme. Bei der linearen Transformation x 7→ cx wachsen Fehler und wahrer Wert in einem überschaubaren Verhältnis zueinander an. Die Beziehung zwischen wahrem Wert und Fehler bleibt zu jedem

311

14 Chaos Zeitpunkt der gleiche. Der relative Fehler ist nämlich: cn ε En ε = = =c xn cn x0 x0 wobei c eine Konstante ist. Daher ist die Iteration harmlos und kann ohne weiteres von einem Computer ausgeführt werden. Analyse der Fehlerfortpflanzung

Bei jeder Iteration des einfachen linearen Systems x 7→ cx wächst der Fehler um den Faktor c, daher ist ¯ ¯ ¯ En ¯ ¯ ¯ = cn . ¯ E0 ¯

Beim quadratischen Iterator ist es nicht so deutlich. Der Fehler überschreitet nach einer bestimm¯ ¯ ¯ ¯ ten Anzahl von Iterationen einen Schwellenwert, nachdem er dann sichtbar wird. Bei ¯ EEn0 ¯ = cn

wird das Verhältnis EEn0 zu einem Faktor c in Beziehung gesetzt, der die Ausbreitung des Fehlers charakterisiert. Um eine geeignete Formel zu erhalten, nehmen wir auf beiden Seiten den natürlichen Logarithmus und teilen durch n: ¯ ¯ ¯ ¯ ¯ En ¯ 1 ¯¯ En ¯¯ ¯ ¯ ⇐⇒ ln c = ln ¯ ¯ . ln ¯ ¯ = n ln c E0 n E0 Die Größe auf der rechten Seite gibt uns also im linearen Fall den Logarithmus der Fehlerwachstumskonstante c. Durch Einsetzen verschiedener Werte erhält man das Ergebnis c ≈ exp(0.7) ≈ 2. Durch den quadratischen Iterator x 7→ 4x(1 − x) werden also kleine Fehler bei jeder Iteration ungefähr verdoppelt. Aber: • Der Fehler kann sich nur verdoppeln, wenn er genügend klein ist. • Er verdoppelt sich nur im Durchschnitt (manchmal verkleinert er sich auch). Der Lyapunov-Exponent

Durch den Lyapunov-Exponenten λ (x 0 ) wird das durchschnittliche Wachstum infinitesimal kleiner Fehler in der Umgebung von x0 beschrieben. Angenommen, wir arbeiten mit einem beliebig kleinen Anfangsfehler E 0 und führen mehrere Iterationen durch. Zunächst schreiben wir den Faktor EEn0 für die gesamte Fehlerverstärkung als ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ En ¯ ¯ En ¯ ¯ En−1 ¯ ¯·¯ ¯ · · · · · ¯ E1 ¯ ¯ ¯=¯ ¯ E0 ¯ ¯ E0 ¯ ¯ En−1 ¯ ¯ En−2 ¯ und versuchen jeden Faktor einzeln abzuschätzen. Beim Multiplizieren würde es zu Problemen im Computer kommen; da wir aber nur am geometrischen Mittel bzw. dessen Logarithmus interessiert sind, können wir diese Schwierigkeit umgehen. In einer Gleichung ausgedrückt:

312

14.2 Die Eigenschaften von Chaos

Abbildung 14.10: Alexander Michailowitsch Lyapunov, 1857–1918 – [35] ¯ ¯ ¯ ¯ ¯ ¯ E1 ¯¯ 1 n ¯¯ Ek ¯¯ 1 ¯¯ En ¯¯ ¯¯ En En−1 ln · · · · ¯ = ∑ ln ¯ = n ¯ E0 ¯ ¯ En−1 En−2 E0 n k=1 Ek−1 ¯

Um die einzelnen nach jeder Iteration abzuschätzen, betrachten wir ¯ Fehlerverstärkungsfaktoren ¯ ¯ Ek+1 ¯ den Quotienten ¯ Ek ¯ . Diese Größe beschreibt, wie sehr ein kleiner Fehler E k von xk , der k-ten Iterierten, in der darauf folgenden Iteration vergrößert oder verkleinert wird. Im wesentlichen ist dieser Fehlerverstärkungsfaktor von der Größe Ek unabhängig, solange Ek klein genug ist. Wir betrchten ab jetzt nicht mehr die genaue Zahl Ek , sondern einen kleinen Fehler ε , zu Beispiel ε = 0, 001; das können wir, da es keine wesentliche ¯ ¯ Rolle spielt, ob wir die genaue Zahl E k benutzen, und da der ¯ Ek+1 ¯ Fehlerverstärkungsfaktor ¯ Ek ¯ nicht wesentlich von ε abhängt. Jetzt wählen wir einen beliebig kleinen Fehler ε und schätzen die Fehlerverstärkungsfaktoren:

wobei

¯ ¯ ¯ ¯ ¯ Ek+1 ¯ ¯ E˜ k+1 ¯ ¯ ¯≈¯ ¯ ¯ Ek ¯ ¯ ε ¯ ,

E˜ k+1 = f (xk + ε ) − f (xk ) und f (x) = 4x(1 − x) der quadratische Iterator ist. Über das Wachstum dieser Faktoren brauchen wir uns keine Gedanken zu machen, da wir jetzt beliebig viele Fehlerverstärkungsfaktoren berechnen können. Zusammenfassend können wir sagen, dass wir eine durchführbare Methode hergeleitet haben, mit der man den Lyapunov-Exponenten zuverlässiger bestimmen kann, indem man den Mittelwert über viele Iterationen bildet: ¯ ¯ ¯ ¯ 1 ¯¯ En ¯¯ 1 n ¯¯ E˜ k ¯¯ ln ≈ ∑ ln ¯ ¯ . n ¯ E0 ¯ n k=1 ε 313

14 Chaos Beim quadratischen Iterator konvergiert der Exponent gegen λ (x 0 ) = ln 2. Wir haben also Sensitivität vorliegen. Der Lyapunov-Exponent ist ein Hinweis darauf, ob instabiles chaotisches Verhalten vorliegt. Wenn der Lyapunov-Exponent positiv ist, liegt Sensitivität im Hinblick auf die Anfangsbedingungen vor, die umso ausgeprägter ist, je größer der Exponent ist. Der Lyapunov-Exponent lässt sich auf viele Systeme in der Mathematik und in den Naturwissenschaften anwenden. Er ist der Schlüssel beim Aufspüren und Quantifizieren chaotischen Verhaltens überhaupt. 14.2.2 Die Mischungseigenschaft

Ein weiteres Zeichen für Chaos ist das Mischungsverhalten. Wir betrachten es auch hier wieder für den quadratischen Iterator. Dabei stellt sich die Frage, was Mischen intuitiv bedeutet. Ganz allgemein betrachtet ist der Vorgang des Mischens vergleichbar mit dem Vorgang, einen Tropfen Milch in eine Tasse Kaffee zu schütten. Um dies mathematisch zu präzisieren, unterteilen wir das Einheitsintervall in mehrere Teilintervalle und fordern, durch Iteration aus einem Startintervall in ein beliebiges Zielintervall zu gelangen. Wenn diese Forderung für alle endlichen Unterteilungen des Einheitsintervalls erfüllt ist, nennt man das System mischend. Definition 14.1 (Mischungseigenschaft). Für je zwei offene Intervalle I und J (die beliebig klein sein dürfen, aber eine positive Länge haben müssen) kann man Anfangswerte in I finden, die durch Iteration nach J gelangen. Wie verhalten sich kleine Intervalle?

Abbildung 14.11: Mischen Der quadratische Iterator weist Mischungsverhalten auf, was in Kapitel 14.4.3 noch bewiesen wird. Er hat sogar noch eine stärkere Eigenschaft. Er kann nicht nur Punkte aus einem beliebigen

314

14.2 Die Eigenschaften von Chaos Teilintervall in ein beliebiges Zielintervall iterieren, er kann sie sogar bei Iteration auf das gesamte Einheitsintervall [0; 1] verteilen. Dabei fällt auf, dass bei Iteration kleiner Intervalle meist ein Wachstum eintritt, so dass schließlich das gesamte Einheitsintervall überdeckt wird. Umgekehrt kann man also sagen, dass jeder Punkt aus [0; 1] Urbilder in einem kleinen Anfangsintervall hat. Es stellt sich nun die Frage, nach wie vielen Iterationsschritten das gesamte Einheitsintervall überdeckt ist, wenn die Länge der Anfangsintervall fest ist. Um dies zu beantworten, erstellen wir eine Tabelle, in der wir die Anzahl N der disjunkten Teilintervalle und die Anzahl k der zum Abdecken von [0; 1] benötigten Iterationsschritte eintragen. Man kann nun erkennen, das bei Verdopplung der Intervallanzahl die benötigte Anzahl der Iterationsschritte um 1 anzusteigen scheint. Man kann dies auf den Lyapunov-Exponenten zurückführen, was bedeutet, das kleine Fehler durch den Faktor 2 verstärkt werden. 14.2.3 Periodische Punkte

Es gibt allerdings in einem Teilintervall nicht nur Punkte, die bei Iteration das ganze Intervall abdecken. Bei manchen Punkten wird nur eine endliche Anzahl der Intervalle durchlaufen. Solche Punkte nennt man periodisch. Sie sind eine weitere zeichnende Eigenschaft von Chaos. Obwohl theoretisch in jedem Intervall unendlich viele solcher Punkte existieren, haben wir Probleme, sie mit dem Computer in einem sensitiven System zu entdecken. Für den quadratischen Iterator mit a = 4 ist z. B. sin 2 ( π7 ) ein periodischer Punkt mit Periode 3. Geben wir aber den Wert sin 2 ( π7 ) als Startwert in den Computer ein, so stellen wir fest, dass die Bahn zwar anfangs periodisch aussieht; nach mehreren Schritten wird aber sichtbar, dass dies nicht der Fall ist.

Abbildung 14.12: Vermeintliche Periodizität Dies lässt sich auf die sensitive Abhängigkeit von den Anfangsbedingungen zurückführen. Der

315

14 Chaos Computer kann die Zahl sin 2 ( π7 ) nicht exakt darstellen, wodurch ein Fehler entsteht, der sich bei jeder Iteration verdoppelt. Das gleiche gilt für alle instabilen periodischen Bahnen. Es gibt also keine Möglichkeit, in einem sensitiven System periodische Punkte mit dem Computer zu berechnen.

14.3 Eine Metapher für Chaos: Das Kneten von Teig Das Kneten von Teig sorgt dafür, dass eine kleine Portion Gewürz, die man in den Teig gibt, gleichmäßig überall im Teig verteilt wird.

Abbildung 14.13: Kneten als Rückkopplungsprozess: Strecken, Falten, Strecken usw. – [45] 14.3.1 Versuch einer Definition von Chaos

Bisher ist noch keine allgemeine Definition für Chaos gefunden worden, die sich auf die Mehrzahl der interessanten Fälle anwenden lässt. Die Mathematiker stimmen aber in dem speziellen Fall der Iteration einer Funktion darin überein, dass die folgenden drei Eigenschaften für Chaos kennzeichnend sind: 1. Sensitive Abhängigkeit von den Anfangsbedingungen, 2. Mischungseigenschaft, 3. periodische Punkte, die dicht liegen. 14.3.2 Kneten, ein deterministischer Vorgang

Beim Knetprozess gibt es nichts Zufälliges; der Bäcker wiederholt einen Vorgang immer und immer wieder. Der Teig wird beim Kneten mehrfach gestreckt und gefaltet. Am Ende hat das Ergebnis zwar Eigenschaften, die zufällig aussehen, der Prozess vollzieht sich aber nach einer deterministischen Regel. 14.3.3 Kneten durch Strecken und Falten

Wir idealisieren den Prozess so stark, dass er selbst von einem gut ausgebildeten Bäcker kaum realisiert werden kann. Der Teig wird genau auf doppelte Länge gestreckt und anschließend in der Mitte umgefaltet. Dann unterteilen wir den Teig noch in zwölf Blöcke.

316

14.3 Eine Metapher für Chaos: Das Kneten von Teig Nun idealisieren wir die Situation noch weiter: Wir nehmen an, der Teig besteht aus unendlich dünnen Schichten, mit denen geknetet wird und deren Dicke unverändert bleibt. So können wir den Teig durch eine Strecke darstellen. Wenn wir den Streck- und Faltvorgang mehrmals wiederholen, können wir feststellen, dass die Nachbarschaftsbeziehungen zweier Salzkörner, die am Anfang nahe beieinander lagen, nun zerstört sind. Dies ist sowohl auf die Mischungseigenschaft als auch auf die sensitive Abhängigkeit von den Anfangsbedingungen zurückzuführen. 14.3.4 Kneten durch Strecken, Schneiden und Kleben

Hierbei wird der Teig jetzt auf doppelte Länge gestreckt, dann auseinandergeschnitten und übereinander geklebt. 14.3.5 Vergleich der Knetvorgänge

Abbildung 14.14: Zweimal Strecken und Falten – [45] Wieder wird der Teig in 12 gleich große Teile geteilt, dann wird die Streck-, Schneide- und Klebeoperation und anschließend die Streck- und Faltoperation druchgeführt. Das Ergebnis wird mit dem verglichen, was wir durch zweimaliges Strecken und Falten erhalten (siehe Abb. 14.15). Wir können erkennen, dass sie übereinstimmen, wenn man die Unterschiede in der vertikalen Anordnung der Blöcke nicht beachtet. Jetzt vernachlässigen wir wieder die Dicke und stellen uns den Teig als Strecke vor. Wir nehmen das Intervall [0; 1] als Modell für den Teig. Wir setzen T für die Streck- und Klebeoperation und S für die Streck-, Schneide- und Klebeoperation. In Abbildung 14.15 wenden wir nun links

317

14 Chaos

Abbildung 14.15: Vergleich der Knetvorgänge – [45] zweimal T und rechts einmal S und einmal T an. Während sich die Wege und die Zwischenergebnisse unterscheiden, erhalten wir am Ende das gleiche Ergebnis; das Teilchen befindet sich an exakt der gleichen Position. Wenn sich das Teilchen an der Stelle x befindet, heißt das: T (T (x)) = T (S(x)). Vergleichen wir dagegen die dreifache Anwendung von T mit einer Hintereinanderausführung von zweimal S und einmal T , sehen wir auch hier, dass die Ergebnisse übereinstimmen: T (T (T (x))) = T (S(S(x))). Die Vermutung liegt nahe, dass sich ein Knetvorgang durch den anderen ersetzen lässt. Behauptung: N Streck- und Faltvorgänge T , d. h. : TN = T . . . T} | T{z N-mal

liefern die gleiche Substanz in jeder vertikalen Spalte wie das (N − 1)-fache Anwenden der Streck-, Schneide- und Klebeoperation S mit einem anschließendem Streck- und Faltvorgang T ,

318

14.3 Eine Metapher für Chaos: Das Kneten von Teig also: T SN−1 = T SS . . . S} | {z

(N − 1)-mal

14.3.6 Formeln für die Knetvorgänge

Das mathematische Modell für das Kneten eines eindimensional dargestellten Teigs kann durch Funktionen beschrieben werden. Funktion für den Streck- und Faltvorgang: ( 2x T (x) = −2x + 2

für x ≤ 0, 5, für x > 0, 5.

Aufgrund ihres Aussehens wird sie Zeltfunktion genannt (siehe Abbildung 14.16).

Abbildung 14.16: Zeltfunktion Der Teig wird durch das Einheitsintervall [0; 1] dargestellt. Er wird um den Faktor 2 auf [0; 2] gestreckt, d. h. die erste Hälfte des Intervalls wird auf [0; 1] gestreckt, was der erste Teil der Definition von T ausdrückt: Für x ≤ 0, 5 ist T (x) = 2x. Die zweite Hälfte von [0; 1] wird durch das Strecken zu [1; 2] transformiert und muss daher am linken Randpunkt zurück gefaltet werden. Dies entspricht dem Falten an der Stelle x = 0, also dem Multiplizieren mit −1 und der Verschiebung um 2 Einheiten nach rechts. Damit gilt für x ≥ 0.5 die Definition T (x) = −2x + 2. Funktion für den Streck-, Schneide- und Klebevorgang: Dieses Modell erhält ihren Namen auch aufgrund ihres Aussehens: Die Funktion wird Sägezahnfunktion genannt. Sie ist ebenfalls

319

14 Chaos auf dem Einheitsintervall definiert (vgl. Abbildung 14.17). ( 2x für x < 0, 5, S(x) = 2x − 1 für x ≥ 0, 5.

Abbildung 14.17: Sägezahnfunktion Dem Strecken von [0; 0, 5] um 2x auf [0; 1] und dem Strecken von [0, 5; 1] auf [1; 2] folgt das Abschneiden bei 1. Dann verschieben wir das ganze um −1, erhalten also 2x − 1. Anschließend müssen wir noch festlegen, ob S(0, 5) = 0 oder S(0, 5) = 1 sein soll. Bei den folgenden Betrachtungen haben wir S(0, 5) = 0 gewählt. Nun zu den Ersetzungseigenschaften der Knetfunktionen: Satz 14.1. Mit den oben definierten Funktionen T und S gilt: T T (x) = T S(x). Beweis: Wir betrachten zunächst die vier Fälle auf der linken Seite: T (T (x)) T (T (x)) T (T (x)) T (T (x))

= T (2x) = T (2x) = T (−2x + 2) = T (−2x + 2)

= 4x = −4x + 2 = 4x − 2 = −4x + 4

für für für für

0 ≤ x ≤ 0, 25 0, 25 < x ≤ 0, 5 0, 5 < x ≤ 0, 75 0, 75 < x ≤ 1

Nun die vier Fälle der rechten Seite: T (S(x)) T (S(x)) T (S(x)) T (S(x))

320

= T (2x) = T (2x) = T (2x − 1) = T (2x − 1)

= 4x = −4x + 2 = 4x − 2 = −4x + 4

für für für für

0 ≤ x ≤ 0, 25 0, 25 < x < 0, 5 0, 5 ≤ x ≤ 0, 75 0, 75 < x ≤ 1

14.3 Eine Metapher für Chaos: Das Kneten von Teig Beachte: −4x + 2 = 0 = 4x − 2 für x = 0, 5. Damit haben wir gezeigt, dass T (T (x)) = T (S(x)) ist.

¤

Damit sind auch die folgenden Beziehungen bewiesen: T T T (x) = T SS(x) T T T T (x) = T SSS(x); denn wenn wir T auf beiden Seiten von T T (x) = T S(x) anwenden, erhalten wir: T T T (x) = |{z} T T S(x)

=⇒

T T T (x) = T SS(x).

=T S

Dies kann man beliebig oft wiederholen. Daraus folgt die sogenannte Satz 14.2 (Ersetzungseigenschaft). N Iterationen T sind äquivalent zu N − 1 Iterationen S und einmal T . 14.3.7 Kneten und der quadratische Iterator

Nun ist eine Verbindung zwischen dem Rückkopplungssystem x 7→ 4x(1 − x) und dem Kneten von Teig gesucht. Die Transformation y = 4x(1 − x) entspricht einer Parabel. Wenn wir die xWerte zwischen 0 und 1 betrachten, dann sehen wir, dass die zugehörigen y-Werte ebenfalls zwischen 0 und 1 liegen, für x < 0, 5 wachsen und für x > 0, 5 fallen. Die Intervalle [0, 12 ] und [ 12 , 1] werden auf das Intervall [0; 1] auf der y-Achse gestreckt. Die Abbildungsvorschrift y = 4x(1 − x) streckt also beide Intervalle um das Doppelte ihrer ursprünglichen Länge, aber der Streckvorgang ist nicht linear. In der Umgebung der 0 werden kleine Intervalle sehr stark gestreckt, die in der Nähe von 12 werden dagegen zusammengedrückt. Kurz: 4x(1 − x) auf [0; 1] angewandt ergibt folgendes: • Jede Hälfte des Intervalls wird auf doppelte Länge gestreckt. • Für die Endpunkte gilt:

0 → 0,

1 2

→ 1,

1 → 0.

Das Resultat kann als Ergebnis einer Streck- und Faltoperation interpretiert werden. Die Iteration xn+1 = 4xn (1 − xn ) ist also verwandt mit der linearen Streck- und Faltoperation. Für das Verständnis des chaotischen Verhaltens des quadratischen Iterators untersuchen wir das Verhalten der Zeltfunktion und zeigen, dass beide Funktionen sich identisch verhalten. Außerdem ermitteln wir eine Formel, mit der wir jede Iterierte der Zeltfunktion T k (x0 ) auf direktem Weg berechnen können. Die Ersetzungseigenschaft liefert bereits die Beziehung T k (x0 ) = T Sk−1 (x0 ), d. h. es fehlt noch eine explizite Berechnung der (k − 1)-ten Iterierten S k−1 (x0 ) der Sägezahnfunktion.

321

14 Chaos 14.3.8 Die Sägezahnfunktion anders notiert

Wir führen eine neue Schreibweise für die Sägezahnfunktion ein, die Frac-Funktion. Sie berechnet den nicht-ganzzahligen Anteil einer Zahl x. Frac(x) = x − k

für

k ≤ x < k+1

und

k ∈ Z.

Beispiel 14.1. Frac(0, 4) = 0, 4 Frac(5, 123) = 0, 123 Frac(18) = 0 Der Zusammenhang zwischen S(x) und Frac(x) ist gegeben durch: S(x) = Frac(2x) Beweis: Wenn 0 ≤ x
0, 5. 8 Beispiel 14.2. Gegeben sei x0 = 25 , ein periodischer Punkt mit Periodenlänge ≤ 10. Gesucht ist x10 für k = 10. µ ¶ µ ¶ µ ¶ 21 1 21 21 4096 9 9 8 ≥ y = S (x0 ) = Frac 2 · = Frac = Frac 163 + = y= 25 25 25 25 25 2 8 42 ⇒ x10 = T (y) = −2y + 2 = − + 2 = 25 25

⇒ x10 = x0

323

14 Chaos Zusammenfassend: • Die Sägezahnfunktion ist das mathematische Modell für die Streck-, Schneide- und Klebeoperation. ( 2x für x < 0, 5, S(x) = 2x − 1 für x ≥ 0, 5. • Das Konzept des nicht-ganzzahligen Anteils einer Zahl Frac(x) = x − k

k ≤ x < k + 1, k ∈ Z,

für

ermöglicht es uns, die vereinfachte Form S(x) = Frac(2x)

für

0≤x 0, 5. • Über die Ersetzungseigenschaft wird der Zusammenhang zwischen den beiden Knetprozessen hergestellt: T k (x) = T Sk−1 (x). • Die direkte Berechnung aller Iterierten der Zeltfunktion T erfolgt, indem man y = Sk−1 (x0 ) = Frac(2k−1 x0 ) setzt und folgendes berechnet: xk = T k (x0 ) = T (y) =

(

2y −2y + 2

für y ≤ 0, 5, für y > 0, 5.

14.4 Analyse von Chaos 14.4.1 Chaos für die Sägezahnfunktion Binäre Darstellung der Sägezahnfunktion

Für weitere Untersuchungen der Sägezahnfunktion benötigen wir als Hilfsmittel eine binäre Darstellung der Sägezahnfunktion S(x) = Frac(2x),

324

0 ≤ x ≤ 1.

14.4 Analyse von Chaos Jede reelle Zahl x zwischen 0 und 1 soll nun im Binärcode geschrieben werden. x hat die Form x = 0, a1 a2 a3 . . . , wobei ak binäre Ziffern sind, d. h. ak beträgt entweder 0 oder 1. Folglich wird x dargestellt als x = a1 2−1 + a2 2−2 + a3 2−3 + . . . . So kann z. B.

1 2

als 0, 100 oder

1 3

als 0, 01 geschrieben werden.

Die folgende Eigenschaft der Darstellung von binären Zahlen wird uns im Weiteren von Nutzen sein: Satz 14.4. Seien x, y ∈ [0; 1] mit binären Entwicklungen x = 0, a1 a2 a3 . . . y = 0, b1 b2 b3 . . . , dann gilt: |x − y| ≤ 2−k , sofern x und y in den ersten k binären Ziffern übereinstimmen, d. h. ai = b i

für

i = 1, . . . , k.

Beweis: |x − y| = |0, a1 a2 a3 . . . − 0, b1 b2 b3 . . .| ≤ |0, a1 . . . ak 1 − 0, b1 . . . bk 0| = |0, 0| .{z . . 0} 1|

= 2

k−mal −k

¤ Der Shiftoperator

Die Frage ist nun, was der Anwendung der Sägezahnfunktion beim Rechnen mit binären Zahlen entspricht. Mit 2 zu multiplizieren bedeutet, von 0, a 1 a2 a3 . . . zu a1 , a2 a3 a4 . . . überzugehen: x = 0, a1 a2 a3 . . .



S(x) = 0.a2 a3 a4 . . . .

Da dies ein mechanischer Vorgang ist, der binäre Zahlen verschiebt, wird er Shiftoperator genannt.

325

14 Chaos Beispiel 14.3. x=

1 = b 0, 001 7



S(x) = 0, 010 = b

2 7

Nun gibt es allerdings noch ein Problem bei der Anwendung des Shiftoperators, das mit der Doppeldeutigkeit von binären Zahlen zusammenhängt. So kann beispielsweise die Zahl 12 binär als 0, 1 oder als 0, 01 dargestellt werden. Durch Anwendung des Shiftoperators können nun verschiedene Ergebnisse entstehen. Um das Problem zu umgehen, wird daher keine Binärdarstellung zugelassen, bei der sich die Ziffer 1 periodisch wiederholt (außer es existiert keine andere Binärdarstellung). Für die Zahl 21 ist 0, 1 also die einzig gültige Darstellung. Sensitivität der Sägezahnfunktion

Wir wollen nun mit Hilfe der Beziehung x = 0, a1 a2 a3 . . .



S(x) = 0, a2 a3 a4 . . . .

die Sensitivität der Sägezahnfunktion nachweisen. Beweis: Wir wählen einen Startwert x0 = 0, a1 a2 a3 . . . , den wir aber nur bis auf N Ziffern genau darstellen, z. B. N = 100. Der exakte Wert nach 100 Iterationsschritten unterscheidet sich von dem Wert, den wir erhalten, um einen Fehler von höchstens 2−100 . Diese Differenz ist so klein, dass sie vernachlässigt werden kann. Für die noch unbekannten Ziffern ab a 101 lassen wir den Zufall entscheiden, ob eine 0 oder eine 1 gewählt werden soll (z. B. durch Münzwurf). Wir beginnen nun, auf unseren bis zur 100. Nachkommastelle bekannten Startwert den Shiftoperator anzuwenden. Nach 100 Iterationsschritten erhalten wir nur noch Ergebnisse, die durch Zufall entstanden sind. Dies ist zurückzuführen auf die sensitive Abhängigkeit von den Anfangsbedingungen. ¤ In der Metapher der Gewürzverteilung im Teig bilden die Gewürzteilchen so lange einen Klumpen, wie die Koordinaten bzw. Nachkommastellen gleich sind. Das Gewürz ist vollständig verteilt, wenn alle gemeinsamen Koordinaten verloren gegangen sind. Periodische Punkte der Sägezahnfunktion

Periodische Punkte haben die Eigenschaft, dass man nach k Iterationen wieder denselben Punkt erhält. Wenn man einen Punkt mit periodischer Binärentwicklung betrachtet, z. B. x0 = 0, a1 a2 a3 . . . ak , bedeutet dies für die Iteration des Shiftoperators, dass man nach k Iterationen wieder x 0 erhält. Folglich ist x0 ein periodischer Punkt.

326

14.4 Analyse von Chaos Was allerdings noch wichtiger ist: Man kann beliebig nahe bei jedem Startwert x 0 einen Punkt w0 finden, der Periodizität aufweist. Die Konstruktion eines solchen Punktes ist einfach. Man wählt einen Startwert x 0 und bestimmt einen periodischen Punkt w0 , der in den ersten k Ziffern übereinstimmt, z. B.: x0 = 0, a1 a2 a3 . . . w0 = 0, a1 a2 a3 . . . ak Die Differenz der zwei Punkte beträgt daher höchstens 2 −k , was bedeutet, dass die beiden Punkte nahe beieinander liegen. Man sagt daher auch: Periodische Punkte liegen dicht. Aus diesem Grund kann man auch jede irrationale Zahl durch periodische Punkte approximieren, und zwar um so genauer, je länger die Periode der irrationalen Zahl entspricht. Die Mischungseigenschaft für die Sägezahnfunktion

Die letzte noch fehlende Eigenschaft von Chaos ist die Mischungseigenschaft. Es ist nicht schwer, diese für des Shiftoperator nachzuweisen.

Abbildung 14.18: Die Mischungseigenschaft bei der Sägezahnfunktion Beweis: Wir wählen hierfür zwei Intervalle I und J und suchen eine Zahl n > 0, so dass gilt: |I| ≥

1 . 2n−1

Es sei nun 0, a1 a2 a3 . . . die Binärdarstellung des Mittelpunktes von I und y = 0, b 1 b2 b3 . . . die Binärentwicklung eines Punktes y aus J. Wir konstruieren in folgenden einen Punkt x 0 in I, der nach genau n Iterationen des Shiftoperators auf y trifft. Auf diese Weise erreicht man auch das Zielintervall J, wodurch die Mischungseigenschaft bestätigt wird. Wir definieren x 0 , indem wir die ersten n Ziffern des Mittelpunktes

327

14 Chaos von I und dahinter alle Ziffern des Zielpunktes y anhängen: x0 = 0.a1 . . . an b1 b2 b3 . . . Kontrolle bestätigt, dass sich x0 vom Mittelpunkt von I um höchstens 2 −n (der Hälfte der minimalen Intervalllänge) unterscheidet, womit x 0 selbst im Intervall I liegt. Es gilt nun nach n Iterationen: x0 = 0.b1 b2 b3 . . . = y Damit haben wir die Mischungseigenschaft bewiesen.

¤

14.4.2 Chaos für die Zeltfunktion

Die drei Eigenschaften von Chaos haben wir im vorherigen Abschnitt für die Sägezahnfunktion S nachgewiesen. Dasselbe wollen wir nun auch für die Zeltfunktion T erreichen. Wir nehmen hierbei die Ersetzungseigenschaft zur Hilfe, die besagt, dass die Iteration von T über die Iteration von S erhalten werden kann. Die k-te Iterierte von T ergibt sich also, indem man (k − 1) mal die Shiftabbildung S anwendet und danach noch einmal die Operation T . Sensitive Abhängigkeit, dichte periodische Punkte und die Mischungseigenschaft können somit auf T übertragen werden. Periodische Punkte der Zeltfunktion

Wir wollen nun versuchen, periodische Punkte der Zeltfunktion zu finden, d. h. wir suchen zu einer gegebenen Zahl n einen Punkt x 0 , so dass mit xi = T (xi−1 ) für i = 1, . . . , n die Gleichheit xn = x0 erfüllt ist. Wir behaupten nun, dass wir solch einen Punkt erhalten, indem wir uns einen periodischen Punkt w0 der Sägezahnfunktion wählen, dessen Periodenlänge n ist. Nun müssen wir ihn einmal mit der Zeltfunktion abbilden und erhalten x 0 = T (w0 ) als periodischen Punkt von T . Beweis:

xn = T n (x0 ) = T n (T (w0 )) = T n+1 (w0 ) = T (Sn (w0 )) = T (w0 ) = x0

¤

Wenn w0 also ein periodischer Punkt für die Shiftabbildung S ist, dann ist x 0 = T (w0 ) ein periodischer Punkt für die Operation T . Außerdem hat dessen Bahn die gleiche Periodenlänge. Die Dichte der periodischen Punkte wird in Kapitel 14.4.2 nachgewiesen. Binärdarstellung der Zeltfunktion

Die Zeltfunktion ist bekanntlich definiert als ( T (x) =

2x −2x + 2

für x ≤ 21 , für x > 21 .

Die binäre Darstellung von x ∈ [0; 1] sei x = 0, a1 a2 a3 . . . .

328

14.4 Analyse von Chaos Falls nun x < 12 ist, sind Sägezahn- und Zeltfunktion gleich definiert. Wir können also auch anstatt der Zeltfunktion den Shiftoperator anwenden: T (x) = 0, a2 a3 a4 . . . Im anderen Fall, also für umformen zu

1 2

für

1 x< . 2

≤ x ≤ 1, ist S(x) = 2x − 1 und T (x) = −2x + 2. Man kann nun T

T (x) = −2x + 2 = 1 − (2x − 1) = 1 − S(x) = 1 − 0, a 2 a3 a4 . . . Wir benötigen für die folgenden Schritte die Einführung der dualen binären Ziffer a ∗ : ( 1 wenn a = 0, a∗ = 0 wenn a = 1. Wir können jetzt T (x) für den Fall x ≤

1 2

darstellen als

T (x) = 0, a∗2 a∗3 a∗4 . . . Dies gilt, da T (x) = 1 − S(x)

⇔ T (x) + S(x) = 1

⇔ T (x) = 0, a∗2 a∗3 a∗4 . . . + 0, a2 a3 a4 . . . = 0, 111 . . . = 0.1 = 1.

Die vollständige Darstellung der Zeltfunktion ist daher ( 0, a2 a3 a4 . . . T (0, a1 a2 a3 . . .) = 0, a∗2 a∗3 a∗4 . . .

wenn a1 = 0, wenn a1 = 1.

Dabei ist folgendes zu beachten: a1 = 0

⇐⇒

a1 = 1

⇐⇒

1 2 1 x> . 2 x≤

Die Dichte periodischer Punkte

Wir haben bereits gezeigt, dass die Existenz eines periodischen Punktes w der Sägezahnfunktion die Existenz eines periodischen Punktes der Zeltfunktion mit sich führt. Nun soll noch bewiesen werden, dass diese periodischen Punkte von T dicht liegen. Dazu zeigen wir, dass man periodische Ziffern finden kann, die mir einer beliebigen Ziffernfolge a1 . . . an beginnen. Hierfür konstruieren wir den Punkt w = 0, 0a1 . . . an ,

329

14 Chaos der ein periodischer Punkt der Sägezahnfunktion mit Periode n + 1 ist. Da hier die erste Ziffer nach dem Komma 0 ist, gilt w ≤ 12 . Daher stimmt T mit dem Shiftoperator überein und es gilt: x = T (w) = 0, a1 . . . an 0. Zudem ist x ein periodischer Punkt von T , dessen Periodenlänge ebenfalls n + 1 beträgt. Dies soll nun an einem Beispiel verdeutlicht werden. £ 27 28 ¤ Beispiel 14.4. Wir betrachten das Intervall I = 32 , 32 . I besteht aus allen binären Zahlen, deren Ziffernfolge mit 0, 11011 anfängt. Wir suchen nun einen periodischen Punkt in I. Dazu wählen wir einen beliebigen Punkt in I, z. B. den Mittelpunkt des Intervalls, 55 64 = 0, 110111. Nun wählen wir x = T (0, 0110111) = 0, 1101110 =

110 ∈ I. 127

Der Punkt x ist also periodisch. Die Periodenlänge beträgt 7. Sensitive Abhängigkeit für die Zeltfunktion

Wir wählen als Startwert x0 = 0, a1 a2 a3 . . . aus dem Einheitsintervall, um die sensitive Abhängigkeit nachzuweisen. Nun suchen wir für ein festes n > 0 einen Punkt z0 nahe bei x0 , so dass gilt: |z0 − x0 | ≤ 2−n . Die Bahnen sollen sich dann zum Zeitpunkt n der Iteration um den Schwellenwert ε = 21 unterscheiden. Dazu wählen wir einen Punkt z0 , bei dem die ersten Nachkommastellen identisch mit denen von x0 sind: z0 = 0, a1 . . . an a∗n+1 an+2 an+3 . . . Die Ziffer an der Stelle n + 1 wird umgekehrt, d. h. 0 wird zu 1 und 1 zu 0. Wir tun dies, um den Fehler kleiner als 2−n zu halten. Wegen Regel (2) aus Kapitel 14.4.1 erhalten wir |z0 − x0 | ≤ 2−n . Wir behaupten nun, dass 1 |zn − xn | = . 2

330

14.4 Analyse von Chaos Beweis: 1. Fall: an = 0. Es gilt:

xn

zn

=

T n (x0 ) = T (Sn−1 (x0 )) = T (0, an an+1 an+2 . . .)

=

T (0, 0an+1 an+2 an+3 . . .) = 0, an+1 an+2 an+3 . . .

=

T n (z0 ) = T (Sn−1 (z0 )) = T (0, an a∗n+1 an+2 . . .)

=

T (0, 0a∗n+1 an+2 an+3 . . .) = 0, a∗n+1 an+2 an+3 . . .

⇒ |zn − xn | =

1 2

2. Fall: an = 1. Es gilt:

xn

=

T (0, 1an+1 an+2 an+3 . . .) = 0, a∗n+1 a∗n+2 a∗n+3 . . .

zn

=

T (0, 1a∗n+1 an+2 an+3 . . .) = 0, an+1 a∗n+2 a∗n+3 . . .

⇒ |zn − xn | =

1 2

Somit haben wie die sensitive Abhängigkeit von den Anfangsbedingungen nachgewiesen, denn obwohl die beiden Startwerte sich nur infinitesimal unterscheiden, beträgt der Fehler der Diffe¤ renz nach n Iterationsschritten die Größe 21 . Die Mischungseigenschaft der Zeltfunktion

Nun fehlt uns noch die letzte der drei Eigenschaften für Chaos, das Mischen. Um diese nachzuweisen, wählen wir kleine Intervalle I, J ∈ [0; 1]. Man hat immer die Möglichkeit, die Zahl n so zu wählen, dass alle Zahlen der Form 0, a 1 . . . an . . . in I und alle Zahlen der Form 0, b1 . . . bn . . . in J liegen. Wir geben nun einen Punkt x 0 an, dessen n-te Iterierte in J liegt. Dabei betrachten wir wieder zwei Fälle. Beweis: 1. Fall: an = 0.

• Wähle

x0 = 0, a1 . . . an b1 . . . bn .

• Überprüfe, ob xn ∈ J: xn = T n (x0 ) = T (Sn−1 (x0 )) = T (0, an b1 . . . bn ) = T (0, 0b1 . . . bn ) = 0, b1 . . . bn ∈ J

2. Fall: an = 1.

• Wähle

x0 = 0, a1 . . . an b∗1 . . . bn *.

331

14 Chaos • Überprüfe, ob xn ∈ J: xn = T n (x0 ) = T (Sn−1 (x0 )) = T (0, an b∗1 . . . b∗n ) = T (0, 1b1 + . . . b∗n ) = 0, b1 . . . bn ∈ J Da man also von einem beliebigen Punkt aus I nach mehreren Iterationsschritten immer nach J gelangen kann, haben wir die Mischungseigenschaft nachgewiesen. ¤ Somit gelten die zeichnenden Eigenschaften von Chaos auch für die Zeltfunktion. 14.4.3 Chaos für den quadratischen Iterator

Was wir in den vorigen Abschnitten für die Sägezahn- und die Zeltfunktion bewiesen haben, soll nun in diesem Abschnitt auch für den quadratischen Iterator gezeigt werden. Dafür nutzen wir die Äquivalenz zwischen dem quadratischen Iterator und der Iteration der Zeltfunktion T . Äquivalenz durch nichtlinearen Koordinatenwechsel

Die Äquivalenz zwischen den Iterationen der Zeltfunktion und der quadratischen Funktion wird durch einen nichtlinearen Koordinatenwechsel hergestellt, der durch x0 = h(x) = sin2 (

πx ) 2

gegeben ist.

Abbildung 14.19: sin2 ( π2x ) Wichtig ist dabei, dass h das Einheitsintervall injektiv auf sich selbst abbildet, was bedeutet, dass für alle x0 ∈ [0; 1] genau ein x ∈ [0; 1] existiert, so dass x 0 = h(x) ist. Wir wählen nun einen Anfangswert x0 und betrachten die unter der Zeltfunktion iterierten Werte x0 , x1 , x2 , . . .: x1 = T (x0 ), x2 = T 2 (x0 ), . . . , xk = T k (x0 ), . . .

332

14.4 Analyse von Chaos Der zur Parabel gehörende transformierte Anfangswert ist x 00 = h(x0 ). Wir bezeichnen nun x00 als y0 und iterieren mit diesem Startwert unter der Funktion f (x) = 4x(1 − x), d. h. wir erhalten y1 = f (y0 ),

y2 = f 2 (y0 ),

yk = f k (y0 ),

...,

....

Wir behaupten nun, dass diese Bahn exakt dieselbe ist wie die Bahn mit Startwert x 0 unter der Zeltfunktion. In diesem Fall gilt dann zusätzlich: y1 = h(x1 ),

y2 = h(x2 ),

...,

yk = h(xk ),

....

Die Äquivalenz zwischen quadratischem Iterator und der Zeltfunktion kann also durch folgende Funktionalgleichung ausgerückt werden: f k (h(x)) = h(T k (x)),

k = 1, 2, . . . ∀ x ∈ [0; 1].

Setzen wir allerdings Beispielwerte ein, werden wir nach mehreren Iterationsschritten feststellen, dass die Gleichung in der Praxis nicht stimmt. Dies hängt wieder mit der sensitiven Abhängigkeit von den Anfangsbedingungen zusammen und mit dem Problem, dass der Computer manche Zahlen nicht exakt darstellen kann. Die von uns aufgestellte Behauptung soll nun noch mathematisch bewiesen werden. Wir benötigen dazu die folgenden trigonometrischen Gleichungen: sin2 α + cos2 α sin 2α

= 1,

(14.1)

= 2 sin α cos α

(14.2)

sin (α + β ) = sin (α )

(14.3)

sin (−α ) = sin (α ).

(14.4)

2

2

2

2

Es sei x0 der Startwert für die Zeltfunktion und y 0 = x00 der Startwert für die Parabel. Entsprechend bezeichnen x0 , x1 , . . . die Iterierten unter der Zeltfunktion und y 0 , y1 , . . . die Iterierten unter der Parabel. Es gilt: y1 = 4y0 (1 − y0 ) Setze y0 = sin2 ( π2x0 ):

π x0 π x0 )(1 − sin2 ( )). 2 2 Durch Anwendung von (14.1) erhalten wir: y1 = 4 sin2 (

y1 = 4 sin2 (

π x0 π x0 ) cos2 ( ). 2 2

Vereinfachung mit (14.2): y1 = 4 sin2 (π x0 ). Wir zeigen nun, dass die erste Iterierte x 1 unter der Zeltfunktion nach Anwendung der Koordinatentransformation gleich y1 ist, d. h. x01 = y1 = h(x1 ).

333

14 Chaos Beweis: 1. Fall: 0 ≤ x0 ≤ 21 .

• Hier ist x1 = T (x0 ) = 2x0 und es gilt: x01 = sin2 (

π x1 ) = sin2 (x0 π ) = y1 2

2. Fall: 12 < x0 ≤ 1.

• Hier erhalten wir x1 = T (x0 ) = 2 − 2x0 und damit x01 = sin2 (

π x1 ) = sin2 (π − x0 π ). 2

• Unter Verwendung von (14.3) und (14.4) erhält man nun: x01 = sin2 (−x0 π ) = sin2 (x0 π ) = y1 Wir haben also gezeigt, dass x01 = y1 ist. Der Schluss x0k = yk für alle k folgt durch Induktion. Daher ist x0k = h(T k (x0 )) und yk = f k (h(x0 )) und wir haben die Funktionalgleichung bewiesen. ¤ Da wir nun die Äquivalenz nachgewiesen haben, kann man sagen, dass alle Eigenschaften von Chaos auch bei der Iteration von f (x) = 4x(1 − x) gefunden werden können, d. h.: • Periodische Punkte der Zeltfunktion entsprechen den periodischen Punkten der Parabel. • Punkte, die sich bei der Iteration unter der Zeltfunktion mischend verhalten, entsprechen Punkten, die das gleiche Verhalten für die Parabel aufweisen. • Punkte, die sensitives Verhalten für die Zeltfunktion aufweisen, entsprechen Punkten, die sich bei Iteration des quadratischen Iterators sensitiv verhalten. Dichte periodische Punkte und Mischungseigenschaft des quadratischen Iterators

Dass der quadratische Iterator dichte periodische Punkte sowie die Mischungseigenschaft besitzt, ist trotz der Äquivalenzen des quadratischen Iterators zur Zeltfunktion nicht selbstverständlich und muss noch nachgewiesen werden. Dies ist allerdings nicht schwer, da wir die Äquivalenz zwischen T und f zur Hilfe nehmen können. Voraussetzungen für die Beweise: • T ist die Zeltfunktion. • f (x) = 4x(1 − x) ist die quadratische Funktion.

• h(x) = sin2 ( π2x ) ist die Koordinatentransformation.

334

14.4 Analyse von Chaos • Es gilt f k (h(x)) = h(T k (x)) für k = 1, 2, . . ., x ∈ [0; 1]. • Periodische Punkte von T liegen in [0; 1] dicht. • T ist mischend. Lemma 14.5. Periodische Punkte von f liegen in [0; 1] dicht. Beweis: Sei y ∈ [0; 1]. Zu zeigen: Es existiert eine Folge periodischer Punkte für f , deren Grenzwert y ist. Dazu nehmen wir das Urbild x von y unter h, d. h. h(x) = y. Dies ist möglich, weil jeder Punkt genau ein Urbild unter h hat. Da die periodischen Punkte von T in [0; 1] dicht liegen, können wir eine Folge von Punkten x1 , x2 , . . . mit dem Grenzwert x finden, so dass jedes x k periodisch ist mit der Periode pk . Daher ist T pk (xk ) = xk

für

k = 1, 2, . . . .

Wir behaupten, dass die Folge y1 , y2 , . . . mit yk = h(xk ) aus periodischen Punkten besteht und den Grenzwert y hat. Die Behauptung folgt aus der Funktionalgleichung f k h = hT k . Es gilt: f pk (yk ) = f pk (h(xk )) = h(T pk (xk )) = h(xk ) = yk . ¤ Lemma 14.6. Die Funktion f ist mischend. Beweis: Seien U und V zwei offene Intervalle in [0; 1]. Wir müssen einen Punkt y ∈ U und eine natürliche Zahl k finden, so dass f k (y) ∈ V mischend ist. Wir nehmen die Urbilder A = h−1 (U) = {x ∈ [0; 1] | h(x) ∈ U} und B = h−1 (V ). A und B sind offen, weil h stetig ist. Es gibt daher eine natürliche Zahl k und ein x ∈ A, so dass T k (x) ∈ B ist. Wir setzen y = h(x). Nun wenden wir die Funktionalgleichung an und erhalten f k (y) = f k (h(x)) = h(T k (x)). Weil T k (x) ∈ B ist, können wir auf h(T k (x)) ∈ h(B) = V schließen. Somit ist f mischend.

¤

335

14 Chaos

Sensitivität des quadratisch Iterators

Anders als in Kapitel 14.4.3 kann die Sensitivität das quadratischen Iterators nicht allein durch die Sensitivität von T zusammen mit der Äquivalenz von f und T nachgewiesen werden. Dies liegt an der Tatsache, dass sich die Sensitivität eines dynamischen Systems nicht durch Koordinatentransformation auf ein anderes System übertragen lässt. Um für den quadratischen Iterator Sensitivität nachzuweisen, wollen wir ein Theorem anwenden, dass erst vor einigen Jahren von fünf australischen Mathematikern entwickelt wurde. Es besagt, dass die sensitive Abhängigkeit von den Anfangsbedingungen aus der Existenz von periodischen Punkten und der Mischungseigenschaft gefolgert werden kann. Der Beweis dieses Theorems wird im nächsten Kapitel angeführt. Da wir die ersten beiden Eigenschaften für den quadratischen Iterator schon nachgewiesen haben, besitzt er also auch die Eigenschaft der Sensitivität. Somit sind alle drei Eigenschaften von Chaos nun auch für den quadratischen Iterator nachgewiesen.

14.5 Sensitivität folgt aus Mischungseigenschaft und dichten, periodischen Punkten 14.5.1 Wie vererbt sich Chaos?

Wenn f eine chaotische Abbildung ist und g mit f in Beziehung steht, kann man dann davon ausgehen, dass auch g chaotisch ist? In diesem Zusammenhang ist auch folgende Überlegung naheliegend: Folgt eine der drei Eigenschaften • Sensitivität • Mischen • dichte periodische Punkte bereits aus den beiden anderen? Dazu müssen wir betrachten, was es heißt, wenn zwei Abbildungen zueinander in Beziehung stehen. Dazu führen wir die topologische Konjugation und die topologische Semikonjugation ein. Definition 14.2 (topologische Konjugation). Seien X und Y zwei Teilmengen der reellen Zahlen, und seien f : X → X und g : Y → Y Abbildungen. Dann heißen f und g topologisch konjugiert, wenn beide stetig sind und ein Homöomorphismus h : X → Y existiert, so dass die Funktionalgleichung h( f (x)) = g(h(x)) für alle x ∈ X erfüllt ist.

336

14.5 Sensitivität folgt aus Mischungseigenschaft und dichten, periodischen Punkten Definition 14.3 (Stetigkeit). Die Abbildung f : X → Y heißt stetig, wenn für jedes x ∈ X und jede Folge x1 , x2 , . . . in X mit Grenzwert x die Folge der Bildpunkte f (x 1 ), f (x2 ), . . . den Grenzwert f (x) hat. Definition 14.4 (Homöomorphismus). Eine Abbildung h : X → Y ist ein Homöomorphismus, wenn h stetig, injektiv und surjektiv ist, und die Umkehrabbildung h −1 ebenfalls stetig ist. Die topologische Konjugiertheit ist eine Äquivalenzrelation, was bedeutet, dass die folgenden Eigenschaften erfüllt sind: 1. f ist topologisch konjugiert zu f . 2. Wenn f topologisch konjugiert zu g ist, dann ist g topologisch konjugiert zu f . 3. Wenn f topologisch konjugiert zu g und g topologisch konjugiert zu h ist, dann ist f topologisch konjugiert zu h. Beweis: 1. Wähle die Identität als Homöomorphismus. 2. Wähle h−1 als Homöomorphismus und aus h f = gh folgt h −1 g = f h−1 . 3. Sei h1 ein Homöomorphismus mit der Eigenschaft h 1 f = gh1 und h2 ein Homöomorphismus mit h2 g = hh2 . Dann genügt h2 h1 der Funktionalgleichung h2 h1 f = hh2 h1 . ¤ Wenn jetzt also f und g topologisch konjugiert sind, heißt das: • g ist mischend, wenn f die Mischungseigenschaft hat, und umgekehrt. • g hat dichte, periodische Punkte, wenn f periodische Punkte besitzt, die dicht liegen, und umgekehrt. Der Grund hierfür ist: Die Mischungseigenschaft und die Existenz dichter periodischer Punkte sind topologische Eigenschaften. Die sensitive Anhängigkeit von den Anfangsbedingungen überträgt sich im allgemeinen nicht bei topologischer Konjugiertheit. Wenn wir jetzt die topologische Konjugiertheit auf die Zelt- und Sägezahnfunktionen übertragen wollen, haben wir das Problem, dass S nicht stetig ist. Deshalb müssen wir die topologische Konjugation modifizieren. Definition 14.5 (topologische Semikonjugation). Seien X und Y zwei Teilmengen der reellen Zahlen und f : X → X und g : Y → Y Abbildungen. Dann heißt g genau dann topologisch semikonjugiert zu f , wenn eine stetige, surjektive Abbildung h : X → Y existiert, mit der die Funktionalgleichung h( f (x)) = g(h(x)) für alle x ∈ X erfüllt ist.

337

14 Chaos Diesmal handelt es sich nicht um eine Äquivalenzrelation, d. h. wenn g semikonjugiert zu f ist, kann es trotzdem sein, dass f nicht semikonjugiert zu g ist. Außerdem müssen f und g bei Semikonjugiertheit nicht stetig sein, womit unser Hauptproblem gelöst ist. Für T und S gilt also, dass T semikonjugiert zu S ist, d. h.: 1. Die Funktionalgleichung h f = gh impliziert h f n = gn h für jede natürliche Zahl n, da aus h f = gh die Gleichung gh f = g2 h folgt. Mit gh = h f erhält man dann h f 2 = g2 h. Den allgemeinen Fall kann man mit vollständiger Induktion nachweisen. 2. Wir erhalten folgendes Ergebnis: Satz 14.7. Es sei g semikonjugiert zu f über eine stetige und surjektive Funktion h. Außerdem sei f mischend und habe dicht liegende, periodische Punkte. Dann ist auch g mischend und hat dicht liegende, periodische Punkte. Daran erkennen wir also, dass dichte, periodische Punkte und die Mischungseigenschaft vererbt werden. 14.5.2 Sind die Eigenschaften von Chaos unabhängig?

Satz 14.8. Sei X eine beliebige Teilmenge der reellen Zahlen und f : X → X eine stetige Funktion, die dichte, periodische Punkte besitzt und die Mischungseigenschaft hat. Dann zeigt f auch sensitive Abhängigkeit von den Anfangsbedingungen. Daraus folgt nun mit Satz 14.7: Wenn f chaotisch und g topologisch semikonjugiert zu f ist, dann ist mit f auch g chaotisch. Wir beweisen nun Satz 14.8. Beweis: Zu zeigen: Es gibt ein δ > 0, so dass für jedes x ∈ X und jede offene Teilmenge J ⊂ X, die x enthält, ein Punkt z in J und eine natürliche Zahl n existieren, so dass | f n (x) − f n (z)| > δ . 1. Teil: Wir wählen ein δ0 > 0, so dass für jedes x ∈ X ein periodischer Punkt zu finden ist, der ¯ k ¯ ¯ f (p) − x¯ ≥ δ0 2

für alle k = 0, 1, 2, . . . erfüllt. Wir wählen zwei beliebige periodische Punkte r und s mit disjunkten Bahnen, d.h. f k (v) 6= f l (s) für alle k, l. δ0 sei der Abstand zwischen diesen beiden Bahnen. ¯ ¯ δ0 = min ¯ f k (p) − f l (s)¯

k, l ∈ 0, 1, 2, . . ..

Jetzt sei x ∈ X, dann zeigen wir, dass x mindestens einen Abstand von Bahnen hat.

338

δ0 2

zu einer der beiden

14.5 Sensitivität folgt aus Mischungseigenschaft und dichten, periodischen Punkten Beweis per Widerspruch: Annahme: Der Abstand von x zu den Bahnen r und s sei kleiner als δ20 , d. h. für geeignete Zahlen k, l gilt: ¯ ¯ ¯x − f k (r)¯ ≤ δ0 2

und

¯ ¯ ¯x − f l (s)¯ ≤ δ0 2

Mit der Dreiecksungleichung erhält man: ¯ k ¯ ¯ ¯ ¯ f (r) − f l (s)¯ = ¯ f k (r) − x + x − f l (s)¯ ¯ ¯ ¯ ¯ ≤ ¯ f k (r) − x¯ + ¯x − f l (s)¯
0 beschränken: |ε k | ≤ ε ,

∀ k = 0, 1, 2, . . . .

341

14 Chaos

Abbildung 14.20: Differenz zwischen berechneter und exakter Bahn

Abbildung 14.21: Berechnete Bahn als Approximation einer anderen, exakten Bahn Dies hat zur Folge, dass sich die zu z 0 gehörige exakte Bahn nie mehr als ε von der Bahn, die von y0 erzeugt wird, unterscheidet. In der k-ten Iteration erhalten wir: |zk − yk | ≤ ε . Beweis des Beschattungslemmas

Bei der Herleitung des Beschattungslemmas beginnen wir mit einem Anfangswert x 0 und berechnen eine Folge von n Punkten mit dem Shiftoperator unter Einbeziehung kleiner Fehler. y0 = x 0 + ε 0 y1 = Frac(2y0 + ε1 ) .. . yn = Frac(2yn−1 + εn )

342

14.6 Chaos am Computer Die Fehler εk sind durch ε > 0 beschränkt, also |εk | ≤ ε

k = 0, 1, 2, . . .

Die Punkte yk können nun mit Hilfe von x0 und den Fehlern ausgedrückt werden: y0 = x 0 + ε 0 y1 = Frac(2(x0 + ε0 ) + ε1 ) = Frac(2x0 + 2ε0 + ε1 ) y2 = Frac(2(2x0 + 2ε0 + ε1 ) + ε2 ) = Frac(4x0 + 4ε0 + 2ε1 + ε2 ) Im k-ten Schritt erhalten wir: yk = Frac(2k x0 + 2k ε0 + 2k−1 ε1 + · · · + 2εk−1 + εk ) k

= Frac(2k x0 + ∑ 2k−i εi ). i=0

In der letzten Iteration k = n erhält man das Resultat n

yn = Frac(2n x0 + ∑ 2n−i εi ). i=0

Nun soll der Anfangswert z0 der exakten Bahn bestimmt werden, deren Schatten wir als y 0 , . . . , yn berechnet haben. Dazu definieren wir z 0 als den Punkt, der durch Multiplikation mit 2 n genau das Argument der Frac-Funktion ergibt. Also n

z0 = Frac(x0 + ∑ 2−i εi ) = Frac(x0 + ε0 + i=0

ε1 ε2 εn + + ···+ n ) 2 4 2

Durch diese Wahl haben wir sichergestellt, dass z n = yn ist. Der Fehler zwischen der exakten und der errechneten Bahn beträgt in der letzten Iteration Null. Wir geben nun eine explizite Formel für die exakte k-te Iterierte z k an, um die Abweichungen zwischen den beiden Bahnen in weiteren Iterationen analysieren zu können: zk = Frac(2k z0 ) Ã

n

= Frac 2k (x0 + ∑ 2−i εi ) Ã

i=0

n

= Frac 2k x0 + ∑ 2k−i εi i=0

!

!

Wir betrachten nun die Differenz ∆k in den Argumenten der Frac-Funktion von y k und zk etwas genauer: n

k

i=0

i=0

∆k = (2k x0 + ∑ 2k−i εi ) − (2k x0 + ∑ 2k−i εi ) =

n



2k−i εi

i=k+1

343

14 Chaos Wir suchen nun eine obere Schranke für den Ausdruck und ersetzen dafür die Fehler ε i durch ε : n

|∆k | ≤



i=k+1

2k−i |εi | ≤

n

1 1 1 2k−i ε = ε ( + + · · · + n−k ) < ε 2 4 2 i=k+1



Bei diesem Schritt müssen wir allerdings aufpassen, denn man kann hieraus nicht schließen, dass |zk − yk | ≤ ε für alle k = 0, . . . , n gilt, obwohl dies meist zutrifft. Der Grund hierfür ist die Unstetigkeit der Frac-Funktion an ganzzahligen Punkten. Um dieses Problem zu lösen, müssen wir eine direkte Veränderung ausführen, die zu einem Beweis der Behauptung für alle Zahlen k = 0, 1, 2, . . . führt. Man muss nur den Grenzübergang für n → ∞ in der Gleichung von z0 vollziehen und erhält dann ¯ ¯ ¯ ∞ ¯ ∞ ∞ ¯ ¯ |∆k | = ¯ ∑ 2k−i εi ¯ ≤ ∑ 2k−i |εi | ≤ ε ∑ 2k−i = ε . ¯ i=k+1 ¯i=k+1 i=k+1 Der Rest verläuft wie zuvor.

Die Differenz von exakten Bahnen und solchen, bei denen in jedem Schritt ein kleiner Fehler toleriert wird, wächst rapide an, so dass Beziehungen zwischen den Bahnen sehr schnell verloren gehen. Trotzdem finden wir im Schatten jeder berechneten Bahn eine exakte Bahn, die zu jedem Zeitpunkt der Iteration in der Nähe bleibt. Die bestätigt, dass statistische Eigenschaften chaotischer Systeme, die durch Experimente auf dem Computer gemessen werden, tatsächlich Aussagekraft haben. Es sollte aber nicht zu der Annahme verleiten, der Sensitivität chaotischer Systeme entkommen zu können. Die Konsequenzen des Beschattungslemmas können äußerst drastisch formuliert werden: Wenn die Beschattungseigenschaft gegeben ist, können auch scheinbar willkürlich angelegte Prognosen von einem deterministisch angelegten Modell unterstützt werden.

14.7 Implementierung 14.7.1 Parabel function p a r a b e l ( x , a , maxstep ) % PARABEL( X , A , MAXSTEP) draws a p a r a b o l a f u n c t i o n . % bisecting line wihaY = x ; wihaX = x ; wihaX ( 1 ) = 0 ; wihaY ( 1 ) = 0 ; wihaX ( m a x s t e p ) = 1 ; wihaY ( m a x s t e p ) = 1 ; % y−v a l u e s o f t h e p a r a b o l a

344

14.7 Implementierung f o r k = 1 : maxstep −1 y ( k +1) = x ( k ) ; end % r o t a t e v e c t o r f i e l d of the parabola temp = x ; x = y; y = temp ; % d e f i n e f i r s t parabola p o i n t x (1) = x (2); y (1) = y (2); % p l o t normal p a r a b o l a f p l o t ( s t r c a t ( s p r i n t f ( ’%f ’ , a ) , ’ ∗n∗(1−n ) ’ ) , [ 0 1 ] ) ; hold on ; % plot iterations plot (x , y , ’∗ ’ ) ; % plot bisecting line p l o t ( wihaX , wihaY , ’ .− ’ , ’ m a r k e r s i z e ’ , 1 2 , ’ l i n e w i d t h ’ , 2 ) ;

14.7.2 Quadratischer Iterator (inkl. Iteration von Intervallen) function x = q u a d _ i t ( x , a , maxstep ) ; % % % % % %

QUAD_IT ( X , A , MAXSTEP) c o m p u t e s and p l o t s t h e q u a d r a t i c i t e r a t o r g i v e n by t h e e q u a t i o n f ( x ) = ax (1− x ) . x is the vector of s t ar t ing points ; a i s t h e p a r a m e t e r u s e d above ; m a x s t e p t h e number o f i t e r a t i o n s .

% compute t h e p a r a b o l a for l = 1: size (x ,2 ) f o r k = 1 : maxstep −1 x ( k +1 , l )= a ∗x ( k , l )∗(1 −x ( k , l ) ) ; end end hold o f f ; for l = 1: size (x ,2 ) % plot the i t e r a t i o n p l o t x = z e r o s ( 1 , 2 ∗ maxstep − 2 ) ; p l o t y = z e r o s ( 1 , 2 ∗ maxstep − 2 ) ; p l o t x ( 1 : 2 : 2 ∗ maxstep −3) = x ( 1 : maxstep −1 , l ) ; p l o t x ( 2 : 2 : 2 ∗ maxstep −2) = x ( 1 : maxstep −1 , l ) ; p l o t y ( 1 : 2 : 2 ∗ maxstep −3) = x ( 1 : maxstep −1 , l ) ; p l o t y ( 2 : 2 : 2 ∗ maxstep −2) = x ( 2 : maxstep , l ) ; p l o t ( p l o t x , p l o t y , ’ r−’ , ’ l i n e w i d t h ’ , 2 ) ;

345

14 Chaos

hold on ; end p a r a b e l ( x ( : , 1 ) , a , maxstep ) ; p a r a b e l ( x ( : , s i z e ( x , 2 ) ) , a , maxstep ) ;

14.7.3 Zeitreihe des quadratischen Iterators function q u a d _ i t _ z e i t ( x , a , maxstep ) ; % QUAD_IT_ZEIT ( X , MAXSTEP) draws t h e t i m e s e r i e s % o f a s i n g l e p o i n t x i t e r a t e d by t h e q u a d r a t i c i t e r a t o r % x −> ax (1− x ) . f o r k = 1 : maxstep −1 x ( k +1) = a ∗x ( k )∗(1 −x ( k ) ) ; end p l o t ( 1 : maxstep , x , ’ .− ’ ) ;

14.7.4 Sägezahnfunktion function saege ( x , maxstep ) % SAEGE ( X , MAXSTEP) draws t h e s a w t o o t h f u n c t i o n . % bisecting line wihaY = x ; wihaX = x ; wihaX ( 1 ) = 0 ; wihaY ( 1 ) = 0 ; wihaX ( m a x s t e p ) = 1 ; wihaY ( m a x s t e p ) = 1 ; % y−v a l u e s o f t h e s a w t o o t h f u n c t i o n f o r k = 1 : maxstep −1 y ( k +1) = x ( k ) ; end % rotate vector f i e l d of the function temp = x ; x = y; y = temp ; % define f i r s t function point x (1) = x (2); y (1) = y (2); % plot sawtooth function f p l o t ( ’ (2∗n ) . ∗ ( n =0.5) ’ , [ 0 . 5 1 ] ) ; plot (x , y , ’∗ ’ ) ; % plot bisecting line p l o t ( wihaX , wihaY , ’ .− ’ , ’ m a r k e r s i z e ’ , 1 2 , ’ l i n e w i d t h ’ , 2 ) ; xlim ( [ 0 1 ] ) ;

14.7.5 Differenz von zwei Zeitreihen function q u a d _ d i f f ( a , maxstep ) % % % % % %

QUAD_DIFF( A , MAXSTEP) c o m p u t e s t h e d i f f e r e n c e b e t w e e n two q u a d r a t i c i t e r a t o r s s t a r t i n g w i t h two s l i g h t l y d i f f e r e n t starting points . a i s a parameter ; m a x s t e p t h e number o f i t e r a t i o n s .

% the s t ar ti ng points x1 = ( s i n ( p i / 7 ) ) ^ 2 ; x2 = x1 + 1e −6; % compute t h e two i t e r a t i o n s y1 = q u a d _ i t ( x1 , a , m a x s t e p ) ; y2 = q u a d _ i t ( x2 , a , m a x s t e p ) ; % draw t h e d i f f e r e n c e s subplot (3 ,1 ,1); p l o t ( 1 : maxstep , y1 , ’ .− ’ , ’ l i n e w i d t h ’ , 2 ) ; subplot (3 ,1 ,2); p l o t ( 1 : maxstep , y2 , ’ .− ’ , ’ l i n e w i d t h ’ , 2 ) ; subplot (3 ,1 ,3); p l o t ( 1 : maxstep , abs ( y1−y2 ) , ’ .− ’ , ’ l i n e w i d t h ’ , 2 ) ;

347

15 Der Lorenz-Attraktor und andere Attraktoren von Irmgard Rucker und Matthias Nagl

15.1 Was ist ein Attraktor? Der wichtigste Begriff bei der Beschreibung nichtlinearer, dissipativer Systeme, d. h. Systeme mit einer besonderen Art von Reibung, ist der des Attraktors. Wesentliches Merkmal solcher dissipativer Systeme ist der Verlust von Energie, was man beispielsweise bei einem in der Luft schwingendem Pendel beobachten kann.

Abbildung 15.1: Beispiel für einen Attraktor Attraktoren treten an die Stelle der Orbits, die keinen Sinn mehr machen, wenn kleinste Einflüsse das Systemverhalten grundsätzlich verändern, oder wenn sich das System aus den unterschiedlichsten Anfangszuständen immer (wieder) in denselben Endzustand hin entwickelt. Attraktoren sind Gebilde im Phasenraum. Der Phasenraum beschreibt Zustandsfunktionen, so kann eine Ordinate der Ort, eine andere die Geschwindigkeit oder der Impuls sein. Die Bahnen

349

15 Der Lorenz-Attraktor und andere Attraktoren eben dieser Zustände, die beispielsweise durch Ort und Impuls gekennzeichnet sind, werden als Trajektorien bezeichnet. Trajektorien streben zu für sie typischen „Anziehungsgebieten“, den Attraktoren (von lat. adtrahere = anziehen). Man unterscheidet zwischen drei verschiedenen Typen von Attraktoren und den seltsamen Attraktoren. Typ Anziehungs-/Fixpunkt Grenzzyklus: Widerstehen der Veränderung durch Rückkopplung Torus: gekoppelte Bewegung von zwei Oszillatoren seltsamer Attraktor: CHAOS

Beispiel Pendel mit Reibung, ruhiges Wasser Pendel ohne Reibung, Raubtier-Beute-System Planetenbewegung Turbulenz (Wasser), Wetter

Tabelle 15.1: mögliche Arten von Attraktoren Man kann sich dies auch folgendermaßen vorstellen: Die laminare Strömung von Wasser bei kleinen Geschwindigkeiten fließt glatt dahin und gleicht Strömungen schnell aus. Der Attraktor ist der Punkt der konstanten Wassergeschwindigkeit. Beim rascheren Fließen treten stabile Wirbel auf, es geschieht ein Umschlagen zu Grenzzyklen und bei weiterem Geschwindigkeitsanstieg wird der Attraktor ein Torus. Man könnte nun bei noch größerer Fließgeschwindigkeit erwarten, Tori höherer Dimension zu erreichen, doch das ist falsch. In der Realität passiert etwas anderes: Der Torus „zerspringt“, es entsteht ein seltsamer Attraktor. 15.1.1 Seltsame oder chaotische Attraktoren

Eigenschaften: • Es sind Attraktoren, d. h. es existiert jeweils ein beschränktes Gebiet im Phasenraum, dass alle nahegelegenen Trajektorien anzieht; die Trajektorien kommen im Lauf der Zeit allen Punkten des Attraktors beliebig nahe. Es existiert also ein Gefangenenbereich. • Sie sind chaotisch, d. h. es besteht eine sensitive Abhängigkeit von den Anfangswerten; für mindestens einen Lyapunov-Exponenten gilt: λ > 0. Chaotisch bedeutet also, dass eng benachbarte Bahnen mit der Zeit exponentiell divergieren. • Sie haben eine fraktale Struktur. Wenn man eine Linie auf dem Attraktor stark vergrößert, erkennt man, dass diese Linie eigentlich aus mehreren Linien besteht und jede dieser eng beieinander liegenden Linien wieder aus mehreren Linien besteht.

350

15.2 Dynamische Systeme Fraktale Phänomene sind das Resultat der Zurückfaltung. Die einzelnen Trajektorien können im Endlichen nicht beliebig weit auseinander laufen, das System muss immer wieder auf den Zustandsraum zurückgefaltet werden. Versuch einer Definition: Da sich das mathematische Verständnis seltsamer Attraktoren noch in den Anfängen befindet, ist es bis heute auch noch nicht möglich, von einer endgültigen Definition seltsamer Attraktoren sprechen zu können; die Wissenschaft wird sich wohl erst in den nächsten Jahren auf eine Festlegung einigen. Attraktoren treten meistens in Räumen mit höherer Dimension als zwei auf, trotzdem kann man sich der Einfachheit halber auf den zweidimensionalen Fall beschränken (eine Anwendung sieht man beim Henon-Attraktor). Definition 15.1 (Attraktor). Eine Transformation T (x, y) in eine ebene, beschränkte Menge A ist ein Attraktor der Transformation, wenn eine Menge R mit den folgenden Eigenschaften existiert: • R ist Umgebung von A, d. h. für jeden Punkt (x, y) ∈ A existiert eine kleine Kreisscheibe mit Mittelpunkt (x, y), die ganz in R enthalten ist. • R ist ein Gefangenenbereich.

Das bedeutet, jede Bahn, die in R anfängt, bleibt für alle Iterationen in R; die Bahn nähert sich der Menge A und bleibt nahe bei A.

• Bahnen, die in R anfangen, hängen sensitiv von den Anfangsbedingungen ab. • Man erkennt eine fraktale Struktur. • A kann nicht in zwei Attraktoren aufgespalten werden.

15.2 Dynamische Systeme Bei dynamischen Systemen kann man grob gesagt zwei Arten unterscheiden: • Kontinuierliche dynamische Systeme, • Diskrete dynamische Systeme. Man unterscheidet also anhand der zugrundeliegenden Zeitrechnung. Dargestellt werden solche Systeme als (kontinuierliche) Differentialgleichungssysteme bzw. als Rückkopplungssysteme; es handelt sich um Iterationsfolgen wie den quadratischen Iterator, Kopiermaschinen usw.. Die Anfangswerte der Differentialgleichungen entsprechen dabei den Startwerten. Die Bahnen oder auch Trajektorien genannten „Verläufe“ eines Startwertes unter dem gesamten Zeitverlauf (d. h. für t ∈ [0, ∞] bzw. x 0 , . . . , x∞ ) sind im ersten Fall stetige Kurven und im zweiten einfach nur Punkte.

351

15 Der Lorenz-Attraktor und andere Attraktoren Des weiteren interessieren wir uns nur noch für die Endzustände solcher Systeme, die für spezielle Systeme den oben genannten Attraktoren entsprechen. Betrachtet man Attraktoren nun als solche Endzustände, so ergeben sich einige Eigenschaften: • Man kann zwischen drei Arten unterscheiden: Fixpunkte, periodische Grenzzyklen und stetige, injektive, nicht geschlossene Kurven. Dies ergibt sich daraus, da die Abbildungen immer injektiv sind und daher die Kurven, sobald sie sich einmal selbst schneiden, periodisch werden. So folgt daraus, dass zwei unterschiedliche Bahnen damit entweder disjunkt oder genau gleich sind. • Dies führt dann gleich dazu, dass in weniger als drei Dimensionen stetige Systeme eher langweilig sind: Die Kurven zu zwei Startwerten kommen ja nicht aneinander vorbei. Die zu seltsamen Attraktoren gehörenden kontinuierlichen Systeme sind deshalb so schwer greifbar, weil die zugehörigen partiellen Differentialgleichungen eigentlich nie explizit lösbar sind, und man deshalb auf Näherungsverfahren angewiesen ist. Welche Näherungsverfahren gibt es überhaupt? 15.2.1 Numerische Lösungsverfahren

Analytische Möglichkeiten bei der Untersuchung nichtlinearer, dynamischer Systeme sind beschränkt, man ist angewiesen auf eine numerische Lösung des Gleichungssystems. Eine nichtlineare Differentialgleichung erster Ordnung hat folgende Form: ~x0 (t) = ~f (~x(t)). Das einfachste und allgemeinste Verfahren zur Lösung ist die Methode von Euler: • Man bestimmt die Taylor-Entwicklung der Trajektorie: ~x(t + h) = ~x(t) +~x0 (t)h + O(h2 ) = ~x(t) + ~f (~x(t))h + O(h2 ) • Aus den Anfangswerten ~x(0) kann nun mit einer ausreichend klein gewählten Schrittweite h durch Iteration die gesamte Trajektorie berechnet werden: ~x(h) = ~x(0) + h~f (~x(0)) ~x(2h) = ~x(h) + h~f (~x(h)) .. . ~x(t) = ~x(t − h) + h~f (~x(t − h))

352

15.2 Dynamische Systeme Da man beim Euler-Verfahren sehr kleine Schrittweiten h wählen sollte, ergibt sich das Problem der langen Rechenzeit. Eine Lösungsmöglichkeit hierbei wäre, eine verbesserte Euler-Methode zu schaffen, indem man mit der Taylor-Entwicklung einen Schritt weiter geht: 1 ~x(t + h) = ~x(t) +~x0 (t)h + ~x00 (t)h2 + O(h3 ) 2 1 = ~x(t) + ~f (~x(t))h + ~f 0 (~x(t))h2 + O(h3 ) 2 Die Ableitung wird durch den Mittelwert der beiden Funktionswerte bei t und t + h angenähert. Das hat zur Folge, dass sich der Fehler um eine ganze Ordnung von h verkleinert. Ein weiteres Standardverfahren zur Lösung solcher Differentialgleichungen ist die Runge-KuttaMethode, die auf einer Taylor-Entwicklung bis zur vierten Ordnung basiert: ~ 1 = ~f (~x(t)) K ~ 1) ~ 2 = ~f (~x(t) + h · K K 2 ~ 3 = ~f (~x(t) + h · K ~ 2) K 2 ~ 4 = ~f (~x(t) + h · K ~ 3) K h~ ~ 2 + 2K ~ 3 + ~K4 ] ~x(t + h) = ~x(t) + [K 1 + 2K 6 Es stellt sich nun die Frage, wie die Implementierung in Matlab aussieht. Matlab unterscheidet zwischen 

  und          (Lösern):

• Unter steifen Problemen werden Probleme verstanden, die sich entweder durch explizite Verfahren nur schwer lösen lassen, da sehr kleine Schrittweiten benötigt werden, oder bei denen sich die Lösung in kleinen Zeitintervallen sehr stark ändert, jedoch die Lösung für ein großes Intervall gesucht ist. • Diese Schwierigkeiten findet man bei nichtsteifen Problemen nicht; sie können effizient durch explizite Verfahren gelöst werden. Die zugehörigen Implementierungsbefehle in Matlab sind beispielsweise:          • Für nichtsteife Löser:

   , das gebräuchlichste Verfahren, benutzt eine Näherung vierter und eine Näherung

fünfter Ordnung, wobei eine der Näherungen zur Lösung und die andere zur Fehlerkontrolle verwendet wird. • Für steife Löser:

   

 



Der Quelltext in Matlab kann also folgendermaßen aussehen: [ t , y ] = ode45 (@m− f i l e ( z . B . L o r e n z ) , [ 0 3 0 ] , [ 5 5 5 ] ) ;

353

15 Der Lorenz-Attraktor und andere Attraktoren

15.3 Der Rössler-Attraktor Dieser Attraktor wurde 1976 von Otto E. Rössler entdeckt.

Abbildung 15.2: Otto E. Rössler Der Rössler-Attraktor ist der einfachste bekannte Attraktor, der durch folgende Bewegungsgleichungen festgelegt wird: X 0 = −(Y + Z) Y 0 = X + aY

Z 0 = b + Z(X − c) Im weiteren setzen wir

a = 0, 2,

b = 0, 2,

c = 5, 7.

Rösslers Gleichungen sind aus dem Versuch entstanden, auf möglichst einfache Art Chaos zu erzeugen. Einfach deshalb, weil nur einer der Terme, nämlich XZ, nichtlinear ist. Die Parameterwerte sind prinzipiell frei wählbar, aber nicht immer ergibt sich ein seltsamer Attraktor. Die einzelnen Funktionen gegen die Zeit aufgetragen sehen schon sehr nach den Bahnen unter dem quadratischen Iterator für entsprechende Parameterwerte aus. Richtig interessant wird es aber, wenn man den eigentlichen Attraktor betrachtet – also den Teil des Bildraums, der von den meisten Bahnen früher oder später dicht ausgefüllt wird. Man kann feststellen, dass Bahnen in der Umgebung tatsächlich vom Attraktor angezogen werden. Man kann, wenn man ein ganzes Band unter der Rössler-Abbildung betrachtet, deutlich die Streck- und Faltwirkung des Systems erkennen, was zu der für viele Fraktale so typischen unendlich dichten Blätterteigstruktur führt. Diese Blätterteigstruktur entspricht in ihrem Aufbau sehr dem Prinzip der Cantormenge, d. h. sie liegt dicht im Raum, hat allerdings im dreidimensionalen Raum trotzdem das Maß 0, ist

354

15.3 Der Rössler-Attraktor

Abbildung 15.3: Eine Darstellung des Rössler-Attraktors

demnach eine Nullmenge. Dies ist typisch für bestimmte Fraktale, daher rührt auch die nicht ganzzahlige Dimension. Beim Rössler-Attraktor ist die Ausdehnung in die dritte Dimension nur sehr schwach, da zwar unendlich viele Bahnen vorhanden sind, diese aber so nahe beieinander liegen, dass sie anschaulich nahezu nur in einer Ebene existieren. Dies erklärt, dass die Dimension mit ungefähr 2, 01 − 2, 02 sehr nahe an der eines ebenen Objektes liegt. Betrachtet man vom Rössler-Attraktor nur den Teil, der sich auf der negativen x-Achse (und sehr dicht daran) abspielt (Reduktion auf eine Dimension), erhält man eine Folge von Punkten {x n }. Trägt man diese Punkte jeweils gegen ihren Vorgänger (also x n gegen xn−1 ) auf und vernachlässigt dabei, dass die Punkte meist nicht wirklich auf der Achse, sondern nur dicht daneben liegen, so erhält man eine Kurve, die stark an die Parabel des quadratischen Iterators erinnert. Solche Vereinfachungen nennt man Lorenz-Abbildungen. Eine bessere Möglichkeit, den Attraktor zu vereinfachen, bietet der sogenannte Poincaré-Schnitt (siehe Abbildung 15.6), der den Schnitt des Attraktors mit einer Ebene transversal zur Flussrichtung darstellt. Auch so hat man die Bahnen im großen und ganzen auf Punkte reduziert und kann wegen der Injektivität z. B. von periodischen Punkten auf periodische Bahnen schließen! Durch solche Vereinfachungen sind auch eher kompliziertere Attraktoren einer Analyse bis zu einem gewissen Grad zugänglich. Anzumerken ist noch, dass man, wenn man den Parameter c erhöht, periodische Bahnen erhält, deren Periode sich immer wieder verdoppelt, bis schließlich Chaos eintritt. (Hier z. B. gibt die Periode an, wie oft sie eine der Achsen schneiden bzw. nahe kommen.) Das bedeutet, es lassen sich Feigenbaumdiagramme finden.

355

15 Der Lorenz-Attraktor und andere Attraktoren

Abbildung 15.4: Eine weitere Darstellung des Rössler-Attraktors

15.4 Der Lorenz-Attraktor 1964 entdeckte Lorenz bei der Untersuchung eines einfachen, hydrodynamischen Wettermodells das deterministische Chaos. Er ging dabei von Konvektionsgleichungen aus, die unter anderem aus der Voraussetzung der Inkompressibilität aus den Navier-Stokes-Gleichungen (Impuls), der Kontinuitätsgleichung (Masse) und der Wärme-Diffusionsgleichung (Energie) folgen. Bei seinen Berechnungen wiederholte Lorenz eine Rechnung und machte bei der Eingabe der Parameter einen kleinen Fehler. Zu seiner Verblüffung führte diese kleine Abweichung zu einer völlig anderen Trajektorie. Dies war das erste Mal, dass eine sensible Abhängigkeit von Anfangswerten bei einem dynamischen System erkannt wurde. 15.4.1 Was beschreibt das Lorenz-Modell?

Das Lorenz-Modell beschreibt ein Gefäß, das mit einer zähen Flüssigkeit gefüllt ist und von unten erwärmt wird. Dabei wird die Ausdehung in y-Richtung als unendlich angenommen. Unter bestimmten Umständen bilden sich Konvektionsrollen. Nach Berechnungen und Näherungen kann man aus diesem Modell die Bewegungsgleichungen des Lorenz-Attraktors ableiten. Das Lorenz-System ist gegeben durch: X 0 = −σ X + σ Y

Y 0 = −XZ + rX −Y Z 0 = XY − bZ

356

15.4 Der Lorenz-Attraktor

Abbildung 15.5: Der Rössler-Attraktor mit anderen Parameterwerten

Abbildung 15.6: Schematische Darstellung des Poincare-Schnitts

X beschreibt die Amplitude für die Rotationsbewegung der Flüssigkeit, Y steht für die Amplitude der Wärmeströmung und Z für die Amplitude der Wärmeleitung.

σ , r und b sind Konstanten, die von der Gefäßform, den Flüssigkeitseigenschaften und der Temperaturdifferenz ∆T abhängen. Ein Gefäß wird von unten erhitzt. Die Flüssigkeit am Grund erwärmt sich und dehnt sich folglich aus. Dadurch wird die Dichte der Flüssigkeit kleiner und die Flüssigkeit leichter. Unter bestimmten Umständen steigt sie nach oben, wodurch die kühlere Flüssigkeit an der Decke des Gefäßes absinkt. Je nach Wärmedifferenz ∆T zwischen Boden und Deckel geschieht der Wärmetransport über Wärmeleitung, Konvektionsrollen oder turbulente Strömungen.

357

15 Der Lorenz-Attraktor und andere Attraktoren

Abbildung 15.7: Edward Lorenz 15.4.2 Grundgleichungen des Systems

• Die Navier-Stokes-Gleichung, eine Grundlage der Hydrodynamik, beschreibt den Erhalt von Impuls und Materie: d~v ρ = −∇P − ρ gz + ∇σ dt Die Variablen bedeuten hier: – – – – –

ρ: ~v(~x): P: g: η:

Dichte der Flüssigkeit Geschwindigkeitsfeld Druck Konstante der Erdbeschleunigung dynamische Zähigkeit

• Für den Reibungstensor σ gilt:

(σ )ik = σik = η (δk vi + δi vk ).

Wo findet man in dieser Gleichung den Ursprung für die Nichtlinearität des Systems? Bei der Ableitung mit Hilfe der Kettenregel ergibt sich: d~v(~x(t)) δ~v(~x(t)) = +~v(~x(t))~∇~v(~x(t)) dt δt Die Geschwindigkeit eines Flüssigkeitstropfens ändert sich durch die zeitliche Änderung des Feldes und durch den Ortswechsel, wobei dieser selbst von der Geschwindigkeit des Tropfens abhängt. Dadurch wird der letzte Term quadratisch im Geschwindigkeitsfeld, was die gesamte Hydrodynamik nichtlinear macht und z. B. für die Unmöglichkeit langfristiger Wettervorhersagen verantwortlich ist.

358

15.4 Der Lorenz-Attraktor • Die Kontinuitätsgleichung als Konsequenz der Teilchenerhaltungszahl lautet:

δρ + ∇(ρ~v) = 0 δt

Dies besagt, dass die zeitliche Änderung der Teilchendichte in einem Volumen genau dem Teilchenstrom durch die Oberfläche des Volumens entspricht: N0 =

Z

V

ρ 0 d~x = −

Z

V

~∇(ρ~v)d~x = −

Z

O(V )

(ρ~v)d ~f ,

wobei der Gaußsche Integralsatz benutzt wurde. Die Variablen bedeuten hier: – N: Gesamtzahl der Teilchen in einem Volumen V , – O(V ): Oberfläche dieses Volumens mit dem Oberflächenelement d ~f . Mit der Navier-Stokes-Gleichung muss auch die Kontinuitätsgleichung erfüllt sein, denn beide sind über den Druck P miteinander gekoppelt. Der Druck kann als Lagrange-Multiplikator aufgefasst werden, mit dem die Kontinuitätsgleichung als Nebenbedingung der NavierStokes-Gleichung berücksichtigt wird. • Die Wärmeleitungsgleichung beschreibt die Wärmeleitung in Materie: dT (~x,t) = κ · ∇2 T (~x,t), dt

wobei die Eigenschaft des Materials durch die Wärmeleitfähigkeitskonstante κ berücksichtigt wird. Der Laplace-Operator ∇2 misst die Krümmung der Temperaturverteilung am Ort x. Ist die Temperatur am Ort x höher als in der Umgebung, so liefert der Operator einen negativen Wert. Damit sorgt er dafür, dass sich die Temperatur hier mit der Zeit verringert. Dies beschreibt die Diffusion der Temperatur. Näherungen: Man geht von einer inkompressiblen Flüssigkeit aus und nimmt also an, dass sich die Dichte der Flüssigkeit weder zeitlich noch räumlich ändert, um möglichst einfache Systemgleichungen zu erhalten. Dies ergibt die folgenden Bedingungen:

δt ρ = 0 ~∇ρ = 0 Die Kontinuitätsgleichung degeneriert demnach zum Verschwinden der Divergenz des Geschwindigkeitsfeldes: ~∇~v = 0. Die Wärmeausdehnung hingegen berücksichtigt man weiterhin im Gravitationsterm. Symmetrie: Ein wesentliches Hilfsmittel, um lösbare Gleichungen zu erhalten, ist die Symmetrie. Man nimmt an, das System bestünde aus unendlich langen Rollen; damit ist das Geschwindigkeitsfeld räumlich nur noch von der x- und der z-Koordinate abhängig. Damit erhält man nun die folgenden vier gekoppelten, nichtlinearen Differentialgleichungen:

359

15 Der Lorenz-Attraktor und andere Attraktoren • Kontinuität:

~∇~v = 0.

• Zwei Gleichungen zur Strömungsdynamik (ähnlich der Navier-Stokes-Gleichung). • Wärmedynamik:

δt T = −~v~∇T + κ~∇2 T.

Potential und Abweichung: Wirklich interessant sind nun die beiden folgenden Größen: Das Potential Ψ des Geschwindigkeitsfeldes und die Abweichung Θ vom linearen Temperaturgradienten. Da die Divergenz des Geschwindigkeitsfeldes verschwindet, wird es sinnvoll durch die Rotation eines Potentials ausgedrückt. Im weiteren Verlauf bietet es sich deshalb an, in beiden Komponenten der Navier-Stokes-Gleichung das Geschwindigkeitsfeld durch die entsprechende Ableitung des Potentials Ψ zu ersetzen. Ferner kann man durch einen Trick den a-priori unbekannten Druck P eliminieren: Der vertikale Temperaturverlauf wird durch die Abweichung Θ vom linearen Gradienten parametrisiert. So gelingt es, die Anzahl der zu lösenden Bewegungsgleichungen zu reduzieren, ohne dass Informationen verloren gehen. Durch Rechnen und Umschreiben der bekannten Gleichungen ergeben sich danach die vier Modellgleichungen in kompakter Form. 15.4.3 Das Lorenz-Modell

Für eine Näherungslösung dieser Differentialgleichungen, die unser eigentliches Ziel ist, kann man nun einen eingeschränkten Lösungsansatz für Θ und Ψ wählen. Eine Fourier-Entwicklung der beiden Felder würde zumindest die linearen Teile der Gleichung lösen. So ist es auch sinnvoll, mit diesem Ansatz die nichtlinearen Gleichungen anzugehen und so nichtlineare Gleichungen für die Fourier-Koeffizienten abzuleiten. Lorenz brach die Fourier-Entwicklung schon nach den ersten Gliedern ab und wählte folgenden Ansatz für Ψ und Θ : √ π ax πz ) sin( ) 2X(t) sin( Ψ = h h √ π ax πz 2π z Θ = 2Y (t) cos( ) sin( ) − Z(t) sin( ). h h h Dabei ist X(t) die Amplitude für eine Rollenbewegung der Flüssigkeit, Y (t) die Amplitude für eine Rollenbewegung des Temperaturfeldes und Z(t) die Amplitude für die Wärmeleitung. Mit diesem Ansatz kann man nun auf die Modellgleichungen eingehen, was Lorenz dann zu seinen bekannten Lorenz-Gleichungen brachte: X 0 = −σ X + σ Y

Y 0 = −XZ + rX −Y Z 0 = XY − bZ

360

15.4 Der Lorenz-Attraktor Als Parameter treten dabei die Prandtl-Zahl σ = ηκ , die im Wesentlichen als Ausdruck des Verhältnisses der von Strömung erzeugten Reibungswärme zur fortgeleiteten Wärme betrachtet wer4 den kann, sowie r und b mit b = 1+a 2 auf. Die Trajektorien des Lorenz-Modells bilden den Lorenz-Attraktor. Sie formen zwei Flügel, die einem unterschiedlichen Drehsinn der Rollenbewegung entsprechen. Große z-Werte stehen dabei für eine starke Wärmeleitung. Das System hät sich eine Weile in einem Zweig auf und wechselt dann nicht vorhersagbar in den anderen Zweig.

45 40

solution z

35 30 25 20 15 10

−50

5 20

0

10 0 −10 −20

50

solution y

solution x

Abbildung 15.8: Der Lorenz-Attraktor nach 30 Zeitschritten

50

solution z

40 30 20 10 0 −20 −10

40 20

0 0

10

−20 20

solution x

−40

solution y

Abbildung 15.9: Der Lorenz-Attraktor nach 200 Zeitschritten

361

45

40

15 Der Lorenz-Attraktor und andere Attraktoren 35

30

25

20

15

10

5

−15

−10 30

−5

Abbildung 15.10: Zoom in den Lorenz-Attraktor nach 200 Zeitschritten 20

0

10 5

0

15.4.4 Die Attraktor-Eigenschaft

−10

10

−20

Die Trajektorie des Lorenz-Modells kann nur numerisch bestimmt werden. Man kann jedoch leicht analytisch zeigen, dass die Bahnen sich einem Attraktor annähern. 15

−30

Die Attraktor-Eigenschaft ist folgende: Satz 15.1 (Attraktor-Eigenschaft). Ein dynamisches System hat einen Attraktor, wenn das Phasenraumvolumen mit der Zeit nach Null geht. Das Phasenraumvolumen und seine zeitliche Änderung sind im Allgemeinen: Z

v =

Z

v0 =

dX ∧ dY ∧ dZ dX 0 ∧ dY ∧ dZ + dX ∧ dY 0 ∧ dZ + dX ∧ dY ∧ dZ 0

Damit gilt im Lorenz-System: v0 =

Z

d(σ X + σ Y ) ∧ dY ∧ dZ + dX ∧ d(XZ + rX −Y ) ∧ dZ + dX ∧ dY ∧ d(XY − bZ)

= −(σ + 1 + b)v

Damit ist die zeitliche Entwicklung des Volumens gegeben durch v(t) = v(0)e−(σ +1+b)t . Die Bedingung, dass das System einen Attraktor hat, ist äquivalent zu

σ + 1 + b > 0. Das bedeutet, dass der Abstand benachbarter Trajektorien mit der Zeit exponentiell anwächst. Dadurch wachsen auch Messungenauigkeiten und Rechenfehler bei der Integration der Trajektorien exponentiell an. Somit kann es keine Langzeitprognose für das Systemverhalten geben.

362

15.5 Der Henon-Attraktor

15.5 Der Henon-Attraktor Das Henon-System ist durch folgende Gleichung festgelegt: H(x, y) = (y + 1 − ax2 , bx). Typische Parameterwerte sind:

a = 1, 4;

b = 0, 3.

Der Henon-Attraktor ist sehr nahe verwandt mit dem quadratischen Iterator (b = 0 in der oben aufgeführten Gleichung ergibt eben diesem). Auch für andere Werte für b lassen sich beispielsweise Feigenbaumdiagramme feststellen. Bei der Iteration des Henon-Attraktors kann man deutlich seine fraktale Struktur erkennen. In jeder einzelnen Linie erkennt man bei ausreichender Vergrößerung drei Linien, die wiederum selbst aus Linien bestehen.

Abbildung 15.11: Erste Nahaufname des Henon-Attraktors

Abbildung 15.12: Zweite Nahaufname des Henon-Attraktors Es stellt sich die Frage, ob der Henon-Attraktor von jeder Bahn erzeugt wird. Die Antwort ist ein klares Nein. An Abbildung 15.13, die ein Henon-Fluchtdiagramm zeigt, erkennt man, dass die meisten Bahnen divergieren. Trotzdem existiert natürlich ein Gefangenenbereich, der als Attraktionsgebiet

363

15 Der Lorenz-Attraktor und andere Attraktoren

Abbildung 15.13: Fluchtdiagramm des Henon-Attraktors bezeichnet wird. Um sehen zu können, dass diese Abbildung für |b| < 1 kontrahierend ist, betrachten wir das Verhalten des Phasenraumvolumens während der Iterieration. Für die n-te und die (n + 1)-te Iteration ergibt sich: dVn = [(xn + dx) − xn ] ∧ [(yn + dy + yn ]

dVn+1 = det(J)dVn ,

wobei J die Jacobi-Matrix ist. Eine Kontraktion liegt also vor für |det(J)| < 1. Für die Henon-Abbildung gilt für die Jacobi-Determinante: det(J) = |δk fl | = −b Also ergibt sich, dass | b |< 1 beim Iterieren zu einer Kontraktion führt. Einen guten Einblick in den Mechanismus der Abbildung erhält man, indem man die Vorschrift in drei Iterationsschritte unterteilt: • Flächenerhaltende Verzerrung: H1 (x, y) = (x, y + 1 − ax2 ). • Kontraktion: • Spiegelung:

364

H2 (x, y) = (bx, y). H3 (x, y) = (y, x).

15.5 Der Henon-Attraktor

Abbildung 15.14: Schematische Darstellung der Verzerrung, Kontraktion und Spiegelung

Durch diese Aufspaltung lässt sich sehr schön die Wirkung des Streckens und Faltens erkennen. Auch die Analogie des Teigknetens ist auf den Henon-Attraktor direkt übertragbar.

Abbildung 15.15: Schematische Darstellung des Streckens und Faltens

In Abbildung 15.16 kann man sehr schön das Anziehungsgebiet des Henon-Attraktors erkennen.

365

15 Der Lorenz-Attraktor und andere Attraktoren

Abbildung 15.16: Das Attraktionsgebiet des Henon-Attraktors

15.6 Charakterisierung seltsamer Attraktoren Man kann seltsame Attraktoren sowohl als Fraktal, also als statisches geometrisches Objekt, als auch als dynamisches System betrachten und damit ihr Langzeitverhalten untersuchen, was dann sowohl in der qualitativen wie in der quantitativen Unterscheidung zu teilweise völlig verschiedenen Ansätzen führt. 15.6.1 Geometrische Betrachtung

• Seltsame Attraktoren als geometrische Objekte sind Fraktale; zumindest ist es wahrscheinlich, dass dies für eine endgültige, spätere Definition gelten wird. • Qualitativ kann man die seltsamen von den nicht seltsamen Attraktoren unterscheiden. • Da man für Fraktale bereits das Problem der Quantifizierung des fraktalen Charakters behandelt hat, ist es naheliegend, auf die schon dort verwendeten Hilfsmittel zurückzugreifen. Der interessanteste Punkt ist die Box-Dimension und deren numerische Berechnung. Dabei ergeben sich jedoch ein paar Probleme: 1. Da man die Attraktoren nur näherungsweise bestimmt, hat man immer nur eine bestimmte Anzahl von Iterationen durchgeführt und somit auch nur eine endliche Anzahl von Punkten im Raum ausgefüllt. Wird nun die Anzahl der Boxen größer als die Anzahl der berechneten Punkte, kann man nicht mehr erwarten, einen vernünftigen Zusammenhang zu finden. 2. Fraktale und vor allem Attraktoren sind nicht immer so homogen wie die, die wir kennengelernt haben. Die Box-Dimension nimmt jedoch auf Unterschiede in der

366

15.6 Charakterisierung seltsamer Attraktoren Dichte des Attraktors an verschiedenen Stellen und somit auch auf Unterschiede der Dimension je nach Bereich keine Rücksicht. 3. Als letzten, aber wohl bedeutendsten Punkt muss man noch festhalten, dass zu einer auch nur annähernd genauen Bestimmung der Dimension mit Hilfe der BoxMethode eine gigantische Anzahl von Iterationen notwendig ist. Diese sind bei Objekten wie seltsamen Attraktoren, die oft 10 und mehr Dimensionen umfassen, in der Praxis meist wesentlich komplexer. Die heutigen Computer stoßen hier also sehr schnell an die Grenzen ihrer Belastbarkeit. • Für alle drei genannten Probleme existieren Lösungen oder zumindest Lösungsansätze: 1. Man stellt einfach eine Funktion auf, die die Anzahl der Boxen bezüglich der Anzahl der ausgeführten Iterationen angibt und erhält dadurch eine Schätzung für die Anzahl der Iterationen. 2. Das zweite Problem umgeht man, indem man den Boxen ein Maß zuordnet, welches die Anzahl der in der Box enthaltenen Punkte im Verhältnis zu den ausgeführten Iterationen angibt, die Boxen also gewichtet. Das Ergebnis nennt man die Informationsdimension. Man ersetzt also in der Box-Dimension den Term log(N(s)) durch N(s)

I(s) =

1

∑ µ (Bk )log( µ (Bk ) ).

i=1

3. Der dritte Punkt ist bis heute noch nicht endgültig gelöst. Es besteht aber die berechtigte Hoffnung, dass sich dies bald durch den Beweis der Vermutung von KaplanYork ändern wird. Diese besagt folgendes: D f = Dl = m +

1

m

∑ λm+1 k=1

λk .

Hier ist m die größte natürliche Zahl, für die die Summe der geordneten LyapunovExponenten noch größer oder gleich Null ist. Das bedeutet: Die fraktale Dimension lässt sich mithilfe der zu dem System gehörenden Lyapunov-Exponenten berechnen! Doch was ist ein Lyapunov-Exponent? 15.6.2 Dynamische Betrachtung

Die Lyapunov-Exponenten λi = eλi entsprechen dem gemittelten i-ten Eigenwert der JacobiMatrix der Lösung der Differentialgleichung. Demnach ist

λi =

δF , δx

367

15 Der Lorenz-Attraktor und andere Attraktoren wobei x(t) = F(t, x) das Differentialgleichungssystem beschreibt. Anschaulich entsprechen die Lyapunov-Exponenten also der Fehlerentwicklung in eine der Normalenrichtungen. Sie zeigen an, wie sich ein n-Spat unter der mittleren Wirkung der Abbildung entlang der Trajektorie bzgl seiner Normalenrichtung verformt. Damit ist dann auch klar, dass in einem System mit Attraktor die Summe der Exponenten n

∑ λj < 0

j=1

sein muss. Es liegt ja eine Kontraktion zugrunde. Für die Dynamik des Systemes beschreiben die Lyapunov-Exponenten die Itensität der Anziehungs- bzw. Abstoßungswirkung, die der Attraktor auf eine Bahn in die jeweilige Richtung ausübt. Da seltsamen Attraktoren ein chaotisches System zugrunde liegt, erklärt sich auch, dass mindestens einer der Exponenten positiv sein muss. Er beschreibt dann das exponentielle Fehlerwachstum, dass für chaotische Systeme so charakteristisch ist. Eine weitere nützliche Eigenschaft ist, dass sich aus dem Spektrum der Lyapunov-Exponenten ganz allgemeine Aussagen über den Attraktor eines dynamischen Systems machen lassen. Hier ist vor allem folgende Tabelle interessant: Dimension des Zustandsraums 2

3

4

symbolisches Lyapunov-Spektrum (–, –) (0,–) (–,–,–) (0,–,–) (0,0,–) (+,0,–) (–,–,–,–) (0,–,–,–) (0,0,–,–) (0,0,0,–) (+,0,–,–) (+,0,0,–) (+,+,0,–)

Attraktortyp Fixpunkt Grenzzyklus Fixpunkt Grenzzyklus Torus chaotischer Attraktor Fixpunkt Grenzzyklus 2-Torus 3-Torus chaotischer Attraktor chaotischer Attraktor chaotischer Attraktor

Tabelle 15.2: Klassifikation von Attraktoren in zeitkontinuierlichen dissipativen Systemen anhand von symbolischen Lyapunov-Spektren Der große Vorteil der Lyapunov-Exponenten im Vergleich zur Box-Dimension ist aber nicht nur, dass man mit ihrer Hilfe sehr viele Eigenschaften des Attraktors fassen kann, sondern auch, dass sie sich relativ leicht numerisch berechnen lassen. Ein einfaches Verfahren wird unter

368

15.6 Charakterisierung seltsamer Attraktoren    

  

         

   

 



 

  

   

vorgestellt.

369

16 Selbstähnlichkeit in moderner elektronischer Musik von Sebastian Hösch und Alexander Lenz

16.1 Einführung 16.1.1 Was bedeutet Selbstähnlichkeit in der Musik?

Selbstähnlichkeit in der Musik ist ein Themengebiet, das im großen Gebiet der Fraktale einen eher kleinen Platz einnimmt. Möglicherweise deshalb, weil sich Musik, die zu kompliziert erzeugt wurde, nicht mehr gut anhört und die Mathematik, die hinter dem ganzen steht, andernfalls nicht so schwierig ist. Wie dem auch sei, das hier behandelte Thema bewegt sich im mathematisch schnell durchleuchteten Gebiet, was bedeutet, dass es hierfür bisher wenig Literatur gibt und der anspruchsvollere Teil bei der Implementierung liegt. Es wird hier weder Grenzwertprozesse noch chaotische Spiele geben. Man wird nur die Möglichkeit haben, ein Eingangssignal, das man einliest, zu verändern. Bei uns wurde die Selbstähnlichkeit durch Rekursivität und „Vertauschen und Erweitern“ erzeugt. Das wird später noch genauer erläutert. Außerdem werden noch andere Möglichkeiten beschrieben, die von verschiedenen anderen Musikern oder Mathematikern entwickelt wurden. Neben der Art der Wahrnehmung gibt es noch einige weitere Unterschiede zwischen visuellen und akustischen Fraktalen. Man erkennt recht schnell, dass die Analyse von Schaubildern bzw. der Musik bei akustischen Fraktalen im allgemeinen schwerer fällt, da eine detaillierte Ansicht der Schwingungslinien, ohne dabei das Gesamtbild aus den Augen zu verlieren, durch die hohe Frequenz verhindert wird. Darüber hinaus ist es nur für sehr geübte Ohren möglich ist, ein Musikstück nur durch Hören zu analysiern. Als groben Richtwert kann man sagen, dass Musik, die übersichtliche Schaubilder besitzt, sehr langsam und langweilig klingt. Wird die Musik zu schnell, ist sie aber auch nicht mehr reizvoll. Es gilt also ein geeignetes Mittelmaß zu finden. Das impliziert schon das Fehlen von Grenzwertprozessen. Was jedoch ähnlich bleibt, ist die Art der Erzeugung, da sie ein charakteristisches Merkmal von Fraktalen ist.

371

16 Selbstähnlichkeit in moderner elektronischer Musik

Überblick

Bisher: • Visuelle Wahrnehmung, schöne Bilder. • Selbstähnlichkeit sehr anschaulich (ähnliche Struktur, vergrößert oder verkleinert, etc.). • Selbstähnlichkeit durch iterative oder chaotische Verfahren erzeugt. Jetzt: • Akustische Wahrnehmung. • Bilder eher unanschaulich und unspektakulär. • Selbstähnlichkeit wird durch iterative Verfahren erzeugt, Eingangssignal wird verändert und/oder erweitert, „viel Musik aus wenig erzeugt“.

1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

2

4

6

8

10

12 5

x 10

Abbildung 16.1: Grafische Darstellung von 

          

Beispiel 16.1. Dieses Beispiel wurde aus vier Instrumentensamples erzeugt. Es ist in Stereo,   

   . wobei die beiden Kanäle gleich sind. Die zugehörige wave-Datei ist      Es hört sich interessant an. Dieses Schaubild ist allerdings ein Beispiel dafür, dass man nichts Genaues erkennen kann. Ein Zoom würde zwar einzelne Linien sichtbar machen, aber der Rest des Schaubilds wäre nicht mehr sichtbar und die Linien würden scheinbar parallel zueinander stehen. In der Folge betrachten wir nur noch Schaubilder, die etwas erkennen lassen und sich die zugehörige Musik trotzdem noch einigermaßen interessant anhört. Sie wird allerdings wesentlich langsamer als das obige Beispiel sein.

372

16.1 Einführung 16.1.2 Wie sieht Musik in MATLAB aus?

Um die Implementierung nachvollziehen zu können, sollte man sich zuerst einmal ansehen, welche Form oder Beschreibung Töne in MATLAB haben. Physikalisch sind Töne Schwingungen. Ein Computer kann aber keine kompletten Schwingungen darstellen, da sie aus unendlich vielen Punkten zusammengesetzt werden. Die Lösung ist, sehr viele diskrete Punkte einer solchen Schwingung zu nehmen. Musik oder Töne werden in MATLAB in (meist sehr langen) Vektoren angegeben. Um eine Sekunde lang etwas zu hören, muss der Vektor bei einer Samplingfrequenz von f s = 44, 1 kHz z. B. 44100 Einträge haben. Die Anzahl der Bits gibt an, wieviele verschiedene Werte zwischen -1 und 1 für einen Samplingeintrag zur Verfügung stehen. Bei 16 Bits beispielsweise wären es 2 16 Möglichkeiten. Ist die Bitrate zu gering, kann die Schwingungen der Töne nicht nahe genug angenähert werden und für einen großen Bereich von Sinuswerten steht nur ein einziger Wert zur Verfügung. Der Sinus würde in zu groben Stufen beschrieben und hätte Treppenform. Das kann klanglichen Aspekten nicht genügen. Hier ist der Hintergrund zur Vektordarstellung noch einmal zusammengefasst: fs = Samplingfrequenz mit der Einheit f

= Tonfrequenz mit der Einheit

1 = 1 Hz. s

1 = 1 Hz. s

t = Dauer des Tons mit der Einheit 1 s. x = die Laufvariable von 1 bis t · f s , ohne Einheit. nbits = die Anzahl der Bits (meist 16). Dann ist der Vektor

2π x f ) fs die Darstellung eines t Sekunden langen Tons mit der Frequenz bzw. Höhe f . y = sin(

Der Ausdruck stalt hat:

x fs

bedeutet also, dass man eine Menge von Punkten bekommt, die folgende Ge-

2 44100 1 , , ..., = 1} ⊂ (0,1] 44100 44100 44100 Der Faktor 2π streckt diese Menge auf das Intervall (0, 2π ]. Der Sinus bringt die gewünschte Wellenform hinein. Man hat dann eine Schwingung in einer Sekunde, also f = 1 Hz. Was jetzt noch fehlt, ist unsere Tonhöhe, die durch die Schwingungen pro Sekunde charakterisiert wird. Eine Periodenlänge ist 2fπ groß, d. h. f verkleinert unsere Periodenlänge und erhöht entsprechend unsere Schwingungen pro Sekunde. Wichtig ist hierbei, dass wir trotzdem nur 44100 Punkte zur Beschreibung haben, da diese lediglich von unserer Samplingfrequenz f s abhängen. {

373

16 Selbstähnlichkeit in moderner elektronischer Musik In einer Sekunde stehen also 44100 Punkte zur Verfügung, die Informationen über die Lautstärke bzw. Amplitude und die Tonhöhe enthalten. Sie ergeben miteinander verbunden unsere Schwingungen. Bei 440 Hz hat man also 880 (+1) Nullstellen, da jede Sinusschwingung zwei Nullstellen hat. Es gibt hierzu das Samplingtheorem von Nyquist bzw. Shannon. Das Theorem wurde 1928 von Nyquist formuliert und 1949 von Shannon mathematisch bewiesen. Es besagt: Satz 16.1. Die Samplingfrequenz muss mindestens doppelt so groß wie die maximale Tonfrequenz sein, damit das Signal eindeutig rekonstruiert werden kann. fs > 2 · fmax . Grob formuliert heißt das: Wäre die Samplingfrequenz geringer als doppelt so groß wie die Tonfrequenz, stünden für eine Schwingung weniger als zwei Werte zur Beschreibung der Kurve zur Verfügung. Das würde bedeuten, dass zu viele Informationen verloren geht und die beiden Peaks nicht exakt wiedergegeben werden können. Der Ton würde deshalb anders klingen. Beispiel 16.2. Als kurzes Beispiel soll hier das tiefe A mit der Frequenz 440 Hz dienen: fs = 44.1 kHz f

= 440 Hz

t = 2s x

∈ {1, . . . ,t · f s = 88, 2}

nbits = 16

Es ergibt sich dann für y folgendes Schaubild: 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

0.001

0.002

0.003

0.004

0.005

0.006

0.007

0.008

0.009

0.01

Abbildung 16.2: Sampling des Tons A mit f = 440 Hz. Man sieht genau 4,4 Schwingungen in 0,01 Sekunden; hochgerechnet also 440 Schwingungen pro Sekunde.

374

16.1 Einführung Definition 16.1 (Musik- / Taktdatenraum). Wir unterscheiden im folgenden zwischen Taktdatenraum und Musikdatenraum. Der Vektor y für das A mit 440 Hz befindet sich im Musikdatenraum, genauso wie die Samples und die fertigen Wavedateien. Die Vektoren im Taktdatenraum beschreiben, an welcher Stelle bzw. zu welchem Zeitpunkt die Samples angeschlagen werden. Man kann sie mit dem Notentext eines Musikstückes vergleichen, der dem Musiker signalisiert, wann er welchen Ton auf welche Art spielen soll. Musikdatenvektoren sind im allgemeinen viel länger als Taktdatenvektoren. Sie hängen wie folgt zusammen: • Der Taktdatenvektor beschreibt ein komplettes Musikstück unter Zuhilfenahme der SampleMusikdatenvektoren. • Die Länge des Taktdatenvektors legt in Abhängigkeit der Gesamtanzahl an 1/4-Noten in dem Stück fest, wieviele Einträge des Taktdatenvektors für eine 1/4-Note zur Verfügung stehen. • Je größer der Taktdatenvektor ist, desto feiner ist das Stück beschrieben. • Ein von Null verschiedener Eintrag des Taktdatenvektors gibt an, dass das Sample an dieser Stelle des Taktes angeschlagen wird. Das Sample wird in voller Länge abgespielt, was bedeutet, dass zwei kurz nacheinander angeschlagene Samples sich überlagern und zwei in größerem Zeitabstand angeschlagene Samples eine Pause zwischen sich haben. • Die Lautstärke des Sampleanschlags hängt vom Betrag des Eintrags ab. Ein Taktdatenvektor hat Einträge zwischen -1 und 1. Je größer der Betrag des Eintrags ist, desto lauter wird das Sample abgespielt. Beispiel 16.3. Man könnte einen 4/4-Takt mit einem acht Spalten großen Taktdatenvektor beschreiben. Für 1/4-tel Note stünden also zwei Einträge zur Verfügung und ein Eintrag entspräche demnach einer 1/8-tel Note: [1 0 0, 5 0 0 0, 8 0 0]. Übertragen in Notenschrift sind mehrere Interpretationen möglich, da der Taktdatenvektor keine Aussage über die Länge der Töne und der Pausen macht.

Abbildung 16.3: Erste Interpretationsmöglichkeit

375

16 Selbstähnlichkeit in moderner elektronischer Musik

Abbildung 16.4: Zweite Interpretationsmöglichkeit Mathematisch ausgedrückt gilt für die Länge l m eines Musikdatenvektors bei n Vierteln, der Samplingfrequenz f s und einer bestimmten Anzahl Beats pro Minute (bpm): lm =

n · 60 · fs bpm

n·60 bpm

ist dabei die Dauer des Stücks. Für den Taktdatenvektor der Länge l t wird jetzt ein Musikdatenvektor der Länge lm = e · lt so erzeugt, dass im Musikdatenvektor e=

lm lt

Einträge für jeden Eintrag im Taktdatenvektor stehen. Hat der Taktdatenvektor T an der Stelle k einen Eintrag, so wird ein gegebenes Sample, dessen Vektor S die Länge l s hat, auf den Musikdatenvektor M addiert, wobei der erste Samplevektoreintrag S 1 auf die Stelle r = (k − 1) · e + 1 des Musikdatenvektors addiert wird. k läuft dabei von 1 bis lt . Hat T also an der Stelle k einen Eintrag mit dem Wert a, dann ist (k)

(k−1)

Mr+i = Mr+i

+ a · Si+1 ,

i = 0, . . . , (ls − 1).

Die Verknüpfung von Musik- und Tatktdatenraum übernimmt die    -Funktion, deren Funktionsweise im Kapitel „Implementierung“ anhand des Codes genauer erläutert wird. Wird allerdings der Taktdatenvektor zu groß, stößt man auf einige Probleme: 1. Das zeitliche Auflösungsvermögen des Menschen ist begrenzt und die einzelnen Einträge nehmen im Takt eine immer kürzere Zeit in Anspruch, d. h. unsere erzeugte Musik wird viel zu schnell und hört sich nicht mehr gut an. 2. Es ist technisch nicht sinnvoll, zu große Taktdatenvektoren zu haben, da wir für unsere Musik auch mit Vektoren arbeiten. Die Länge der Vektoren in unserem Musikdatenraum berechnet sich als das Produkt der Taktdauer und der Samplingfrequenz. Bei einer Taktdauer von beispielsweise t = 16s haben die Musikdatenvektoren 16 · 44100 Einträge. Wäre unser Taktdatenvektor größer, hätten wir nicht einmal einen vollen Eintrag unseres Musikdatenvektors zur Verfügung, um einen Eintrag des Taktdatenvektors zu beschreiben.

376

16.2 Arten der Erzeugung 3. Der zweite rein technische Grund ist, dass die Samples sich ungeschickt überlagern und eventuell sogar aufheben können. Das letztere ist zwar eher unwahrscheinlich, doch eine Veränderung des Tons tritt häufig auf. Die Folge aus diesen Schwierigkeiten ist, dass Grenzwertprozesse nicht durchführbar sind. Hier noch zwei für dieses Thema grundlegende Befehle in MATLAB: Das Kommando [ Name , f s , n b i t s ] = wavread ( ’ P f a d ’ ) ;

speichert eine Wave-Datei aus dem angegebenen Pfad als Vektor unter dem angegebenen Namen ab. Die Samplingfrequenz ist hierbei   ,   steht für die Bitanzahl. wavwrite ( y , f s , n b i t s , ’ P f a d ’ ) ;

schreibt den Vektor y mit der angegebenen Samplingfrequenz und Bitanzahl in den angegebenen Pfad. Dabei befindet sich y im Musikdatenraum.

16.2 Arten der Erzeugung 16.2.1 Selbstähnlichkeit durch Rekursivität Was steckt dahinter?

Um Selbstähnlichkeit zu erzeugen, gibt es verschiedene Möglichkeiten. Wir versuchen es zuerst durch Rekursivität. Wir gehen davon aus, dass wir ein Eingangssignal E haben. Gegeben sei weiter ein Rhythmus x, der durch einen Vektor im Taktdatenraum beschrieben wird, also beispielsweise x = [1 0 0 0 1 1 0 0]. Von 0 verschiedene Einträge bedeuten jeweils, dass E mit der Lautstärke angeschlagen wird, die dem Betrag des Eintrags entspricht. Würde x hier also einen 4/4-Takt beschreiben, so hätten wir Anschläge von E bei 1, 3 und 3+ mit jeweils maximaler Lautstärke. x soll jetzt verändert werden. Dabei gehen wir wie folgt vor: Wir wollen ein Ausgangssignal y, welches Selbstähnlichkeit zu x aufweist, erhalten. y wird zuerst nicht-rekursiv aus x erzeugt: y j = a1 x j + a2 x j−1 + ... + an x j−n+1 ,

mit

a ∈ R1×n .

Beispiel 16.4 (Echo). Als Sample dient hier ein selbst aufgenommenes „Hallo“. Wir verwenden folgende Werte: E = ’Hallo’ x = [1 0 0 0 1 1 0 0] a1 = 1;

a2 = 0, 7;

a3 = 0, 4;

a4 = 0, 1.

377

16 Selbstähnlichkeit in moderner elektronischer Musik y hat also die folgenden Einträge: y1 = y5 = 1;

y2 = y6 = 0, 7;

y3 = y7 = 0, 4;

y4 = y8 = 0, 1.

y = [1 0, 7 0, 4 0, 1 1 0, 7 0, 4 0, 1]. Die folgenden Schaubilder zeigen die Werte von y und die Struktur des Echos: 1

0.5

0.9

0.4

0.8

0.3

0.7 0.2 0.6 0.1 0.5 0 0.4 −0.1 0.3 −0.2

0.2

−0.3

0.1 0

1

2

3

4

5

6

7

8

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.5: nicht-rekursiv: y-Vektor und der dazugehörige Wave-Vektor Man sieht den Zusammenhang zwischen Takt- und Musikdatenvektor sehr genau. Ein wenig komplexer

Bisher hatten wir das Schema nicht-rekursiv gehalten. Wir können aber auch eine rekursive Definition wählen, indem man die Einträge von y, die bereits beschrieben wurden, noch mitberücksichtigt. Für eine rein rekursive Formel ergibt sich dann: y j = a1 x j − b2 y j−1 − b3 y j−2 − . . . − bk y j−k+1

mit

b ∈ R1×k .

x j wird weiterhin benötigt, um überhaupt ein Signal in y einzubringen. Wenn wir nicht-rekursiv mit rekursiv kombinieren, erhalten wir: y j = a1 x j + . . . + an x j−n+1 − b2 y j−1 − . . . − bk y j−k+1 . Wir benötigen neben unserem Taktdatenvektor also noch zwei weitere Vektoren, die uns die Koeffizienten a1 bis an und b1 bis bk angeben. Dabei kommt b1 in unserer Formel gar nicht vor bzw. ist bei uns immer auf 1 normiert.



Seien unsere beiden Koeffizientenvektoren nun mit A und B gegeben. Der Befehl      A, B, X  baut einen Vektor mit den einzelnen Einträgen auf: b1 y j = a1 x j + . . . + an x j−n+1 − b2 y j−1 − . . . − bk y j−k+1 .

378

16.2 Arten der Erzeugung Beispiel 16.5 (rekursiv). Seien = [1 0 0 0 0 0 0 0]

X

A = [1] B = [1 − 0, 6]. Es ergibt sich also für y nach der Eingabe in MATLAB: y = f i l t e r ( A, B , X) = [ 1 0 . 6 0 . 3 6 0 . 2 1 6 0 . 1 2 9 6 0 . 0 7 7 8 0 . 0 4 6 7 0 . 0 2 8 ] ;

und mathematisch: y j = x j + 0, 6y j−1 . Die zugehörigen Schaubilder sind: 1

0.5

0.9

0.4

0.8

0.3

0.7 0.2 0.6 0.1 0.5 0 0.4 −0.1 0.3 −0.2

0.2

−0.3

0.1 0

1

2

3

4

5

6

7

8

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.6: rekursiv: Y -Vektor und der dazugehörige Wave-Vektor Dies ist das Beispiel schlechthin für Selbstähnlichkeit in Echo. Beispiel 16.6 (Kombination aus nicht-rekursiv und rekursiv). Seien X

= [1 0 0 0 1 0 0 0]

A = [1 0, 8] B = [1 0 0 0, 5] Dann ist y j = x j + 0, 8x j−1 − 0, 5y j−3

mit

j = 1, . . . 8,

y = [1 0, 8 0 0, 5 0, 6 0, 8 0, 25 0, 3].

Die entsprechenden Schaubilder sind in Abbildung 16.7 dargestellt. Negative Einträge bewirken nur, dass die erste Schwingung nach unten geht. Es macht akustisch aber keinen Unterschied, solange von Null aus gestartet wird und keine Schwingung „zerschnitten“ wird.

379

16 Selbstähnlichkeit in moderner elektronischer Musik

1

0.5 0.4 0.3 0.2

0.5

0.1 0 0

−0.1 −0.2 −0.3

−0.5

1

2

3

4

5

6

7

−0.4

8

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.7: Kombination: y-Vektor und der dazugehörige Wave-Vektor In Stereo

Wir verwenden hierfür zwei verschiedene Koeffizientenvektorpaare und speichern unser Ergebnis statt unter einem nun unter zwei neuen Ergebnisvektoren y, z der Länge n ab. Anschließend speichern wir diese als die Zeilen einer (2 × n)-Matrix w: w=

·

y1 . . . z1 . . .

yn zn

¸

        schreibt dann automatisch eine Stereo-Wavedatei, bei der der linke Kanal durch y und der rechte durch z beschrieben wird. 

Beispiel 16.7. Seien x = [1 0 0 0 1 0 0 0] a = [1 0 0, 5] b = [1] c = [1] d = [1 0 0 − 0, 8]. Damit ergibt sich für y, z und w: y j = x j + 0, 5x j−2 z j = x j + 0, 8z j−3 · ¸ · ¸ y 1 0 0, 5 0 1 0 0, 5 0 w = = . z 1 0 0 0, 8 1 0 0, 64 0, 8 Die Schaubilder sind in Abbildung 16.8 zu sehen.

380

16.2 Arten der Erzeugung

Abbildung 16.8: y- und zugehöriger Wave-Vektor - oben jeweils die linke, unten die rechte Spur 16.2.2 Selbstähnlichkeit durch Kopieren und Skalieren Hintergrund: Das Kronecker-Tensorprodukt

Im folgenden wird Selbstähnlichkeit mit Hilfe des Kronecker-Tensorprodukts erzeugt. Es hat nicht nur die Eigenschaft, die Werte unseres Eingangsrhythmus’ zu verändern, sondern kann ihn auch noch erweitern. Es ist wie folgt definiert: Definition 16.2 (Kronecker-Tensorprodukt). Seien A und B Matrizen, dann ist das KroneckerProdukt   a1,1 B a1,2 B . . . a1,n B  a2,1 B a2,2 B . . . a2,n B    A⊗B =  . ..  .. . . .  . . .  . am,1 B am,2 B

...

am,n B

Bei uns werden allerdings nur Vektoren verwendet, d. h. das Produkt reduziert sich bei uns auf die Formel y = [a1 . . . an ] ⊗ x. Wenn x aus k Einträgen besteht, hat y also n · k Einträge. Angewandt auf die verschiedenen Stufen i der Erzeugung erhält man, dass x i dann k · ni Einträge hat: xi+1 = [a1 . . . an ] ⊗ xi . In dieser Form wird die Selbstähnlichkeit erzeugt, da x von der Struktur her gleich bleibt und nur mit Skalaren multipliziert wird. Die verschiedenen Ergebnisse werden aneinandergereiht. Diese Form wird im Beispiel „Bambadambambam“ verwendet. Das Kronecker-Produkt kann und wird bei uns auch noch anders verwendet: xi+1 = xi ⊗ [1 0].

381

16 Selbstähnlichkeit in moderner elektronischer Musik In dieser Form dient es dazu, den Takt zu verfeinern, dabei jedoch von der Struktur her unverändert zu lassen. Der Effekt hierbei ist, dass der Taktdatenvektor größer wird, jedoch die gleichen Eintragswerte besitzt und der zeitliche Abstand zwischen den Anschlägen gleich bleibt. Diese Form wird im Beispiel „Mehrere Takte“ verwendet. Bambadambambam

0.3

0.2

0.1

0

−0.1

−0.2

−0.3

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.9: Schlag einer Basedrum – bearbeitet Wir sehen hier einen einzigen Schlag einer Basedrum, die mit dem Vektor [1 0,8 0,6] und dem Kronecker-Tensorprodukt dreimal bearbeitet wurde. Es ist eines der Beispiele, bei denen man die Selbstähnlichkeit, zumindest in den ersten Schritten, schön heraussehen kann. Auch die Schritte der Erzeugung sind hier grafisch nachvollziehbar, sobald man die Regeln einmal gesehen hat. Das Schema sieht wie folgt aus: x = [0.4]; stufe = 3; for ( j = 1: s t ufe ) x = kron ( [ 1 0 . 8 0 . 6 ] , x ) ; end

Übertragen auf unsere Formel bedeutet das: x(i+1) = [1 0, 8 0, 6] ⊗ x(i) , wobei x aus k · ni Einträge n besteht. Hier ist k = 1 und n = 3. Unser x hat also 3 i Einträge. Die nullte Stufe kann man ebenfalls erzeugen, allerdings muss man dafür x noch ergänzen, da wir einen 3/4-Takt verwendet haben und demnach mindestens drei Einträge in dem Eingangsvektor stehen müssen. Wir füllen einfach mit Nullen auf: x = [0, 4 0 0].

382

16.2 Arten der Erzeugung Die grafische Darstellung ist in Abbildung 16.10 gegeben. 0.3

0.2

0.1

0

−0.1

−0.2

−0.3

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.10: Nullte Stufe der Basedrum Für den ersten Iterationschritt ergibt sich folgende Matrix in MATLAB: x = kron ( [ 1 0 . 8 0 . 6 ] , 0 . 4 ) = [ 0 . 4 0 . 3 2 0 . 2 4 ]

Mathematisch: x(2) = [1 0, 8 0, 6] ⊗ x(1) = [0, 4 0, 32 0, 24].

Das Schaubild für Stufe 1 sieht dann folgendermaßen aus: 0.3

0.2

0.1

0

−0.1

−0.2

−0.3

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.11: Erste Stufe der Basedrum Entsprechend berechnet MATLAB die Matrix für den zweiten Iterationschritt: x = kron ( [ 1 0 . 8 0 . 6 ] , [ 0 . 4 0 . 3 2 0 . 2 4 ] ) = [ 0 . 4 0.32 0.24 0.32 0.256 0.192 0.24 0.192 0.144]

383

16 Selbstähnlichkeit in moderner elektronischer Musik Mathematisch ergibt sich: x(3) = [1 0, 8 0, 6] ⊗ x(2)

= [1 0, 8 0, 6] ⊗ [0, 4 0, 32 0, 24]

= [0, 4 0, 32 0, 24 0, 32 0, 256 0, 192 0, 24 0, 192 0, 144]. Schließlich das Bild für die zweite Stufe: 0.3

0.2

0.1

0

−0.1

−0.2

−0.3

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.12: Zweite Stufe der Basedrum Man sieht also, dass in jedem Schritt an jeden Balken zwei neue angehängt werden, und zwar jeweils im gleichen Verhältnis zu denen aus dem vorhergehenden Iterationsschritt. Das Bild der dritten Stufe ist ja bereits bekannt: 0.3

0.2

0.1

0

−0.1

−0.2

−0.3

−0.4

0

1

2

3

4

5

6

7

8 5

x 10

Abbildung 16.13: Dritte Stufe der Basedrum Man sieht sehr schön die Einteilung des gesamten Bildes in drei strukturell gleiche Blöcke, die sich selbst wieder in drei Blöcke mit der gleichen Struktur aufteilen lassen usw.. Die Matrix für die dritte Stufe auszuschreiben wäre jedoch schon recht umfangreich. Immerhin enthält sie 33 = 27 Einträge.

384

16.2 Arten der Erzeugung Entsprechend bekommen wir für Stufe 5 eine Matrix mit 3 5 Einträgen und für Stufe 7 eine Matrix mit 37 Einträgen. Die entsprechenden Bilder sehen so aus: 0.8

0.6

0.6

0.4

0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.4 −0.6

−0.6

−0.8

0

1

2

3

4

5

6

7

8

−0.8

0

1

2

3

4

5

5

x 10

6

7

8 5

x 10

Abbildung 16.14: Fünfte und siebte Stufe der Basedrum Hierbei leidet die Anschaulichkeit allerdings schon beträchtlich, da der Takt immer voller wird und entsprechend viele Schwingungen auftreten. Das ist dann akustisch nicht mehr attraktiv, da Sekunden zur Verfügung, das die Sampleanschläge zu kurz werden. Hier hätte ein Schlag 18 3i sind • bei Stufe 3 noch

2 3

= 0, 66 Sekunden.

• bei Stufe 10 schon 0, 0003 Sekunden. Ab Stufe 13 ist der Taktdatenvektor größer als der Musikdatenvektor, der ihn beschreiben soll. Noch höhere Stufen würden unser Schaubild noch weiter verändern, und zwar nicht nur in Bezug auf die Anzahl der Sampleanschläge, sondern auch in Bezug auf die Tonhöhe, da Vektoreinträge überlagert werden (s. o.). Unser Schaubild wird also nicht nur zusammengepresst und mit weiteren Sinuskurven aufgefüllt, sondern auch die Form der Kurven wird sich ändern. Dies hängt mit unserer   -Funktion zusammen. Hierauf wird später noch genauer eingegangen (siehe dazu Kapitel 16.3, „Implementierung“). Mehrere Takte

Betrachten wir Abbildung 16.15, erkennen wir auf den ersten Blick nicht viel Struktur; die Peaks erscheinen eher willkürlich erzeugt denn angeordnet. Tatsächlich jedoch steht dieses Schaubild für ein Klangbeispiel, das zu den komplexeren und musikalisch anspruchsvolleren zählt. Es besteht aus drei aufeinander folgenden Takten, wobei jeder Takt ein Instrument mehr als sein Vorgänger enthält. Begonnen wird mit einem einzelnen Instrument. Die Erzeugung des Rhythmus übernimmt untenstehender Code: bt = [1 0 1 0 ] ; ht1 = [0 1 1 0 ] ;

385

16 Selbstähnlichkeit in moderner elektronischer Musik

1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

1

2

3

4

5

6 5

x 10

Abbildung 16.15: Grafische Darstellung des Stücks „Mehrere Takte“ ht2 = [0.5 0 1 0]; s t u f e = 3 ; o f f s e t = 5∗ o n e s ( 1 , 4 ) ; alpha0 = 0. 6; alpha1= 1 − alpha0 ; for ( j = 1: s t ufe ) b t = a l p h a 0 ∗ kron ( b t , [ 1 0 ] ) + . . . alpha1 ∗[ c ( bt , j ∗ o f f s e t ( 1 ) ) , c ( bt , j ∗ o f f s e t ( 2 ) ) ] ; h t 1 = a l p h a 0 ∗ kron ( h t 1 , [ 1 0 ] ) + . . . alpha1 ∗[ c ( ht1 , j ∗ o f f s e t ( 3 ) ) , c ( ht1 , j ∗ o f f s e t ( 4 ) ) ] ; h t 2 = a l p h a 0 ∗ kron ( h t 2 , [ 1 0 ] ) + . . . alpha1 ∗[ c ( ht2 , j ∗ o f f s e t ( 3 ) ) , c ( ht2 , j ∗ o f f s e t ( 4 ) ) ] ; end

 steht hier für den Takt der Basedrum; 

und   jeweils für verschiedene HiHats.

Neben dem schon dargestellten Kronecker-Produkt, welches hier lediglich zur Verfeinerung der Taktstruktur im Sinne von mehr Beats auf die gleiche Zeit dient, wird eine weitere Funktion benutzt, die klassischen Kopiermaschinen gleicht und auf diesem Weg für die Selbstähnlichkeit der Musik sorgt; die c-Funktion. In oben stehendem Beispiel benutzt das Kronecker-Produkt die Faktoren 1 und 0, was bewirkt, dass unsere Vektoren für jeden Iterationsschritt die doppelte Anzahl an Einträgen haben; die i-te Iterationsstufe enthält also 4 × 2i = 2i+2 Einträge in den jeweiligen Vektoren. Mathematisch ausgeschrieben bedeutet das für die Iterationsstufe i: bt(i + 1) = α0 × [bt(i), [1 0] ] + α1 × [c(bt(i)), c(bt(i)) ].

386

16.2 Arten der Erzeugung Die Funktionsweise von c ist für bt (i) ∈ R1×n gegeben durch: (i)

(i)

(i)

(i)

ck (bt (i) ) := [btk , . . . , btn , bt1 , . . . , btk−1 ]. Der Ausdruck [c(bt (i) ), c(bt (i) )] ist hierbei das Pendant zu klassischen Kopiermaschinen im grafischen Bereich. Die Funktionen einer MRCM beschränkt sich auf folgende Vorgänge: Kopieren, verkleinern und neu anordnen. Im Bereich der Akustik wird aus Gründen der Klangästhetik auf das Verkleinern verzichtet. An anderer Stelle wurde bereits das im Vergleich zum Auge geringe Auflösungsvermögen des Ohres erwähnt. Hier also wird zerteilt, kopiert und neu angeordnet; die c-Funktion trennt einen Vektor an der k-ten Stelle und vertauscht die Reihenfolge der entstandenen Teile. Das enspricht den beiden Schritten „kopieren“ und „neu anordnen“ einer MRCM. Die c-Funktion wird an dieser Stelle zweimal ausgeführt, da sie sich auf die jeweils vorangegangene Iterationsstufe des Taktes bezieht, der durch das Kronecker-Produkt inzwischen doppelt so viele Einträge besitzt. Der entstandene, durchgetauschte Vektor soll aufaddiert werden auf das Ergebnis des KroneckerProdukts und muss deswegen dieselbe Länge haben. Obgleich der Taktvektor nach diesen Operationen ein Vielfaches an Einträgen hat, dauert das Abspielen des Taktes nicht länger, wie auch die Endprodukte von MRCM nicht größer als ihr Ausgangsbild sind. Allerdings wird die Informationsdichte deutlich erhöht, die Feinheit des Taktes wurde deutlich vergrößert. Komplett ausgeschrieben ergibt sich für den Basetakt bt (i+1) : bt (i+1) = α0 [ bt (i) ⊗ [1 0] ] (i)

(i)

(i)

+ α1 [ bt5 j+1 . . . bt2i+2 bt1

(i)

(i)

(i)

(i)

. . . bt5 j , bt5 j+1 . . . bt2i+2 bt1

(i)

. . . bt5 j ],

wobei der Index 5 j immer modulo 2i+2 zu verstehen ist. Gleiches gilt für die anderen Takte. Für weiter Details zur c-Funktion sei auf den Code in Kapitel 16.3 verwiesen. 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

1

2

3

4

5

6 5

x 10

Abbildung 16.16: „Mehrere Takte“ – Stufe 0

387

16 Selbstähnlichkeit in moderner elektronischer Musik Betrachten wir zunächst die nullte Stufe: In Abbildung 16.16 sehen wir den Ausgangstakt. Jeder Peak steht für das Anspielen eines Samples. Es sollen drei verschiedene Takte generiert werden: Takt eins enthält lediglich die Basedrum, in Takt zwei und drei kommen anschließend jeweils ein HiHat dazu. Das Bild ist sehr durchsichtig, so geschieht auch akustisch fast nichts. Der Takt wirkt langweilig. Der nächste Schritt beginnt das Ganze zu verfeinern: 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

1

2

3

4

5

6 5

x 10

Abbildung 16.17: „Mehrere Takte“ – Stufe 1

   und   haben jetzt jeweils 8 Einträge, noch sehr wenige für einen erfüllenden Klangteppich. (0)

bt (1) = α0 [bt (0) ⊗ [1 0] ] + α1 [bt2

(0)

bt3

(0)

bt4

(0)

bt1

(0)

bt2

Stufe 2: 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1

0

1

2

3

4

5

6 5

x 10

Abbildung 16.18: „Mehrere Takte“ – Stufe 2

388

(0)

bt3

(0)

bt4

(0)

bt1 ].

16.2 Arten der Erzeugung Wir sind jetzt bei 16 Einträgen, das Stück beginnt sich zu formieren und der Zuhörer wartet nicht zu lange auf den nächsten Beat. bt (2) = α0 [bt (1) ⊗ [1 0] ] (1)

+ α1 [bt3

(1) bt3

(1)

(1)

(1)

(1)

(1)

(1)

(1)

...

bt4

bt5

bt6

bt7

bt8

bt1

bt2

(1) bt4

(1) bt5

(1) bt6

(1) bt7

(1) bt8

(1) bt1

(1) bt2 ].

Nach drei Iterationsstufen kommt ein Takt auf 2 5 Einträge. Verglichen mit der Anzahl der Iterationsstufen, die zum Beispiel ein Sierpinski-Dreieck fein und schön erscheinen lassen, ist diese Anzahl lächerlich klein. Hier allerdings genügen 32 Einträge für einen 4/4-Takt, um einen gut hörbaren Groove zu erzeugen. Das generierte Stück wird mit 60bpm wiedergegeben und dauert insgesamt 12 Sekunden. Meeresrauschen

• Rauschen ist eines der häufigsten, natürlichen Geräusche. • Physikalisch gesehen ist es die Überlagerung aller möglicher Frequenzen in ähnlicher Lautstärke. • Rauschen ohne Puls wirkt störend und langweilig. • Dagegen wirkt Meeresrauschen eher entspannend und beruhigend. Wie entsteht dieses spezielle Rauschen? Einzelne Wassertropfen verursachen leise Geräusche. Daher erzeugt eine große Masse von Wassertropfen ähnliche Geräusche. Hinzu kommt der Puls der Wellen. Unser Programm funktioniert ähnlich. Wir haben ein Ausgangsgeräusch: e i n g a b e = ’ d : \ s o u n d s \ s a m p l e s \ r e g e n \ meer2 . wav ’ ;

Das Sample wird in kleine Stücke zerlegt: samplel1 = samplel (1:44100); samplel2 = samplel (44101:88200); samplel3 = samplel (88201:132300);

Durch Hilfsfunktionen wird ein Puls erzeugt: a b d c

= = = =

(1:44100); sin ( pi ∗a / 4 4 1 0 0 ) ; abs ( s i n ( 2 ∗ p i ∗ a / 4 4 1 0 0 ) ) ; d .∗ cos ( pi ∗a / 4 4 1 0 0 ) ;

samplel1 = samplel1 .∗ b ; samplel2 = samplel2 .∗ d ; samplel3 = samplel3 .∗ c ;

389

16 Selbstähnlichkeit in moderner elektronischer Musik

1

1

0.9

0.9

0.8

0.8

0.7

0.7

0.6

0.6

0.5

0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

0.1

0.8

0.6

0.4

0.2

0

−0.2

−0.4

0

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0

−0.6

0

0.5

1

1.5

2

2.5

3

4

x 10

3.5

4

4.5

−0.8

0

0.5

1

1.5

2

2.5

3

3.5

4

x 10

4

4.5 4

x 10

Abbildung 16.19: Die Funktionen b, c und d 16.2.3 Andere Arten der Erzeugung

Neben den Modellen, die obenstehend erläutert wurden und die in Kapitel 16.3 noch von Interesse sein werden, existieren selbsverständlich noch andere Methoden, Selbstähnlichkeit in Musik zu analysieren oder mit Hilfe dieser Eigenschaft Musik zu generieren. Im folgenden wird eine Methode vorgestellt, die ein japanisches Team entwickelt hat. “A method to generate music using fractal coding“

from the Department of Intelligence and Computer Science Nagoya Institute of Technology by Yuji Uenosono, Nobuhiro Inuzuka, Tsuyoshi Nakamura, Hirohisa Seki, Hidenori Itoh. Ein Maß für Selbstähnlichkeit: Um Selbstähnlichkeit analysieren zu können, entwickelte das Team eine Abstandsfunktion für den Unterschied zweier Takte. Die Größe des Ergebnisses quantifiziert den Unterschied zwischen den Takten; hierdurch wird deutlich, dass die einzelnen Takte Grundlage des Vergleichs und damit des Urteils über Selbstähnlichkeit sind. Die einzelnen Schritte seien im folgenden erläutert: Zu bewerten ist das Musikstück M, welches aus den Takten b 1 bis bn (englisch „bar“ für Takt) besteht, also gilt: M = [b1 , . . . , bn ]. Jeder Takt bi wiederum besteht aus einzelnen Noten n. Somit lässt sich ein Takt als eine Folge von Noten beschreiben: bi = [n1 , . . . , nm ]. Die einzelnen Töne n j sind nun Grundlage für den Vergleich der verschiedenen Takte. Tonhöhe, Länge und Lautstärke werden als Parameter h(n j ), l(n j ) und s(n j ) angegeben. Diese Parameter sind immer ganze Zahlen, wobei der Wert 1 jeweils für die tiefste Note, den leisesten Ton und den kleinsten Notenwert steht. Um eine Relation zwischen zwei verschiedenen Takten b und b 0 herzustellen, vergleicht man die Elemente der jeweiligen Tonmenge der Takte.

390

16.2 Arten der Erzeugung Es ist nicht davon auszugehen, dass zwei Takte eines Musikstückes nur aus Noten n j bestehen, die jeweils gleich lang sind (l(n j ) = l(n0j )). Deswegen werden alle Noten der beiden Takte auf dieselbe Länge gebracht. Für den Fall, dass ni im Takt b kürzer als die entsprechende Note in b 0 ist, wird die längere Note in ni1 bis ni j aufgespalten, um einen Vergleich zu ermöglichen. b = [n1 , . . . , ni−1 , ni , ni+1 , . . . , nk ] b0 = [n1 , . . . , ni−1 , ni1 , . . . , ni j , ni+1 , . . . , nk0 ]. Lautstärke und Tonhöhe werden nicht verändert. Darüber hinaus gilt j

l( ∑ niq ) = l(ni ), q=1

die Länge des Taktes wird demnach ebenfalls nicht verändert! Diese Aufspaltung ist notwendig, da verschiedene Tonlängen nicht miteinander verglichen werden können. Nach der Aufspaltung stehen Töne gleicher Länge übereinander, so dass jetzt der Unterschied zwischen zwei Takten berechnet werden kann. Hierzu benutzen wir die Gleichung k ¯ ¯ d(b, b0 ) = ∑ l(ni ) ¯h(ni ) − h(n0i )¯ . i=1

Je größer ein Intervall zwischen den Tönen in b und b 0 an entsprechender Stelle ist und je länger der Ton andauert, desto größer ist der errechnete Unterschied. Der Umkehrschluß lautet: Errechnen wir bei zwei Takten eine geringe Differenz, klingen die Takte ähnlich. Manipulation der Takte und Generierung von Musik: Nach Definition dieses Abstandes zweier Takte wollen wir den Abstand bei der Generierung von Musik benutzen. Aus einem bekannten Musikstück wird eine vergleichsweise geringe Anzahl von einzelnen Takten herausgenommen. Das könnten beispielsweise diejenigen Takte sein, die eine Themenphrase enthalten und somit als repräsentativ für das gesamte Stück betrachtet werden können. Da aus diesen Takten ein möglichst breites Spektrum an verschiedenen Melodieverläufen generiert werden soll, ist vorauszusetzen, dass der oben definierte Abstand zwischen den Takten innerhalb dieses „Baukastens“ ziemlich groß ist. Angestrebt ist, durch Manipulation dieser wenigen Takte ein Musikstück zu erschaffen, das dem ursprünglichen Stück sehr ähnlich ist. Definiert wird folglich eine Menge von n repräsentativen Takten: Bd = [b1d , . . . , bnd ]. Die Manipulation wird vorgenommen von einer Klasse von Abbildungen O, die im folgenden genauer beschrieben werden: O = Sβ (Rα (I i (· · · ))).

391

16 Selbstähnlichkeit in moderner elektronischer Musik Nach Ausführung dieser Operation soll der Abstand zwischen jedem Takt des Ausgangsstückes und dem an entsprechender Stelle im generierten Musikstück stehenden möglichst gering sein. Gesucht wird demnach diejenige Abbildung o ∈ O, für die gilt: d(br , o(bdi )) ≤ d(br , o0 (bdi ))

∀ o0 ∈ O.

Eine solche Abbildung o besteht nun aus drei Transformationen, die im Folgenden dargestellt werden. Beispielhaft wird jede Transformation an einem Ausgangstakt b = (n 1 , . . . , nk ) ausgeführt: 1. Die Transformation I („inversion“), welche die Tonfolge innerhalb eines Taktes umkehrt: ½ b für i = 0 i I (b) = (nk , nk−1 , . . . , n1 ) für i = 1 2. Die Transformation Rα („raising“) verändert die Tonhöhe der einzelnen Töne, wobei α den Wert angibt, um den die Note angehoben bzw. gesenkt wird. Es gilt: Rα (b) = (n1 , . . . , nk )

mit

h(ni ) = h(ni ) + α .

3. Die dritte Transformation S verändert das Intervall zwischen der ersten Note eines Taktes und den folgenden; mathematisch: Sβ (b) = (n1 , . . . , nk ), wobei h(ni ) = h(ni ) + [β · h(ni ) − h(n1 )]. Damit ist O vollständig beschrieben. Bei den obigen Transformationen gilt: α ∈ Z, β ∈ R und i ist entweder 1 oder 0. Wird o ∈ O geeignet angewandt und die entstandenen Takte in einer geeigneten Reihenfolge angeordnet, so kann nachgerechnet werden, dass d(b M0 , bM ) sehr klein ist. Wenden wir die Operationen, die uns von M auf M 0 gebracht haben, rückwärts an, erhalten wir ein weiteres Musikstück M 00 , dass dem ursprünglichen M ähnlich, aber nicht gleich ist. Es gilt auch hier, dass d(b0n , b00n ) sehr klein ist. Zufällige Auswahl der Transformationen: Obenstehend wurden die drei Variablen α , β und i bewusst gewählt, um Takte so umzuformen, dass sie einem schon bekannten Stück ähneln. Verzichtet man auf diese bewusste Auswahl und leitet die Werte von zufälligen äußeren Umständen ab, so sollte man annehmen, dass das Resultat eher chaotisch wirkt, aber keinenfalls durchdacht oder gar komponiert. Bei der Entwicklung der “Method to generate music“ ließ sich das Team diese Werte durch Reflexionen auf einer Wasseroberfläche vorgeben, die vom Wind bewegt und von der Sonne

392

16.2 Arten der Erzeugung beschienen wurde. Die Sonne verursachte auf der Oberfläche ein Glitzern, dessen Lage und Helligkeit die Auswahl der Parameter bestimmte. Das Ergebnis dieses Versuchs überraschte: Denn anstatt wie erwartet, chaotisch zu klingen, wirkte das Ergebnis komponiert. Darüber hinaus war der Unterschied zum Ausgangspunkt sehr gering. Nutzung bekannter Attraktoren

Andere Möglichkeiten der fraktalen Musikerzeugung benutzen schon bekannte Fraktale, um mit deren Veränderungen Melodien zu erzeugen. Eine Vorreiterin auf diesem Gebiet war die Konzertpianistin und MIT-Studentin Diana Dabby, die sich die Gestalt des Lorenz-Attraktors zunutze machte, um ein Stück Musik zu verändern. Ihre Methode kümmert sich nicht um Takte, Notenwerte und Dynamik; sie behandelt lediglich die Tonhöhe h(n t ) an einem bestimmten Zeitpunkt t im Verlauf des Stückes. Somit verändert sie die Struktur der Musik nicht und erhält Selbstähnlichkeit. Wie bereits im Vortrag „Der Lorenz-Attraktor und andere Attraktoren“ dargestellt wurde, lautet die Formel zur Erzeugung des Lorenz-Attraktors: P0 = (0, 001 0, 001 0, 001) dx = (−σ x + σ z) · dt

dy = (rx − y − xz) · dt dz = (−bz + xy) · dt,

wobei r, z und σ frei wählbare Parameter sind, P0 ein hier beliebig gewählter Startwert ist und t für die Zeit steht. Der Lorenz-Attraktor wird also mit bestimmten Parametern generiert. Nun steht für jeden Zeitpunkt t ein bestimmter x-Wert zur Verfügung. Dieser Wert wird mit der Tonhöhe im Musikstück zum selben Zeitpunkt t identifiziert. Diese Identifikation der Tonhöhe und des x-Werts zum Zeitpunkt t wird gespeichert, anschließend wird der Lorenz-Attraktor mit anderen Parametern erneut erzeugt. Die neu entstandene Figur nimmt nun eine veränderte Gestalt an, die im Lorenz-Attraktor dargestellte Bahn verläuft von der ersten unterschiedlich; das bedeutet, dass für den Zeitpunkt t ein anderer x-Wert eingenommen wird. Anschließend werden die verschiedenen x-Werte an entsprechenden Zeitpunkten t miteinander verglichen. Liegt der neu generierte Wert betragsmäßig unter dem x-Wert der entsprechenden Stelle im ersten Durchlauf, so wird die zugehörige Tonhöhe nach unten korrigiert. Um wieviel die Tonhöhe verändert wird, entscheidet die Differenz zwischen den beiden generierten x-Werten zum Zeitpunkt t. Auch in diesem Beispiel zeigen die Ergebnisse, dass der Mensch das generierte Musikstück (bei geeigneten Parametern des Lorenz-Attraktors) durchaus nicht als chaotisch empfindet, sondern, wie oben dargestellt, als durchdachte und komponierte Musik.

393

16 Selbstähnlichkeit in moderner elektronischer Musik

Selbstähnlichkeit in der Sonatenhauptsatzform

Schon lange Zeit, bevor das erste Fraktal generiert wurde, existierte die Selbstähnlichkeit in der Musik. Eine Technik, die sich Komponisten zueigen gemacht haben, um weder ihre Musik durch zuviele Wiederholungen langweilig erscheinen zu lassen, noch durch die unablässige Nutzung von neuen Themen den Zuhörer zu überanstrengen, ist die Sonatenhauptsatzform. Diese setzte sich in der Mitte des 19. Jahrhunderts, im Zusammenhang mit der neuen Betrachtungsweise von Musik als „tönend bewegte Form“ (zit. Eduard Hanslick, 1854) durch. Als Regel zur Komposition von Sinfoniesätzen gibt sie vor, dass ein Satz aus drei Teilen besteht: Exposition, Durchführung und Finale. Die Exposition stellt wiederholt zwei verschiedene Themen vor, vergleichbar mit dem „Baukasten“ von Takten, die als Grundlage zur Generierung von Musik dienen. Die Durchführung nun verarbeitet die Themenphrasen, baut sie um und nähert beide Themen aneinander an. Die Analogie hierzu finden wir in der Klasse von Abbildungen O, die drei Transformationen für die Manipulation von Tonfolgen bereithält. Im Finale eines jeden Satzes sind nun beide Themen aneinandergereit und sich so ähnlich, dass sie sich gegenseitig ergänzen. Vergleichbar ist ein generiertes Musikstück, dass demjenigen, dem die repräsentativen Takte entnommen wurden, gleicht. Diese Ähnlichkeit entspricht einem geringen rechnerischen Abstand zwischen den verschiedenen Takten. Beispiele für die Sonatenhauptsatzform sind beinahe alle Symphonien der Romantik, insbesondere die sehr formbewussten Brahms- oder Beethovensymphonien.

16.3 Implementierung  16.3.1 Die   -Funktion Die     -Funktion schafft den Übergang von Taktdatenraum zum Musikdatenraum, indem sie die Vektoren der Samples einbindet in die Taktvektoren. f u n c t i o n y = a s s e m b l e ( t a k t , i n s t V e k , n v i e r t e l , bpm , f s ) % % % % % % % % % %

Y = ASSEMBLE( TAKT , INSTVEK , NVIERTEL , BPM, FS ) i s t h e t r a n s i t i o n b e t w e e n b e a t s p a c e and m u s i c s p a c e − i t i n c l u d e s t h e s a m p l e v e c t o r s i n t h e bar v e c t o r s . input :

output :

t a k t − t h e bar t h a t i s t o sample instVek − the " instrument vector " n v i e r t e l − number o f b e a t s p e r b a r bpm − number o f b e a t s p e r m i n u t e f s − sampling frequency t h e sampled bar

% how many i s t r u m e n t s a r e t h e r e i n t h i s b a r instNamen = f i e l d n a m e s ( instVek ) ; i n s t A n z a h l = s i z e ( instNamen , 1 ) ;

394

16.3 Implementierung

% how d e t a i l e d i s t h e p a r t i t i o n i n t h e b a r nbeats = size ( takt , 2 ) ; % f o r e a c h i n s t r u m e n t t h e r e i s one l i n e i n e a c h b e a t m a t r i x ntracks = size ( takt , 1 ) ; % t h a t ’ s why t h i s c h e c k i s done i f ( i n s t A n z a h l ~= n t r a c k s ) e r r o r ( ’ Anzahl d e r I n s t r u m e n t e s t i m m t n i c h t ! ’ ) end i f ( mod ( n b e a t s , n v i e r t e l ) ~= 0 ) e r r o r ( ’ Es i s t e i n u n v o l l s t ä n d i g e r T a k t ü b e r g e b e n worden ! ’ ) end % The b e a t s h a v e t o u s e up t h e whole bar , o t h e r w i s e we g e t ’ h o l e s ’ % a t t h e end o f a b a r which c a n n o t be p r o c e s s e d . % t h e d u r a t i o n o f a bar − t h e c o r r e s p o n d i n g v e c t o r i n t h e % music space i s o f l e n g t h t a k t D a u e r I n S e c ∗44100. t a k t D a u e r I n S e k = n v i e r t e l ∗ 6 0 / bpm ; % t h e number o f e n t r i e s f o r one b e a t noteLen = f i x ( taktDauerInSek ∗ f s ∗ 1/ nbeats ) ; % a u n i t v e c t o r c o r r e s p o n d i n g t o a s i n g l e b e a t i n normal t i m e ee = zeros ( 1 , noteLen ) ; ee ( 1 ) = 1 ; % s e e above taktLaengeInSamp = f i x ( taktDauerInSek ∗ f s ) ; for ( i =1: i n s t A n z a h l ) % now e v e r y row o f t h e b e a t m a t r i x ( i . e . e v e r y s i n g l e % instrument ) is included i n s t = eval ( [ ’ instVek . ’ , instNamen { i , : } ] ) ; % t h e volume i s l i m i t e d t o 1 i n s t = i n s t ∗ 1 / max ( abs ( i n s t ) ) ; instLen = length ( i n s t ) ; % column−v e c t o r −> row−v e c t o r inst = inst (:) ’; % t o be a b l e t o i n c l u d e t h e s a m p l e s t h e b e a t v e c t o r e s % are prolonged taktMK = t a k t ( i , : ) ; taktEZK = kron ( taktMK , e e ) ; % c o n t a i n s t h e s t a r t i n g p o i n t s f o r each sample : % a l l nonzero e n t r i e s of the beat v e c t o r N o t e s = f i n d ( taktEZK ) ;

395

16 Selbstähnlichkeit in moderner elektronischer Musik

% how o f t e n a s a m p l e i s p l a y e d NrOfNotes = l e n g t h ( f i n d ( taktMK ) ) ; instEZK = z e r o s ( 1 , t a k t L a e n g e I n S a m p ) ; f o r ( j = 1 : NrOfNotes ) % now t h e l e n g t h o f t h e s a m p l e i s m o d i f i e d , b e c a u s e % e a c h i n c l u d e d s a m p l e h a s t o h a v e t h e same l e n g t h % d e s c r i b e s t h e p a r t o f t h e music v e c t o r t h a t i s l o n g e r as % t h e bar d r u e b e r w e g = N o t e s ( j )+ i n s t L e n −1 − t a k t L a e n g e I n S a m p ; % d e f i n e s t h e p a r t o f t h e music v e c t o r % the instrument is played h e l p I n d = [ N o t e s ( j ) : min ( N o t e s ( j )+ i n s t L e n −1 , . . . taktLaengeInSamp ) ] ; % t h e number i n [ 0 , 1 ] t h a t i n d i c a t e s t h e volume o f t h e % instrument at the current note l s = taktEZK ( N o t e s ( j ) ) ; i f d r u e b e r w e g