In meiner Serie “Best of Chaos” kommt jetzt endlich das, was alle mit Chaos in Verbindung bringen: Die ganzen bunten und komplexen Bilder! Eigentlich besteht die Chaostheorie ja aus jeder Menge heftiger Mathematik – siehe dazu meine früheren Blogartikel (Einleitung, Teil 1, Teil 2, Teil 3, Teil 4) und meine Podcasts (Folge 93). Aber diese Mathematik produziert eben auch ästhetisch sehr ansprechende Bilder und es ist zweifelhaft, ob die mathematische Chaostheorie je ihre große Popularität in der breiten Öffentlichkeit erreicht hätte, wenn es diese Bilder nicht gäbe. Es wird also Zeit, sich das alles mal genauer anzusehen…

Ich habe bisher schon vom “seltsamen Attraktor” gesprochen. Außerdem von der Verdoppelung der Perioden in chaotischen Systemen und der Universalität des Chaos. All diese Phänomene haben ein paar fundamentale Gemeinsamkeiten:

  • Simple Regeln erzeugen extrem komplexe und unüberschaubare Systeme.
  • Normale Geometrie reicht nicht aus, um die chaotische Phänomene zu beschreiben.
  • Die chaotischen Strukturen sind auf allen Skalen zu finden und es macht keinen Unterschied, ob man das große Gesamtbild oder kleinste Details betrachtet.
  • Die chaotischen Phänomene entstehen durch die Wiederholung der immer gleichen, einfachen Anweisungen.

Und das sind im wesentlichen auch genau die Eigenschaften, die eines der wichtigsten chaotischen Phänomene definieren: Selbstähnlichkeit. Das hat man beim Bifurkationsdiagramm der logistischen Gleichung (aus der vorletzten Folge) ja deutlich gesehen. Dort gab es chaotische und nicht-chaotische Bereiche, die gezeigt haben, wo das System – in diesem Fall das Wachstum von Populationen – “ordentlich” abläuft oder völlig unvorhersagbar, je nachdem welchen Wert die äußeren Parameter haben. Aber bei genauerer Betrachtung zeigt sich, dass innerhalb der chaotischen Bereiche wieder reguläre Regionen zu finden sind. Und nicht nur das: Diese Bereiche zeigen die gleiche Struktur wie das ursprüngliche Diagramm! Das heißt, dass auch in ihnen selbst wieder chaotische Regionen zu finden sind, in denen reguläre Bereiche vorhanden sind, in denen wieder chaotische Regionen sind, und so weiter…

Das bekannteste Beispiel für dieses Verhalten findet man in der Mandelbrot-Menge. Benannt nach dem sehr exzentrischen Mathematiker Benoît Mandelbrot ist diese Menge ebenfalls das Resultat einer sehr simplen Rechenvorschrift. Sie lautet: Wähle eine komplexe Zahl. Multipliziere sie mit sich selbst. Nimm das Ergebnis, multipliziere es mit sich selbst und zähle die ursprünglich gewählte Zahl hinzu. Nimm das Ergebnis, multipliziere es mit sich selbst und zähle die ursprünglich gewählte Zahl hinzu. Und so weiter – Mach das immer und immer wieder und schaue nach, ob die so entstehende Zahlenreihe zu immer größeren Zahlen führt oder auf einen gewissen Bereich beschränkt bleibt. Bleibt die Reihe beschränkt, dann ist die Zahl mit die du gewählt hast, Teil der Mandelbrot-Menge und wenn nicht, dann nicht.

Zu berechnen, ob eine Zahl zur Mandelbrotmenge gehört oder nicht, ist simpel. Man muss dazu nur wissen, wie man komplexe Zahlen multipliziert und das ist nicht wesentlich schwerer als die Multiplikation normaler Zahlen. Man kann das mit einem simplen Taschenrechner erledigen. Und doch ist das Ergebnis höchst komplex. Wenn man das für eine große Menge an Zahlen macht und in einem Diagramm einzeichnet, welche von ihnen zur Menge gehören und welche nicht, dann sieht das zum Beispiel so aus:

Hier wurde nicht nur eingezeichnet, welche Zahlen zur Mandelbrot-Menge gehören; damit es schöner und interessanter aussieht, hat man die Zahlen auch noch verschiedenfarbig eingefärbt um zu markieren, wie stark beschränkt bzw. nicht beschränkt die aus ihnen entstehende Zahlenfolge ist. Die schwarze Struktur in der Mitte ist die “eigentliche” Mandelbrot-Menge; hier sind die Zahlenreihen immer beschränkt. In den äußeren Bereichen, wo es bunt wird, wachsen die Zahlen der Folge dann schon ein bisschen stärker an, bis sie im blauen Bereich dann völlig unbeschränkt sind.

1 / 2 / Auf einer Seite lesen

Kommentare (47)

  1. #1 Krypto
    25. Februar 2015

    Florian, ich finde diese Serie echt toll!
    Auch wenn das auf den ersten Blick eher philosophisch klingt:
    Meine Gedanken kreisen immer wieder gerne um einen fraktalen Aufbau des Universums und ich würde mich nicht weiter wundern, wenn der LHC vermeldet, dass Quarks sich anregen lassen und die Plancklänge irgendeinen Zusammenhang mit einer Feigenbaum-Konstante hätte.
    Träumen ist manchmal schön… 😉

  2. #2 Franz
    25. Februar 2015

    ich frag mich hier nur immer: ok, nette Bilder, aber was kann man davon woanders gebrauchen ? Sind diese Algorithmen z.B. die Basis von Wettersimulationen ?

  3. #3 Gast
    25. Februar 2015

    Florian,

    du schreibst in deiner Serie immer von Chaos. Müsste es nicht eigentlich deterministisches Chaos heißen? Schließlich ist dieses ja berechenbar und unterscheidet sich von einem nicht berechenbaren “echten Chaos”.

  4. #4 robsn
    25. Februar 2015

    Wow – ich habe schon die ein oder andere Doku über Fraktale gesehen, die alle sehr interessant waren (vor allem die Bedeutung für Mobilfunkantennen hat mich überrascht). Auch die Mandelbrotmenge wurde stehts erwähnt und dargestellt. Aber was in allen diesen tollen Dokus fehlte, war “wie berechnet man die Mandelbrotmenge”. Und das ist mir nicht mal aufgefallen. Lieben Dank für diese großartigen Einblicke! Toller Artikel! Bin sehr gespannt auf den nächsten!

  5. #5 Alderamin
    25. Februar 2015

    @robsn

    Eigentlich ganz einfach: die Bildkoordinaten (x,y) interpretiert man als komplexe Zahl x+i*y (und skaliert und verschiebt diese entsprechend, je nachdem, welchen Bildausschnitt man anzeigen will). Jeder Bildschirmkoordinate wird so eine komplexe Zahl c zugeordnet. Dann berechnet man die komplexe Folge

    z(0) := 0,
    z(n+1) :=z(n)²+c

    für n=1, 2, etc. bis zur maximalen Iterationstiefe und prüft nach jedem Schritt, ob z(n)² > 4 ist (also |z(n)| > 2), denn dann weiß man, dass die Folge divergent wird. Ist das so, bricht man die Iteration bei n ab und färbt den Bildpunkt mit einer Farbe, die man aus n ermittelt (hier hat künstlerische Freiheit, wie man die Zurodnung umsetzt).

    Wird die Schwelle 4 niemals bis zur maximalen Iterationstiefe übertroffen, bleibt der Punkt schwarz.

    Je tiefer man in die Menge hineinzoomt, desto größer muss man die maximale Iterationstiefe wählen, was die Berechnung entsprechend verlangsamt.

    Um die Berechnung zu beschleunigen, kann man sich beispielsweise entlang eines zunehmend enger werdenden Rasters durch das Bild rechnen, und wenn alle Bildpunkte im Umfang eines Vierecks des Rasters die gleiche Iterationstiefe bis zum Abbruch haben, färbt man das ganze Viereck in der entsprechenden Farbe. Die nicht ausgefüllten Vierecke werden dann im nächsten Schritt wieder in ein feineres Raster unterteilt usw.

    Zu meiner Studienzeit in der 2. Hälfte der 80er waren diese Mandelbrot-Bilder gerade der absolute Hype und unsere armen Apples, Ataris und Amigas mit ihren paar-MHz-CPUs und paar-kByte-Speichern mussten nächtelang ackern, damit wir mit den Bildern angeben konnten. 🙂

  6. #6 JoselB
    25. Februar 2015

    Die im Beitrag beschriebene Definition der Mandelbrot-Menge hat einen kleinen Fehler. Es ist nicht die Anfangszahl die zur Mandelbrot-Menge gehört sondern die vorab gewählte Konstante. Die Anfangszahlen sind für die Julia-Mengen relevant.

  7. #7 Florian Freistetter
    25. Februar 2015

    @JoselB: “Die im Beitrag beschriebene Definition der Mandelbrot-Menge hat einen kleinen Fehler. Es ist nicht die Anfangszahl die zur Mandelbrot-Menge gehört sondern die vorab gewählte Konstante. “

    ? Was genau meinst du. Kannst du das genauer ausführen – ich scheine gerade auf der Leitung zu stehen…

  8. #8 Florian Freistetter
    25. Februar 2015

    @Franz: “ich frag mich hier nur immer: ok, nette Bilder, aber was kann man davon woanders gebrauchen ?”

    Die Bilder sind ja nur die Visualisierung des ganzen zugrunde liegenden Phänomens. Und das hat natürlich sehr weitreichende Konsequenzen und muss bei vielen Dingen berücksichtigt werden. Solche Sachen wie die Mandelbrotmenge sind da eher als Modellsysteme zu verstehen, bei denen man schnell und einfach das erforschen kann, was man da eben zB bei der Vorhersage des Wetters (oder der Dynamik von Planeten) berücksichtigen muss.

  9. #9 Alderamin
    25. Februar 2015

    @Florian

    Bei Dir oben im Text steht

    Nimm eine komplexe Zahl. Multipliziere sie mit sich selbst und addiere eine vorher gewählte Konstante. Nimm das Ergebnis, und wiederhole den Prozess.

    Die komplexe Zahl, die man auf Zugehörigkeit zur Mandelbrotmenge untersucht, ist die Konstante, die man hinten addiert. Startwert der Folge z(0) ist immer die 0. Siehe auch #5.

  10. #10 Fermat
    25. Februar 2015

    Ach, ja die Mandelbrotmenge. Da denke ich immer an eines meiner ersten Basic-Programme das allerdings die längste “Entwicklungszeit” aller meiner Programme hatte.
    Als 8-Klässler habe ich 1990 mal in einer TV-Doku die Formel zur Mandelbrotmenge gesehen. Daraufhin habe ich meinen ersten Computer angeworfen und in GW-Basic angefangen zu programmieren. Hat natürlich hinten und vorne nicht geklappt, da ich von komplexen Zahlen damals noch keine Ahnung hatte. 6-7 Jahre später wurde diese Wissenslücke im Studium dann gefüllt. Daraufhin habe ich mein altes Programm aufgerufen und es noch kurz fertig gemacht. Das waren noch Zeiten 😉

  11. #11 Florian Freistetter
    25. Februar 2015

    @Alderamin: Ah. Ok. Ja, das stimmt natürlich. Ich wollte ursprünglich ja auch die Julia Mengen noch im Text unterbringen, aber das erschien mir dann zu viel. Aber in meinem Kopf waren sie dann wohl beim Schreiben noch 😉

  12. #12 PDP10
    25. Februar 2015

    @Alderamin:

    “Zu meiner Studienzeit in der 2. Hälfte der 80er waren diese Mandelbrot-Bilder gerade der absolute Hype und unsere armen Apples, Ataris und Amigas mit ihren paar-MHz-CPUs und paar-kByte-Speichern mussten nächtelang ackern, damit wir mit den Bildern angeben konnten. 🙂 “

    Oh ja! Ich erinnere mich!

    Mein armer Atari ST 🙂

    Ich hab damals sogar versucht, das ganze in Schön zu programmieren. Mit einer GUI in GFA Basic in der man Ausschnitte zum reinzoomen wählen konnte und den Rechenroutinen in 68K Assembler.
    Das hat mich damals nächtelanges Kopfzerbrechen über der Schei….. Fliesskommarithmetik in Assembler gekostet … 🙂

    Einige Jahre später hatte ich dann als HiWi Zugriff auf eine Cray T3E (ein massiv-Parallel-Rechner). Und natürlich gabs für die auch ein schickes Demoprogramm, dass die Mandelbrotmenge berechnet, dass ich dann natürlich auch ausprobieren musste …

    Die Rechenzeit auf dem Teil war natürlich eigentlich ziemlich teuer, aber da ich als Aushilsf-Admin da gewisse Privilegien hatte, konnte ich die maximale Anzahl der Prozessoren die man zum testen benutzen durfte natürlich ausnutzen …

    So ab 16 CPUs konnte man dann in quasi Echtzeit in die Mandelbrotmenge reinzoomen … 🙂

  13. #13 Detlef Schulze
    25. Februar 2015

    @Gast

    du schreibst in deiner Serie immer von Chaos. Müsste es nicht eigentlich deterministisches Chaos heißen? Schließlich ist dieses ja berechenbar und unterscheidet sich von einem nicht berechenbaren “echten Chaos”.

    “Deterministisch” bedeutet, dass es eine Gleichung oder einen wohldefinierten Algorithmus gibt, der einen Chaotische Attraktor erzeugt. Die Trajektorien (der zeitliche Verlauf) eines chaotischen Systems sind wohl definiert und Vorhersagen verbessern sich mit verbesserter Rechenpower. Das ist nicht der Fall fuer Quanten-Chaos. Solche Systeme sind nicht deterministisch und konkrete Vorhersagen sind prinzipiell nicht moeglich.

  14. #14 Alderamin
    25. Februar 2015

    @PDP10

    So ab 16 CPUs konnte man dann in quasi Echtzeit in die Mandelbrotmenge reinzoomen …

    Das Tolle ist, das kannst Du jetzt auf Deinem PC zu Hause. Nennt sich Moore’s Law. 😉

  15. #15 Alderamin
    25. Februar 2015

    Das faszinierende an dieser Menge ist ja auch, dass die Begrenzungslinie der Menge (dem schwarzen Bereich) eine einzige zusammenhängende Linie ist, die sich um alle diese Formen unendlich oft herumwindet. Unglaublich.

  16. #16 Hans
    25. Februar 2015

    @PDP10:

    Rechenroutinen in 68K Assembler.
    Das hat mich damals nächtelanges Kopfzerbrechen über der Schei….. Fliesskommarithmetik in Assembler gekostet … 🙂

    Ich schliesse daraus jetzt mal, dass Du “Fliesskommarithmetik in Assembler” seit dem aber kannst, egal ob 68K oder andere CPUs.
    Wobei sich mir jetzt gerade noch die Frage stellt, ob Du den damals noch nicht standardmässig vorhandenen mathematischen CoPro zur Verfügung hattest, oder die Fliesspunktarithmetik “von Hand” bauen musstest? (Sofern man dafür nicht die eine oder andere Routine des Basicinterpreters verwenden konnte…)

    Einige Jahre später hatte ich dann als HiWi Zugriff auf eine Cray T3E …

    Cool!

  17. #17 PDP10
    25. Februar 2015

    @Alderamin:

    “Nennt sich Moore’s Law. 😉 “

    Jep! Die Prozessoren der T3E damals waren DEC Alphas mit – für damalige Verhältnisse – wahnsinnigen 600 MHz Takt.
    Jedes Prozessor-Board hatte vier davon drauf und ich weiss nicht mehr wieviel RAM.
    Insgesamt hatte die Kiste in der letzten Ausbaustufe 700irgendwas CPUs und einige 100 GB RAM, was damals absolut galaktisch war.

    Mein PC heute – der die Mandelbrotmenge ungefähr in dem gleichen Tempo berechnen kann – hat einen Quadcore Athlon und 6GB RAM und hat soviel gekostet wie ein einziger der DEC Alpha Procs damals … und die billig-Graphikkarte die da drin steckt, ist wahrscheinlich bei Fliesskomma-Rechnungen ähnlich schnell wie die komplette T3E damals 🙂

  18. #18 PDP10
    25. Februar 2015

    @Hans:

    “oder die Fliesspunktarithmetik “von Hand” bauen musstest? “

    Äh, ja. Das war ja das Kopfzerbrechende daran … 🙂

  19. #19 Alderamin
    25. Februar 2015

    @PDP10

    und einige 100 GB RAM, was damals absolut galaktisch war.

    Du meinst vermutlich MB, n’est-ce pas?

  20. #20 PDP10
    25. Februar 2015

    @Hans:

    Nachtrag:

    Und ich habe heute völlig vergessen, wie das geht und möchte mich da auch nie wieder mit beschäftigen müssen … War das ein Schei….

    Und dem oben von Alderamin erwähnten Moore sei dank müssen wir das ja auch nicht mehr 🙂

  21. #21 PDP10
    25. Februar 2015

    @Alderamin:

    “Du meinst vermutlich MB, n’est-ce pas?”

    Neee, das waren schon GB. Obs wirklich einige 100 waren, kann ich jetzt nicht wirklich beschwören, aber der onboard Speicher von jedem Prozessor-Board (wie gesagt, 4 CPUs pro Board und – Fun-Fact: nochmal drei zu jeder CPU in Reserve 🙂 ) war mit Sicherheit in der Grössenordnung von 32 oder 64 MB – oder waren das sogar 32 oder 64 MB pro CPU?
    Und da das so ungefähr 200 Boards waren, kam da schon einiges zusammen …

    Der komplette Speicher war natürlich nicht direkt für jede CPU zugreifbar. Das war halt eine NUMA Architektur.

    Aber da gabs natürlich passende Bibliotheken fürs schreiben von massiv-parallelen Programmen die das transparent gemacht haben …

  22. #22 PDP10
    25. Februar 2015

    @Alderamin:

    Nachtrag:

    Das war in der zweiten Hälfte der Neunziger, als die T3E da angeschafft wurde … da gabs auch schon PCs mit ein paar Hundert MB Speicher …. der, den ich mir 2000 aus Einzelteilen selber zusammen gebaut hab, hatte dann auch schon unglaubliche 1GB RAM … 🙂

  23. #23 Hans
    25. Februar 2015

    @PDP10:

    die Fliesspunktarithmetik “von Hand” bauen

    Äh, ja. Das war ja das Kopfzerbrechende daran … 🙂

    Hm… – aber da gibt’s doch Bücher dafür. – Die gab es damals doch sicher auch schon. – Okay, wahrscheinlich nur auf Englisch und man musste sie suchen, aber ich kann mir nur schwer vorstellen, dass es keine gab.

    @Hans:

    Nachtrag:

    Und ich habe heute völlig vergessen, wie das geht und möchte mich da auch nie wieder mit beschäftigen müssen … War das ein Schei….

    Okay, jedem das Seine. – Aber mir fällt dazu jetzt gerade noch dieses Buch ein:
    Systemprogrammierung für AVR-Mikrocontroller: Interrupts, Multitasking, Fließkommaarithmetik und Zufallszahlen von Manfred Schwabl-Schmidt.
    Dazu liesst man in der Beschreibung:

    Der zweite Teil des Buches ist der Numerik gewidmet. Höhepunkt ist die Implementierung einer AVR-freundlichen Fließkommaarithmetik, die dennoch den Standard IEEE 754 soweit umsetzt, wie das bei den kleinen AVR-Prozessoren sinnvoll erscheint.

    Und in einer der 3 Rezi’s beim “grossen A” heisst es:

    Die Kapitel mit Fließkomma (3 Kapitel!) enthalten die gründlichste Analyse des IEEE-Standards die ich je zu Gesicht bekommen habe. Ich bin nicht alle IEEE-Implementierungen durchgegangen, aber was ich gesehen habe, hat mich doch in Erstaunen versetzt. Wenn man wie ich vom Standard nur die Bitstruktur der Zahlen kannte (viele andere Bücher gehen kaum darüber hinaus) muß man sich auf trickreiches Programmieren gefaßt machen.

    Also das würde mich wirklich noch interessieren, zumal auf den tiny-Versionen der AVR-Controller. Ob ich da immer alles verstehen würde, ist ‘ne andere Frage, aber allein dass ist für mich schon ein Grund, das Buch, bzw. die ganze Reihe von Herrn Schwabl-Schmidt auf meinen virtuellen Wunschzettel zu setzen.

    Ich war ja im Studium wirklich happy, als in der DV-Vorlesung (DatenVerarbeitung) das interne Format von Fliesspunktzahlen behandelt wurde. Das ging zwar auch nicht über die Beschreibung der Bitstruktur hinaus, aber es wurde erklärt, wie man von der ASCII-Darstellung einer Fliesspunktzahl zu ihrer Bitdarstellung kommt und anders herum. Ich fand das damals (und auch heute noch) sehr faszinierend. (Übrigens war das auch nicht das IEEE-754-Format, sondern das Digital-eigene Format der PDP-11; das unterscheidet sich aber auch nur dadurch, wie man die Mantisse “normalisiert”, also wie man das Komma setzt. Aber lassen wir das.)

    Ach ja, @Alderamin; #5:
    Das ist wahrscheinlich die mit Abstand beste Erklärung, die ich bisher gelesen habe. – Mich haben die Bilder in den 80ern ja auch sehr fasziniert, aber die Mathematik zur Berechnung hab ich damals zumindest nicht begriffen. Dazu folgende Anekdote: Im Rahmen des Kunstunterrichts in der 12. Klasse haben wir unsere Schule verschönert und an diversen Stellen in den Fluren Bilder an die Wand gemalt. Ich hab mit einem Kollegen die Wand neben der Tür zum Informatikraum dekoriert, indem wir dort ein Bild eines Pythagoras-Baumes hingemalt haben. Im begleitenden Text, der aber (zum Glück!) nie aufgehängt wurde, hab ich geschrieben, dass die quadratische Gleichung in der Form ax^2 + bx + c = 0 mit zu den einfachsten gehört, die mit Fraktalen zu tun hätten. – Das war natürlich ziemlicher Blödsinn, aber das war mir damals noch nicht klar. :-/

  24. #24 Hans
    26. Februar 2015

    @Alderamin, #14

    @PDP10

    So ab 16 CPUs konnte man dann in quasi Echtzeit in die Mandelbrotmenge reinzoomen …

    Das Tolle ist, das kannst Du jetzt auf Deinem PC zu Hause.

    WOW!!! – Das Programm ist echt genial!
    Interessant daran ist auch, dass er die Rechenleistung angibt – Ich komme da bei meinem Rechner auf etwas über 14 GFlops. Und die CPU ist auch nicht mehr die neuste. Aber davon konnte man in den 80ern (und auch noch in den 90ern) natürlich nur Träumen…

  25. #25 Franz
    26. Februar 2015

    @PDP10
    @Alderamin
    Ich hatte das Ding mal auf meiner Brotkiste (C64) zum Laufen gebracht. Da konnte man zusehen wie das Ding ein Pixel nach dem anderen auf den Bildschirm ‘poke’te.

    @Hans
    Der C64 hatte ein knappes MIP, war aber eine geile RISC-Architektur mit fast ausschließlich SIngletakt Befehlen. Da werkelte ein 8085 (der Urahn der Intel Chips) noch mit 4-16 Takten pro Befehl.

  26. #26 Krypto
    26. Februar 2015

    @Hans:
    Das c´t-Apfelmännchen von Andreas Stiller aus dem Heise-Verlag war jahrelang eine beliebte Performance-Test-Software…

  27. #27 Alderamin
    26. Februar 2015

    @Hans

    Hm… – aber da gibt’s doch Bücher dafür. – Die gab es damals doch sicher auch schon. –

    Assembler ist fummelig. Ich hab’ mal eine Weile mit 6502 gearbeitet (die CPU vom Apple ][ und dem Commodore PET) , der konnte nicht einmal multiplizieren, das musste man alles von Hand machen, wie man das auf dem Papier macht, schieben und addieren. Ganz neidisch war ich damals auf den 6809 (Vorgänger der 68000er-Reihe), der einen MUL-Befehl hatte. 🙁 Hach, 68000er war das Paradies, und viel einfacher als 8086er Assembler. Der sich leider durchgesetzt hat. Aber wer programmiert heute noch Assembler?

  28. #28 Franz
    26. Februar 2015

    @Alderamin
    Die zum 6502 vergleichbaren Prozessoren Z80 und 8085 konnten auch nicht viel mehr und schon gar nicht multiplizieren.

  29. #29 Krypto
    26. Februar 2015

    Dafür gab´s “mathematische Co-Prozessoren” 🙂
    Wer ein wenig Taschengeld über hatte, konnte den meistens vorhandenen, entsprechenden Sockel auf dem Mainboard füllen.
    Ich habe damals viel mit Assembler-Inlines gearbeitet:
    Performance-kritische Funktionen als Assembler-Code in einer höheren Programmiersprache einbetten.
    Heutzutage gibt´s Performance satt, sodass man bestenfalls noch auf optimierte Compiler setzen muss.

  30. #30 Hans
    26. Februar 2015

    #25 Franz

    @Hans
    Der C64 hatte ein knappes MIP, war aber eine geile RISC-Architektur mit fast ausschließlich SIngletakt Befehlen. Da werkelte ein 8085 (der Urahn der Intel Chips) noch mit 4-16 Takten pro Befehl.

    Äh, da vertust Du Dich jetzt aber. Im C64 werkelte ein 6510, der ein leicht modifizierter 6502 war bzw. ist, vom Befehlssatz aber identisch. Und das war auch keine RISC sondern eine CISC-Architektur. Nur halt noch nicht so Aufwändg. Und die Ausführungszeit der Befehle lag zwischen 2 und 7 Taktzyklen, u.a. abhängig von der Adressierungsart.

    #27 Alderamin

    @Hans

    Hm… – aber da gibt’s doch Bücher dafür. – Die gab es damals doch sicher auch schon. –

    Assembler ist fummelig.

    Weis ich.

    Ich hab’ mal eine Weile mit 6502 gearbeitet (die CPU vom Apple ][ und dem Commodore PET) , der konnte nicht einmal multiplizieren, das musste man alles von Hand machen, wie man das auf dem Papier macht, schieben und addieren.

    Ich hatte (bzw. hab ihn immer noch) einen C-128, der auch mit einem leicht modifizierten 6502 arbeitet, – ein 8502 genauer gesagt, den man auch mit 2MHz takten konnte. Auf der Kiste hab ich auch Assembler gelernt, von daher weis ich, dass man für Multiplikation und weitere höhere Mathematik eigene Unterprogramme schreiben musste. In den meissten Assemblerbüchern zu den Rechnern (jedenfalls denen, die ich kenne) stand (steht) auch drin, wie man das mit Integerzahlen macht. Für Fliesspunktzahlen benutz(t)en die dann meisst Routinen des Basicinterpreters, weshalb dessen Handhabung darin auch erklärt wurde.
    Zur IEEE 754 weis ich jetzt gerade nicht, wie ausführlich die darin erwähnt wird. Aber wahrscheinlich nur selten, weil sie zu der Zeit noch in der Entstehung war und unterschiedliche Fliesspunktformate üblich waren.

    Ganz neidisch war ich damals auf den 6809 (Vorgänger der 68000er-Reihe), der einen MUL-Befehl hatte. 🙁 Hach, 68000er war das Paradies, und viel einfacher als 8086er Assembler. Der sich leider durchgesetzt hat.

    Ja leider. – Obwohl der ja jetzt auch Konkurenz vom ARM-Assembler bekommt, aber davon hab ich keine Ahnung. Und 68000er Assembler hab ich auch nie gelernt, weil ich zu der Zeit keinen Rechner mit dem Prozessor hatte. 🙁 Und ob es sich heute noch lohnt, diesen zu lernen, weis ich nicht. Wahrscheinlich nur dann, wenn man mit Microcontrollern von Motorola bzw. FreeScale arbeitet. Weis da jemand mehr drüber?

    Aber wer programmiert heute noch Assembler?

    Oh, bei dem Fraktalprogramm, dass Du oben verlinkt hasst, sind die wesentlichen Rechenroutinen auch in Assembler verfasst. Der Autor geht sogar soweit, dass er am Anfang einen CPUID-Befehl ausführt und anhand der Ergebnisse überprüft, ob der Prozessor SSE bzw. SSE2 kann und hat sie dann jeweils für Intel und AMD-CPUs separat darin – also insgesamt 4 mal in Assembler. Und eine unoptimierte Version in C, falls die CPU Erweiterungen nicht vorliegen. (Da kann dann der Compiler optimieren… )

  31. #31 Hans
    26. Februar 2015

    Hm… seltsam. – Mein letzter Kommentar ist schon wieder irgendwo hängen geblieben, ohne das es ein Zeichen davon gab. Er steht hier nicht mal als in Moderation befindlich, sondern ist nach dem abschicken einfach verschwunden…

  32. #32 kidoai
    Hamburg
    26. Februar 2015

    Hi Leute:-)
    Könnte mann das so verstehen das eine bestimmte Zahl eine bestimmte Form hat, diese sich durch multiplizieren nicht verändert?
    Wan ja, warum haben dan manche Zahlen eine Form und andere nicht?
    Den nicht jeder Zahl ist dafür geeignet.

  33. #33 Florian Freistetter
    26. Februar 2015

    @kidoai: Ich weiß nicht genau, was du meinst. Mit der “Form” von Zahlen hat das aber alles nichts zu tun…

  34. #34 Alderamin
    26. Februar 2015

    @Hans

    Oh, bei dem Fraktalprogramm, dass Du oben verlinkt hasst, sind die wesentlichen Rechenroutinen auch in Assembler verfasst.

    Klar, der will ja die maximal mögliche Leistung herauskitzeln. Aber normalerweise reicht C ja schon, um ein Programm maschinennah und flott zu schreiben. C-Compiler für Heim-PCs gab’s beim Apple ][ noch nicht, das fing’ beim Amiga erst an, da war das Betriebssystem in C geschrieben, wenn ich mich recht entsinne.

    Den Apple ][ (1 MHz, 64 K RAM) hatte ich übrigens von 1980 bis ca. 1986/87, dann einen Amiga 2000 / 7MHz / 1 MB RAM mit nachgerüstetem 68020 / 14 MHz bis ca. 1992 und danach einen Apple MacIntosh Performa 475 mit 68LC040 / 25 MHz (übertaktet auf 32 MHz) / 4 MB RAM. So um die Jahrtausendwende bin ich dann auf PC umgestiegen, selbst zusammengesteckter Rechner mit Asus-P4-Motherboard und Pentium 4 / 1,8 GHz / erst 512 MB, dann 1 GB RAM. Seit 5 1/2 Jahren tickert im selben Gehäuse eine Core 2 Quad CPU mit 2,8 GHz auf Asus P5Q-E Motherboard und erst 2, jetzt 4 GB RAM.

    Wäre bald mal wieder Zeit für Herrn Moore.

  35. #35 Hans
    27. Februar 2015

    Klar, der will ja die maximal mögliche Leistung herauskitzeln.

    Ja eben, und das geht nach wie vor am besten in Assembler. Voraus gesetzt, man kann auch richtig in Assembler programmiern, was ja anscheinend auch nicht mehr so häufig vorkommt.

    Aber normalerweise reicht C ja schon, um ein Programm maschinennah und flott zu schreiben.

    Ja, in den meissten Fällen schon.

    C-Compiler für Heim-PCs gab’s beim Apple ][ noch nicht, das fing’ beim Amiga erst an, da war das Betriebssystem in C geschrieben, wenn ich mich recht entsinne.

    Ja, ich glaube ich hab da auch mal was in der Richtung gelesen. – Also das das Amiga OS in C geschrieben wurde. Beim Apple ][ war das ja alles noch in Assembler geschrieben.
    Appropos C: Es gab da so ab Mitte der 80er etwa ein tolles Buch bei Markt und Technik, das den unscheinbaren Titel “C-Tools” trug. Das hatte ich mal aus einer Bibliothek ausgeliehen und war davon sehr fasziniert. Als ich dann zu Anfang der 90er in einer Buchhandlung zufällig noch ein Exemplar davon entdeckt habe, hab ich es gleich gekauft. Da war nämlich ein C-Compiler und noch so diverse andere nützliche Programme zum abtippen drin. Eine Weile hatte ich echt mal vor gehabt, den Compiler aus dem Buch vom 8080/Z80 auf den 6502 zu portieren. Da ist allerdings nie was draus geworden, zumal mir das Buch später auch noch geklaut wurde. – Natürlich, bevor ich die Compiler-Source Codes abgetippt hatte.
    Es war eine zusammenfassende und überarbeitete Sammlung von Beiträgen aus dem Dr. Dobbs Journal und von denen auch ursprünglich heraus gegeben. Der Compiler nannte sich Small-C, da er nicht alle Möglichkeiten von C umsetzte, und einen Standard sowieso nicht, denn den gab es noch nicht.

    Was meine Rechner angeht: Ich hab mit dem C-128 irgendwann um 1986/87 herum angefangen. Dann kam 1990 der erste PC: ein 286er mit 1 MB RAM, später mal auf 2 MB aufgerüstet. Noch später flog das 286er Board heraus und wurde durch ein 486er Board ersetzt, das ich Schrittweise bis auf 40 MB RAM aufgerüstet habe; -Taktfrequenz weis ich nicht mehr.. Darauf lief neben DOS hauptsächlich OS/2 Warp 3. Ende der 90er hab ich das 486er Board durch ein Neues ersetzt, auf dem ein AMD K6-II mit 300 MHz und max. 192 MB RAM werkelt. Alles im selben Gehäuse. Der lief insgesamt ca. 12 Jahre, zuletzt unter Win2K. Und seit 2 1/2 Jahren hab ich einen AMD Athlon 64 Dual Core mit 2,7 GHz und 2 GB RAM.
    Einen Amiga 2000 (oder 3000 oder 4000) hätte ich ja auch gerne gehabt, konnte ihn mir aber nicht leisten. Später hab ich den Acorn RISC-PC entdeckt, den ich mir gerne als Zweitrechner neben dem PC gestellt hätte, aber daraus wurde auch nix.

    Also Moore ist bei mir nicht. :mrgreen:

  36. #36 Zorro
    27. Februar 2015

    Zum eigentlichen Thema habe ich noch weitere interessante Aspekte gefunden, zunächst mal eine wirklich gute Zusammenfassung mit viel Mathematik.

    Ein Hinweis auf ARTUR AVILA und eine umfangreiche Quelle über weitere Papers der chaotischen fraktalen Phänomene, sowie eine kleine fraktale Spielwiese für interaktive Experimente.

    Falls man fraktale Videos herstellen möchte, oder extrem grosse fraktale Bilder dann hilft hier ein professionelles Fraktalprogramm: Ultra Fractal v5.04 (30 Tage Testzeit)

    Durch tagelanges interaktives herumspielen habe ich innerhalb des Apfelmännchens jenen Bereich ausgelotet, der (falls ich mich nicht geirrt habe!) alle Primzahlen beinhaltet, nur leider auch alle Vielfache davon sowie alle Pseudoprimzahlen.

    Tipp: Bei Plot, rechts oben auf “Escape time image” umschalten, dann erhält man vmtl. die Insel der Seligen. 🙂

  37. #37 Kidoai
    Hamburg
    27. Februar 2015

    @ Florian

    Ich habe aus folgender Überlegung gefragt. Diese ist ein wenig diffus , aber ich mag mich quälen;-)
    Also angenommen der klügste Mann der Welt, Daniel Tammet,
    hat recht – seine Behauptung das jeder einzelne Zahl seine eigene Form hat..
    Also, da Fraktale überal in der Welt vorkommen -als ob die Welt auf diese Grundlage erschafen worden ist.
    Frage ich mich ob die Fraktale Berechnungen sind die die Welt erschaffen.
    Dahinter steht noch ein wenig mehr dennoch alles sehr diffuses Zeug das ich wahrscheinlich nur verstehe;-)

    Also könnte es sein, das jeder Zahl eine eigen Form hat?

    Da gibt es noch zusätzlich die Idee das die String Theorie auch eine Rolle spielt.

  38. #38 Krypto
    27. Februar 2015

    @Kidoai:

    Diese ist ein wenig diffus , aber ich mag mich quälen;-)

    Ich befürchte eher, Du magst uns quälen 😉

  39. #39 Florian Freistetter
    27. Februar 2015

    @Kidoai: “lso angenommen der klügste Mann der Welt, Daniel Tammet,
    hat recht – seine Behauptung das jeder einzelne Zahl seine eigene Form hat..”

    Also ich weiß nicht, wieso Tammet der klügste Mann der Welt sein soll? Klug ist er sicher, aber gleich der Klügste? Und soweit ich das verstanden habe, stellt er sich nur vor, das Zahlen eine Form haben. Genau so wie es viele Leute gibt, in deren Vorstellung Zahlen eine Farbe haben. Wenn die sich zum Beispiel die Zahl “4” vorstellen, ist die grün; die Zahl “2” ist rot und so weiter. Aber das heißt nicht, dass Zahlen WIRKLICH eine Farbe haben. Oder eine Form. Was soll das denn KONKRET bedeuten? WAS ist es, dass da eine Form haben soll? Eine Zahl ist ein abstraktes Konzept, kein reales, stoffliches Ding.

  40. #40 Celia
    27. Februar 2015

    Nette Doku zu dem Thema:

  41. #41 Zorro
    27. Februar 2015

    @Kidoai / #37

    Eine rein technische Zuordnung der Zahlenwerte zu den Farben gibt es bei Widerständen, die gleichen Farbzuordnungen könnte man sinnvollerweise auch gleich für Fraktale verwenden,… oder z.B. hier würde es bestimmt auch viel besser aussehen.

    P.S.: In einer philosophischen Betrachtung der Zahlen gibt es so etwas, was Du vmtl. suchst. 😉

  42. #42 JoselB
    27. Februar 2015

    @Florian Freistetter #7: Da hab ich mich wohl verlesen. Ich meinte, dass die zu addierende Zahl (=c) für die Zugehörigkeit zur Mandelbrotmenge bestimmend ist und nicht der Anfangswert (=x0), der für Mandelbrot anders als bei Julia-Mengen eigentlich egal ist. Wobei bei einem Anfangswert von x0=0 (laut Wikipedia) folgt, dass x1=c. Du hast diese Iteration ausgelassen und gleich mit x0=c gestartet, was ja genauso korrekt ist. Mein Fehler war, dass ich genau das übelesen hatte und von einen zufälligen Wert für c ausgegangen bin. Kommt vom gleichzeitig arbeiten und lesen. Sorry

  43. #43 JoselB
    27. Februar 2015

    @Florian, @Alderamin #9: Genau das war mein Verhängnis. Man sollte vielleicht erst die restlichen Kommentare lesen, dann kann man sich ellenlange Erklärungen sparen.

    #39: “Wenn die sich zum Beispiel die Zahl “4″ vorstellen, ist die grün; die Zahl “2″ ist rot und so weiter. Aber das heißt nicht, dass Zahlen WIRKLICH eine Farbe haben.

    Da dass genau auf mich zutrifft, könnt ich jetzt annehmen, dass diese Farben für Zahlen eben doch universell sind. Wobei es mit Sicherheit genügend Menschen gibt, die mir wiedersprechen würden und zum Beispiel genau das Gegenteil behaupten.

  44. #44 Kidoai
    Hanburg
    28. Februar 2015

    @Florian
    Das Tammet ” der klügste Mann der Welt ” sei, ist nicht wörtlich gemeint. Um das zu seine dürfte sein Wissen ein parr mehr Ar’s besetzen.
    Es ging mir ncht darum um die Zahl selbst, sondern die Mänge die eine Zahl darstellt.
    Daraus entstehn so viele Fragen, wie..
    Wen es Mänge gibt, diese eine Form hat, man sie Multipliziert und man bekommt wieder das gleiche Musster, warum..
    Aber ich denke das ich tatsächlich noch ein wenig nachdenken sollte.
    Vielleicht bekomme ich die Frage besser formuliert;-)
    Ich melde mich dan wieder ( werde versuchen sachlich zu bleiben um dich nicht in wahnsin zu treiben;-)
    Danke!

  45. #45 Kidoai
    Hamburg
    28. Februar 2015

    @Zoro

    Danke für. ” so etwas”, da werde ich mich reinstürzen:-):-)

  46. #46 Karl Mistelberger
    2. März 2015

    > #5 Alderamin, 25. Februar 2015
    > Zu meiner Studienzeit in der 2. Hälfte der 80er waren diese Mandelbrot-Bilder gerade der absolute Hype und unsere armen Apples, Ataris und Amigas mit ihren paar-MHz-CPUs und paar-kByte-Speichern mussten nächtelang ackern, damit wir mit den Bildern angeben konnten.

    Als Ingenieur sah ich damals die Sache etwas nüchterner: Apple, Atari und Amiga waren aus meiner Sicht ziemlicher Overkill und zum Fenster rausgeworfenes Geld. Ein paar Zeilen ins serielle Terminal gehackt waren zudem wesentlich bequemer: http://www.nefkom.net/charlemagne/mandel.jpeg
    Am nächsten Tag landete die fertige Tapete (2×2 Meter) mit der Hauspost im Eingangskorb.

    Auf einen richtigen PC konnte ich noch ein paar Jahre warten: https://karlmistelberger.wordpress.com/1991/01/25/entwicklung-der-hardware-meines-pc/

  47. #47 Psyclash
    12. März 2015

    Ende 4. Absatz
    “…, dann ist die Zahl mit die du gewählt hast, Teil der Mandelbrot-Menge …”

    Vermischung aus “die Zahl, die du gewählt hast” und “die Zahl mit der du begonnen hast”?

    (Diesen Kommentar dann löschen.)