Buddhabrot
# Buddhabrot

Das Buddhabrot ist eine spezielle Abbildung einer Menge und eng mit der Mandelbrot-Menge verwandt.

Ihren Namen bekam die Abbildung aufgrund ihrer Ähnlichkeit mit klassischen Darstellungen des meditierenden Gautama Buddha, mit Stirnpunkt (tikka) und seinem traditionellen Haarknoten (ushnisha).

## Entdeckung

Die Methode zum Rendern des Buddhabrot wurde von Melinda Green entdeckt und später in einem Usenet-Beitrag von 1993 auf sci.fractals beschrieben.

Schon vorher waren andere Wissenschaftler der Buddhabrot-Technik sehr nahegekommen. Im Jahr 1988 gab Linas Vepstas ähnliche Bilder an Clifford Pickover weiter, der sie in seinem Buch Computer, Pattern, Chaos, and Beauty veröffentlichen sollte. Dies führte zur Entdeckung der Pickover-Stalks (Garbe (Mathematik)#Halme und Keime). Pickover und Vepstas filterten jedoch nicht die nicht-divergierenden Trajektorien heraus, was aber notwendig ist, um die geisterhaft anmutenden Bilder zu erzeugen, die stark an hinduistische Kunst erinnern.

Green nannte das Bild zuerst Ganesh, weil ein indischer Mitarbeiter in dem Bild den elefantenköpfigen Gott Ganesha erkannte.

Der Name Buddhabrot wurde später von Lori Gardi geprägt.

## Rendering-Methode

Die Mandelbrot-Menge ist die Menge der Punkte $c$ in der komplexen Ebene, für die die rekursiv definierte Folge

    $z_{n+1}={z_{n}}^{2}+c$

mit $z_{0}=0$ beschränkt bleibt, also nicht gegen unendlich divergiert.

Das Buddhabrot wird gerendert, indem zunächst ein 2-dimensionales Array von Zählern erzeugt wird, wobei jedem Pixel des Bildes ein Zähler zugeordnet wird. Die Zähler werden mit Null initialisiert. Dann werden beliebig ausgewählte Punkte $c$ durch die Mandelbrot-Funktion iteriert.

Punkte, die nach einer gewählten maximalen Anzahl von Iterationen gegen unendlich divergieren, und daher nicht zur Mandelbrot-Menge gehören, werden erneut durch die Mandelbrot-Funktion iteriert und die hinterlassene Spur in das Array eingetragen.

Nachdem eine große Anzahl von c-Werten iteriert wurde, werden Graustufen basierend auf den im Array gespeicherten Zählerständen ausgewählt. Das Ergebnis ist eine Dichteverteilung, die Regionen hervorhebt, in denen die Iterationswerte (z-Werte) auf ihrem Weg in die Unendlichkeit „die meiste Zeit verbringen“.

Das Bild kann auch als eine Wahrscheinlichkeitsverteilung angesehen werden: Für die hellen Regionen besteht eine höhere Wahrscheinlichkeit, dass Trajektorien durch die Region verlaufen, für die dunkleren Regionen eine geringere.

## Nuancen

Das Rendern einer Buddhabrot-Darstellung ist im Allgemeinen rechenintensiver als das eines gewöhnlichen Mandelbrotes. Dies ist teilweise darauf zurückzuführen, dass mehr Zufallspunkte iteriert werden müssen, als das Bild Pixel hat, um ein scharfes Bild zu generieren. Das Rendern stark vergrößerter Bereiche erfordert mehr Rechenzeit als bei gewöhnlichen Mandelbrot-Bildern, in denen ein Pixel direkt und unabhängig von der Vergrößerung berechnet werden kann. Umgekehrt kann ein Pixel in einem stark vergrößerten Bereich eines Buddhabrot durch Anfangspunkte beeinflusst werden, die weit außerhalb der eigentlich im Fokus liegenden Region liegen. Falls man nicht auf komplexere probabilistische Techniken zurückgreifen möchte, ist die Darstellung eines vergrößerten Ausschnitt aus einem Buddhabrot lediglich das Ausschneiden des gezoomten Bereichs aus einem kompletten, sehr großen Rendering.

Die gewählte Anzahl der Iterationen hat einen starken Einfluss auf das Bild – höhere Werte ergeben ein spärlicheres, kontrastreicheres Bild, weil einige wenige Punkte eine große Anzahl von Pixeln durchqueren, bevor sie gegen Unendlich divergieren, was ihre Spuren mehr hervorhebt. Innerhalb einer niedrigeren Anzahl von Iterationen würden diese Punkte nicht divergieren, folglich nicht als divergent erkannt werden und somit nicht in das Bild aufgenommen.

Green wurde später klar, dass dies eine einfache Art und Weise darstellt, Buddhabrot-Darstellungen zu färben. Dazu kombiniert man drei Graustufenbilder, die sich nur durch die maximale Anzahl der Iterationen unterscheiden, zu einem einzigen Farbbild. Die gleiche Methode wird in der Astronomie verwendet, um Falschfarbenbilder von Nebeln und anderen Himmelsobjekten zu erstellen.

Zum Beispiel könnte man ein Bild mit maximal 2000 Iterationen dem roten Kanal, ein Bild mit 200 Iterationen dem grünen Kanal und ein Bild mit 20 Iterationen dem blauen Kanal des RGB-Farbraums zuordnen und so das Farbbild generieren. Buddhabrote, die man mit dieser Technik erzeugt, werden Nebulabrot genannt.

Das Plotten der Spuren derjenigen Punkte, die bis zu einer gewählten minimalen Anzahl von Iterationen (beispielsweise 1.000 oder 1.000.000) nicht divergieren, führt zu Darstellungen, in denen unterschiedliche Bereiche des Buddhabrot im Detail besser sichtbar werden.

Eine andere Technik ist, die Spuren nur derjenigen Punkte c aufzuzeichnen, die Element der Mandelbrot-Menge sind – quasi eine Art Anti-Buddhabrot.

| max. 20 Iterationen | max. 100 Iterationen |
| - | - |
| max. 1.000 Iterationen | max. 20.000 Iterationen | max. 1.000.000 Iterationen |

## Beziehung zur logistischen Gleichung

Die Beziehung zwischen der Mandelbrot-Menge, definiert durch $z^{2}+c$, und der logistischen Gleichung $\lambda x(1-x)$ ist bekannt. Die beiden stehen in Relation durch die quadratische Transformation:

    ${\begin{aligned}c_{r}&={\frac {\lambda (2-\lambda )}{4}}\\c_{i}&=0\\z_{r}&=-{\frac {\lambda (2x-1)}{2}}\\z_{i}&=0\end{aligned}}$

Der traditionelle Weg der Darstellung dieser Beziehung ist, das Bifurkationsdiagramm der logistischen Gleichung und die Mandelbrot-Menge unter Verwendung der Transformation zwischen $c_{r}$ und $\lambda$ über einer gemeinsamen x-Achse und einer jeweils eigenen y-Achse aufzutragen.

Melinda Green entdeckte „durch Zufall“, dass das Anti-Buddhabrot die logistische Gleichung vollständig enthält. Beide Darstellungen basieren darauf, Spuren nicht-divergierender Punkte, die aus einem (beliebigen) Ausgangspunkt entspringen, auszuwerten. Die Iterationsfunktionen stehen über die oben angegebene Transformation in Beziehung. Es ist dann leicht ersichtlich, dass das Anti-Buddhabrot für $z^{2}+c$, mit $c=({\text{random}},0)$ und $z_{0}=(0,0)$, in der Ebene $\{c_{r},z_{r}\}$ das Bifurkationsdiagramm der logistischen Gleichung erzeugt, wenn man die angegebene Transformation verwendet. Für das Rendering wird $z_{0}=({\text{random}},0)$ gewählt. Zu beachten ist, dass die logistische Gleichung für alle $z_{r0}$ letztlich die gleiche Spur generiert.

Da sowohl die Mandelbrot-Menge als auch die logistische Gleichung ein integraler Bestandteil des Anti-Buddhabrot sind, kann man jetzt eine dreidimensionale Beziehung zwischen beiden aufzeigen, indem man die 3D-Achsen $\{c_{r},c_{i},z_{r}\}$ zu Hilfe nimmt. Die Animation zeigt das klassische Anti-Buddhabrot mit $c=({\text{random}},{\text{random}})$ und $z_{0}=(0,0)$, dies ist die 2D-Mandelbrot-Menge in der Ebene $\{c_{r},c_{i}\}$, und das Anti-Buddhabrot mit $c=({\text{random}},0)$ und $z_{0}=(0,0)$, dies ist das 2D-Bifurkationsdiagramm der logistischen Gleichung in der Ebene $\{c_{r},z_{r}\}$. Wir drehen die Ebene $\{c_{i},z_{r}\}$ um die $c_{r}$-Achse, um zuerst die $\{c_{r},c_{i}\}$-Ebene zu zeigen, dann drehen wir um 90° in die $\{c_{r},z_{r}\}$-Ebene, danach folgt eine 90°-Drehung, um $\{c_{r},c_{i}\}$ zu zeigen. Eine zusätzliche Drehung um 180° ergibt dasselbe Bild, gespiegelt an der $c_{r}$-Achse. Das speziell konfigurierte Anti-Buddhabrot, aus dem das Bifurkationsdiagramm der logistischen Gleichung hervorgeht, ist eine Teilmenge des klassischen Anti-Buddhabrot, angesiedelt in der Ebene $\{c_{r},z_{r}\}$ (oder $c_{i}=0$) des dreidimensionalen $\{c_{r},c_{i},z_{r}\}$-Raumes und senkrecht zur Ebene $\{c_{r},c_{i}\}$. Wir verdeutlichen dies, indem wir zeigen, dass bei einer 90°-Rotation nur die projizierte Ebene $c_{i}=0$, nicht durch die Projektion der Ebene mit $c_{i}$ ungleich null „gestört“ wird.

