Diskussion:Mandelbrot-Menge

Letzter Kommentar: vor 13 Tagen von Majow in Abschnitt Kürzungen am Artikel notwendig
Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „Mandelbrot-Menge“ zu besprechen. Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf Abschnitt hinzufügen, um ein neues Diskussionsthema zu beginnen.
Archiv
Wie wird ein Archiv angelegt?

Keine Quellen für Programmierbeispiele

Bearbeiten

Die Programmierbeispiele sind nicht mit Quellenangaben versehen, handelt es sich hier um Originial Research ("Theoriefindung")? Falls ja, würde ich sie zeitnah entfernen, damit die Seite regelkonform wird. --2A01:C22:A8E6:D000:34B6:376C:4396:AEE4 23:21, 26. Aug. 2024 (CEST)Beantworten

Zwei Programmbeispiele habe ich entfernt, weil ich sie selbst programmiert habe und daher weiß, dass es keine Quellen für sie gibt. Über die anderen Programmbeispiele habe ich keine Informationen, deshalb lasse ich sie so, wie sie sind. --Majow (Diskussion) 23:32, 31. Aug. 2024 (CEST)Beantworten
@2A01:C22:A8E6:D000:34B6:376C:4396:AEE4 --Janosch2411 (Diskussion) 19:36, 21. Sep. 2024 (CEST)Beantworten

Ich habe die Programmbeispiele entfernt, vgl. den Abschnitt #Kürzungen am Artikel notwendig. --Majow (Diskussion) 08:50, 27. Okt. 2024 (CET)Beantworten

Alte Benchmark-Tabelle entfernt

Bearbeiten

...die gehört nicht in ein Lexikon, zudem handelte es sich hier um Original Research und Theoriefindung.

Sollten sich Mandelbrot-Benchmarks in der Literatur finden, kann ja darauf verwiesen werden. Ich vermute aber, dass das zu irrelevant ist.

Leider sind enthusiastische Wikipedianer jahrelang übers Ziel eines Lexikons hinausgeschossen, das müssen wir jetzt mühsam aussortieren. Danke für Eure Kooperation und Unterstützung.

--2A01:C22:A8E6:D000:34B6:376C:4396:AEE4 23:30, 26. Aug. 2024 (CEST)Beantworten

@2A01:C22:A8E6:D000:34B6:376C:4396:AEE4 vor dem eigenmächtigen entfernen, bitte etwas abwarten, ob dir andere bei deiner Einschätzung der Relevanz zustimmen. --Gerhardbeck (Diskussion) 23:35, 26. Aug. 2024 (CEST)Beantworten
Die Einschätzung des Benchmark-Abschnitts als WP:OR ergibt sich aus den Anmerkungen zu den Benchmarks (z.B. "selbgeschriebener Assemblercode") und dem Fehlen von Quellen - trifft also zu. Entfernen von Theoriefindung bedarf m.W. nicht der der vorherigen Diskussion. Gruß, --Burkhard (Diskussion) 08:54, 27. Aug. 2024 (CEST)Beantworten
Ich finde diese Tabelle interessant, weil der Geschwindigkeitsunterschied zwischen 1987 und 2015 so groß ist. Ich fände es schade, wenn sie entfernt würde. --Majow (Diskussion) 23:52, 31. Aug. 2024 (CEST)TBeantworten
Abgesehen davon, dass es sich dabei - wie bereits gesagt - um "Original Research" handelt, hat sie im Grunde kaum mit der Mandelbrot-Menge zu tun, ähnliche Tabellen liessen sich für zahlreiche andere rechenintensive Probleme zusammenstellen. Dass ein prähistorischer Z80 mit 8-Bit Wortbreite um Größenordnungen langsamer rechnet als ein Xeon mit mehreren Kernen, zwei20tausendfacher Taktrate, Floatingpoint-Hardware und SIMD-Einheit - ist trivial - und gehört vielleicht in die Geschichte der Computerei oder in den Benchmark-Artikel. --Burkhard (Diskussion) 01:29, 1. Sep. 2024 (CEST)Beantworten
Das ist natürlich richtig. --Majow (Diskussion) 01:54, 1. Sep. 2024 (CEST)Beantworten
Überzeugend: weg damit! --Rudolf.l.s (Diskussion) 09:51, 1. Sep. 2024 (CEST)Beantworten
Dennoch scheint die Mandelbrot-Menge ein beliebter Benchmarktest zu sein:
[1]https://www.bernd-leitenberger.de/fractale.shtml
[2]https://dailypapert.com/constructionism2010/P_Boytchev2.pdf --Majow (Diskussion) 15:18, 1. Sep. 2024 (CEST)Beantworten

Kürzungen am Artikel notwendig

Bearbeiten

Aus meiner Sicht waren Kürzungen im Artikel notwendig. Ich hatte in den letzten Tagen einige Kürzungen vorgenommen, für die ich heftig kritisiert und aufgefordert wurde, sie rückgängig zu machen.

Aber der Artikel war vollgestopft mit Details, die das Lesen und Verstehen unnötig erschwerten. Meiner Meinung nach sollten solche Details in Wikibooks ausgelagert werden.

Das betraf die Programmbeispiele, für die es glücklicherweise ein sehr gutes Wikibook gibt (man findet es bei den Weblinks), die Bildergalerien, die über den Artikel verstreut waren und die ich nur leicht gekürzt habe, den Abschnitt über die Dichteverteilung, für den ich eine sehr gute und knappe Darstellung rekonstruieren konnte, und meine eigenen Beiträge im Abschnitt Praktische Berechnung, die ich ebenfalls stark gekürzt habe.

Mit dieser Detailfülle wäre der Artikel nie in die Liste der lesenswerten Artikel aufgenommen worden. Ich bin dankbar für Rückmeldungen, denn ich halte die anonyme Bemerkung für richtig, dass hier über das Ziel eines Lexikons hinausgeschossen wurde.

Entfernung der Programmbeispiele: Ich habe die Programmbeispiele entfernt, und zwar aus den folgenden Gründen:

1. Die ersten beiden Programmbeispiele werden analog in dem ausführlichen Wikibook Das Apfelmännchen beschrieben. Das Wikibook ist an dritter Position in den Weblinks aufgeführt.

2. Das dritte Programmbeispiel demonstriert, wie der Index des Folgenglieds mit dem kleinsten Abstand zum Ursprung durch Zählen ermittelt wird. Es ist somit eine Realisierung eines einfachen arg min-Operators, der in einigen Programmiersprachen schon vorhanden ist, z. B. numpy.argmin. Das eigentliche Thema wird ausführlich im Abschnitt Die kreisförmigen Strukturen erläutert, wobei es dort genauer um die Periodizität des Grenzzyklus geht, und nicht um den Index, bei dem   minimal ist. An den Grafiken erkennt man auch, dass es nicht dasselbe ist.

3. Das vierte Programmbeispiel behandelt die Möglichkeit, die Mandelbrot-Menge ohne einen Computer zeichnerisch zu ermitteln. Dieser Prozess wird von Norbert Treitz in der Zeitschrift Spektrum der Wissenschaft erklärt, und der Artikel Mandelbrots Apfelmännchen ist auch in den Weblinks verlinkt. Das Programmbeispiel macht jetzt aus dieser geometrischen Möglichkeit wieder ein Computerprogramm und bildet dabei trigonometrische Funktionen nach. Dabei gibt es zwei Freiheiten, nämlich die Wahl des Ursprungs Null und der Einheit Eins (im Programmbeispiel Imaginärpunkt genannt). Das führt dazu, dass die Mandelbrot-Menge - aus dem anderen Koordinatensystem mit fixer Null und Eins heraus betrachtet, welches zur Beschreibung des neuen Ursprungs und der neuen Einheit benötigt wird - verschoben, gedreht und gestreckt oder gestaucht erscheint, je nachdem, wie der Ursprung und die Einheit gewählt wurden. So eine Verschiebung und Drehstreckung lässt sich aber ohne Trigonometrie viel einfacher erreichen: Eine Verschiebung erreicht man durch Addition, eine Drehstreckung durch Multiplikation mit einer komplexen Zahl. Im Prinzip macht das Programm aus der Iteration   eine äquivalente Iteration   mit einem Streckungsfaktor   und einer Drehmatrix   Daneben gibt es noch eine zweite Drehmatrix, weil ja die ganze Mandelbrotmenge durch die Wahl einer neuen Einheit (des Imaginärpunkts) einer Drehstreckung unterzogen wird. Von der Äquivalenz der Darstellungen kann man sich hier bei Google Colab selbst überzeugen.

Erklärung nach einer kürzlichen Vandalismusmeldung: Da es nach meiner Kürzung bei der Dichteverteilung eine Vandalismusmeldung gab, möchte ich kurz erklären, warum ich sie für notwendig halte. Dazu habe ich hier nochmal beide Fassungen im Vergleich aufgeführt:

Ältere und nun wiederhergestellte Fassung Neuere und nun ersetzte Fassung
Dichteverteilung der Folgenglieder
 
Akkumulierte Dichteverteilung der Folgenglieder für alle c-Werte in einer farbkodierten Darstellung

Das nebenstehende Bild zeigt in der komplexen Ebene die Dichteverteilung der Folgenglieder, die sich durch Auswertung von 60 Millionen Folgen ergibt, wobei die Helligkeit ein Maß dafür ist, wie viele Orbitale durch den Punkt verlaufen. Blaue Bereiche kennzeichnen Folgenglieder mit kleinem Index, während eine gelbliche Färbung Folgenglieder mit hohen Indizes anzeigt. Folgen aus der großen Kardioide der Mandelbrot-Menge tendieren zu einer Konvergenz zu einem  -Wert auf einem Kreis um den Ursprung, der als runder Bereich mit sehr hoher Dichte zu erkennen ist. Die kleineren Gebilde nahe der imaginären Achse markieren die konjugierten Bereiche, zwischen denen Folgenglieder vieler Folgen hin und her springen (Annäherung an einen Grenzzyklus mit der Periode 2 für große Folgenindizes).

Dichteverteilung der Folgenglieder
Akkumulierte Dichteverteilung der Folgenglieder für alle  -Werte in einer farbkodierten Darstellung
 
Orbit-Bild
 
Orbit-Ursprung im Satelliten (S)
 
Abbild 1 des Orbits
 
Abbild 2 des Orbits
 
Abbild 3 des Orbits

Das nebenstehende Bild zeigt, wie oft ein Bildpunkt von einem Zwischenergebnis aller Iterationen getroffen wird. Im Bereich von   wird jedes Pixel mindestens einmal getroffen und aufsummiert. Innerhalb der   können bei diesem Bild Werte bis zu 30000 auftreten. Bei einem Kontrast von 1:30000 kann man jedoch Feinheiten im  -Rand nicht mehr leicht erkennen. Bei Blende bis 1000 sind Strukturen zu erkennen, die am äußersten Rand der   liegen. Diese sind erzeugt durch die Zwischenergebnisse der periodischen Iterationen von Satelliten-Mengen. Diese Orte werden im Film mit einem grünen Pfeil gezeigt. Einer dieser Orte soll im nächsten Orbit-Bild näher dokumentiert werden.

Im Orbit-Bild wurden alle Iterationsergebnisse herausgefiltert, die nicht im Auswahlbereich bei Punkt 1 enthalten sind. So ist erkennbar, dass diese Orbits von einem Satelliten der Periode 3 ausgehen (Punkt S). In den nächsten Bildern sind diese vier Orbit-Aufsummierungen gezoomt gezeigt. Dieses Beispiel gilt für alle Satelliten. Für die meisten Satelliten ist jedoch ein viel höheres Iterationslimit nötig (hier nur 100). Dadurch steigt der erzeugte Kontrast erheblich, womit solche Feinheiten immer schlechter zu zeigen sind.

Version bis 22. Mai 2021, 11:26 Uhr Version ab 22. Mai 2021, 11:26 Uhr

Die ältere Version enthält ein gutes Bild und erklärt kurz, aber verständlich, was es bedeutet. Die auffallend hellen Bereiche mit hoher Dichteverteilung werden besprochen und die Farben können leicht den Dichten zugeordnet werden.

Die neuere Version ersetzt das eine gute Bild durch zwölf (!) weniger gute Bilder, wobei nicht einmal mehr die Farben den Dichten zugeordnet werden können. Sieben Bilder sind in einer Animation versteckt: Es ist eigentlich nur ein Bild, das mit verschiedenen Iterationszahlen siebenmal neu berechnet wird. In der Animation wird dies als Blende n bezeichnet, da eine Neuberechnung mit kleineren Iterationszahlen durch die Funktion   technisch vermeidbar ist.

Das Vorschaubild der Animation mit Blende 5000 ist falsch, da es sich um eine Kopie des Bildes mit Blende 30000 handelt, die wahrscheinlich eingefügt wurde, um die Vorschau besser aussehen zu lassen.

Natürlich kann man bei kleineren Iterationszahlen Details erkennen, die bei größeren Iterationszahlen immer mehr verschwimmen. Es ist aber nicht notwendig, diese durch Pfeile in einer Animation hervorzuheben und durch ein langes Beispiel, in dem ein konkreter Zwischenzyklus näher betrachtet wird, ausführlich zu erläutern. Das trägt meines Erachtens nicht wirklich zum Verständnis bei. Stattdessen sollte kurz erklärt werden, was auffällig ist, und nicht ausgiebig diskutiert werden, was nur ein Fachmann erkennen kann. Solche "Details für Experten" sollten in ein entsprechendes Wikibook ausgelagert werden.

Wer meint, man müsse alle Details erklären, sollte einen Blick auf Mu-Ency - The Encyclopedia of the Mandelbrot Set werfen. Gerade zur Mandelbrot-Menge gibt es so viele Details, dass man dafür eine eigene Enzyklopädie braucht. --Majow (Diskussion) 14:29, 3. Nov. 2024 (CET)Beantworten

Missverständnis bei Dichteverteilung und Buddhabrot

Bearbeiten
 
Das wurde aus der Dichte­verteilung herausgefiltert
 
Das ist von der Dichte­verteilung übrig geblieben

In der Versionsgeschichte des Artikels bin ich auf ein Missverständnis gestoßen, und zwar auf die Annahme, die Buddhabrot sei nur ein Zufallsprozess. Das ist falsch, denn die Buddhabrot entsteht völlig deterministisch, es ist kein Zufallsprozess notwendig. Sie ist einfach eine Dichteverteilung, bei der man nur diejenigen Punkte betrachtet, für die die Mandelbrotfolge bestimmt divergiert. Alle Punkte, die nicht divergieren, filtert man zuvor heraus. Weil auf diese Weise viele Punkt aus dem Punktegitter verschwinden, muss man ein ein sehr dichtes Punktegitter verwenden, um ein gutes Bild mit der stark reduzierten Punktmenge zu erhalten. Jetzt kommt eine Idee, die man so auch bei Path Tracing anwendet: Anstatt das Punktegitter im Voraus festzulegen, lässt man sehr viele zufällige Punkte nacheinander berechnen. Auf diese Weise wird das Bild mit der Zeit immer schärfer und nähert sich immer mehr an die (deterministische) Dichteverteilung mit einem unendlich dichten Punktegitter an. Im Prinzip wird durch einen geeigneten stochastischen Prozess das Punktegitter mit der Zeit immer dichter und das Bild der Dichteverteilung immer genauer. Man kann den Prozess dann abbrechen, wenn das Bild der Dichteverteilung gut genug ist.

Wenn man den stochastischen Prozess nicht möchte, kann man auch mit einem groben Punktegitter beginnen und es schrittweise immer weiter verfeinern. Da dadurch die zu berechnende Punktemenge mindestens quadratisch anwächst, dauert die Berechnung jeder weiteren Verfeinerung immer länger. Verdoppelt man einfach die Punktedichte bei jeder Verfeinerung, so handelt es sich sogar um exponentielles Wachstum. An dieser Stelle muss man sich dann überlegen, wie man diesen Prozess so gestalten kann, dass er jederzeit abgebrochen werden kann, ohne das Bild dabei wesentlich zu verfälschen. Dann ist es viel einfacher, entweder im Voraus ein ausreichend dichtes Punktegitter zu wählen, oder noch einfacher, gar kein Punktegitter festzulegen und einen geeigneten stochastischen Prozess zu wählen, den man jederzeit abbrechen kann. --Majow (Diskussion) 18:49, 22. Okt. 2024 (CEST)Beantworten