< Mandelbrötchen >

ein kleines Javaprogramm zur Visualisierung der Mandelbrotmenge und der Juliamenge

Download ► mandel.jar(mind. Java 1.4 erforderlich) [aktualisiert am 06.09.2011, Mehrprozessorunterstützung]

Programme, die hübsche Bilder vom Fraktal der Mandelbrotmenge erzeugen gibt es im Netz eine ganze Menge.
Warum also noch eins dazu ?

Was mir gefehlt hat, war die Übernahme komplexer Punkte, bspw. aus Computeralgebrasystemen, in die Zeichenfläche des Fraktals.

Man kann eine beliebige Anzahl komplexer Punkte in der Gausschen Ebene über die Zwischenablage ins Programm importieren. Die Funktion ist über das Popupmenü der Zeichenfläche verfügbar. (plot complexpoints from clipboard)
Bewegt man die Maus über die Zeichenfläche werden die Punkte wieder gelöscht.

Beispiel für das Zahlenformat: -.1717e-1-1.0377*I,... oder 1+2*I,... oder 1+2*j,... oder 1+2i,... oder 1+2I,... oder 1+2j,... . (Trennzeichen ist das Komma, Exponenntialschreibweise wird unterstützt)

Das kleine Java-Programm kann auch den Orbit der Iterationen Zn+1=Zn2+c; c ε C; darstellen. Dieser kann auch durchnummeriert werden. Den Startwert des Orbits, sowie andere Parameter kann man auch über die Zwischenablage übernehmen. so lassen sich Beziehungen zwischen den Fraktalen der Mandelbrotmenge und der Juliamenge experimentell am Computer untersuchen.

die Oberfläche des Programms

Randpunkte Mandelbrotmenge

Die Mandelbrotmenge

Die Mandelbrotmenge lässt sich auf verschiedene Art definieren, beispielsweise über die Julia-Menge. Man kann sie aber auch als Grenzwert einer Funktionen(Polynom)folge mit nichtkonstanten Koeffizienten im Komplexen definieren.
Potenzreihen im Komplexen haben i.a. einen Konvergenzkreis, d.h. ausserhalb dieses Konvergenzkreises gehen die Funktionswerte gegen unendlich.
Der Konvergenzkreis erstreckt sich von Singularität zu Singularität.
Eine analytische Funktion muss mindestens eine Singularität haben -und sei es im Unendlichen-, sonst ist sie konstant.

Man kann nun die Mandelbrotmenge als ein Konvergenzgebiet einer Relation auffassen, die als Grenzwert einer -rekursiv definierten- Funktionenfolge entsteht:

Zn+1=Zn2+Z :

  • Z2+Z
  • (Z2+Z)2+Z
  • ((Z2+Z)2+Z)2+Z
  • ...

Interessant wäre es zu wissen, ob die Funktionenfolge die zur Mandelbrotrelation führt, eine nicht rekursive Darstellung hat, bspw. eine geschlossene Lösung oder eine Summen,-Produktdarstellung.
Ich vermute, das dem nicht so ist.
Andererseits gibt es für die Juliamenge Zn+1=Zn2-2 eine solche Darstellung:
formel
Für jedes n scheint die Gleichung zu funktionieren:

  • n=1; f(Z,1) = Z2-2
  • n=2; f(Z,2) = (Z2-2)2-2
  • n=3; f(Z,3) = ((Z2-2)2-2)2-2
  • usw.

Ein Maple-Html-Stylesheet mit weiteren Informationen,das ich mal erstelt habe, findet ihr ► hier

Punkte am Rand der Mandelbrotmenge

Mit dem kleinen Programm kann man aus Mathematikprogrammen berechnete Punktmengen mal eben visualisieren, bspw. Wurzeln von Polynomen, oder auch Punkte auf dem Rand der Mandelbrotmenge (einschliesslich 0): Zn+1=Zn2+Z; Zn+3=Zn+2+Zn+1; Z ε C; ,die Wurzeln (Lösungen) der folgenden Gleichungen:

  • Z2+Z+Z=0
  • (Z2+Z)2+Z+Z2+Z=0
  • (Z+(Z2+Z)2)2+Z+(Z2+Z)2+Z=0
  • ...

im Bild unten ist die Wurzelmenge von: Zn+5+Zn+6= zu sehen:

Randpunkte Mandelbrotmenge

Die Polynomgleichung ist nicht mehr geschlossen lösbar, die Näherungswerte der Wurzeln sind:

-.15713594851707539718-1.1049455608350527314*I, -.22244025746143991090+1.1167970410716406895*I, -.22244025746143991090-1.1167970410716406895*I, .40788894723160457124+.57103019442499409341*I, .40788894723160457124-.57103019442499409341*I, -.61351019810120331396+.67757733558434972719*I, -.61351019810120331396-.67757733558434972719*I, .37973968456953609830+.68677483391982990339*I, .37973968456953609830-.68677483391982990339*I, -.53052426644185698400+.70657708170618235744*I, -.53052426644185698400-.70657708170618235744*I, .41148107380363839302+.16155503876347707478*I, .41148107380363839302-.16155503876347707478*I, .41134162546941012451+.60733348679095627487*I, .41134162546941012451-.60733348679095627487*I, -1.2385297017651443369+.41875850005026454976*I, -1.2385297017651443369-.41875850005026454976*I, -1.2950966837360058242+.35238263966679811727*I, -1.2950966837360058242-.35238263966679811727*I, .16429555471499090058e-2+.82246653001909136707*I, .16429555471499090058e-2-.82246653001909136707*I, -.18495149967037749306+1.0136286162957248081*I, -.18495149967037749306-1.0136286162957248081*I, .45673141833005061457+.38563149707522509675*I, .45673141833005061457-.38563149707522509675*I, -.14275631064169239372+1.0558427989502803544*I, -.14275631064169239372-1.0558427989502803544*I, -.71362637281695388558+.47379461894707075340*I, -.71362637281695388558-.47379461894707075340*I, -.23971619022313441067+.84550331370028872259*I, -.23971619022313441067-.84550331370028872259*I, .42451271905003964244+.20753022816674530251*I, .42451271905003964244-.20753022816674530251*I, .22411060932332280183e-2+1.0069870043249569486*I, .22411060932332280183e-2-1.0069870043249569486*I, -1.0300291782894757051+.32684452978481791521*I, -1.0300291782894757051-.32684452978481791521*I, .12649666120768178022+.69178086106706845445*I, .12649666120768178022-.69178086106706845445*I, -1.9205387367657770125, -1.8616232544883360530+.10718254199591392394e-1*I, -1.8616232544883360530-.10718254199591392394e-1*I, -1.7677303444380307269-.48502119251955410065e-1*I, -1.7677303444380307269+.48502119251955410065e-1*I, -1.9854687587441413099+.92278896710846785768e-3*I, -1.9854687587441413099-.92278896710846785768e-3*I, -1.6292734442048283733+.38694002096215451508e-1*I, -1.6292734442048283733-.38694002096215451508e-1*I, -1.9585095871785122540, -1.3871108501407865767+.10254200534696942318*I, -1.3871108501407865767-.10254200534696942318*I, -1.9983913615320651257, -.20742020461246560114+1.1226817832266675692*I, -.20742020461246560114-1.1226817832266675692*I, .35812051169178867166+.69570008736695372055*I, .35812051169178867166-.69570008736695372055*I, -1.2897287691165251421+.43530721592180913235*I, -1.2897287691165251421-.43530721592180913235*I, .46768462947855095311+.35755141946369008201*I, .46768462947855095311-.35755141946369008201*I, -.12489256325033351802e-1+1.0290327869186131197*I, -.12489256325033351802e-1-1.0290327869186131197*I, -.15713594851707539718+1.1049455608350527314*I, 0.

(kopieren und mit plot Complexpoints from Clipboard ins Programm übernehmen)

Wie weiss man, das ein Punkt exakt auf dem Rand der Mandelbrotmenge liegt?
Man weiss, das für Punkte, die auf dem Rand der Mandelbrotmenge liegen, die zugehörige Juliamenge zusammenhängend und ein Dentrit sein muss, d.h. keine inneren Punkte haben kann.
Man kann es dann einfach grafisch visualisieren, in dem man den konkreten Punkt als c-Parameter für die Juliamenge übernimmt.
Nimmt man beispielsweise den ersten Punkt aus der obigen Liste: -.15713594851707539718-1.1049455608350527314*I

und setzt ihn als c-Parameter in die Juliamenge ein (im Programm: Popupmenü-> julia -> calculate Julia from Clipboard) ergibt sich folgendes Bild:

die Knospen der Mandelbrotmenge

Eine andere Iteration, die eine Funktionenfolge auspuckt, ergibt Punkte im Zentrum der Knospen der Mandelbrotmenge.
Die complexen Wurzeln der Funktionenfolgen:

Zn+1=Zn2+c; c=Z; ε C;

P(ξ)= n=0ξZn+1, also:

  • P(1) =Z2+Z
  • P(2) =(Z2+Z)*((Z2+Z)2+Z)
  • P(3) =(Z2+Z)*((Z2+Z)2+Z)*(((Z2+Z)2+Z)2+Z)
  • P(4) =(Z2+Z)*((Z2+Z)2+Z)*(((Z2+Z)2+Z)2+Z)*((((Z2+Z)2+Z)2+Z)2+Z)
  • ...

P(4) =

Die Wurzeln sind:

-1.2563679300681807616+.38032096347272250651*I, -1.2563679300681807616-.38032096347272250651*I, -.19804209936425384007+1.1002695372926985329*I, -.19804209936425384007-1.1002695372926985329*I, -.44212357704070623142e-1+.98658097628089276836*I, -.44212357704070623142e-1-.98658097628089276836*I, .37951358801592374531+.33493230559749758722*I, .37951358801592374531-.33493230559749758722*I, -.50434017544624400030+.56276576145298196354*I, -.50434017544624400030-.56276576145298196354*I, -1.8607825222048548712, 0., -.15652016683375506180-1.0322471089228318017*I, -.15652016683375506180+1.0322471089228318017*I, .35925922475800743944+.64251373713854234940*I, -1.6254137251233037374, -1., .28227139076691387970-.53006061757852529949*I, .28227139076691387970+.53006061757852529949*I, -1.7548776662466927600, -.12256116687665361998+.74486176661974423659*I, -.12256116687665361998-.74486176661974423659*I, .35925922475800743944-.64251373713854234940*I, -1.9407998065294847522, -1.9854242530542053106, -1.3107026413368328836, -1.0000000000000000000

(kopieren und mit plot Complexpoints from Clipboard ins Programm übernehmen)

Randpunkte Mandelbrotmenge

Hier können sie mein Freeware-Programm downloaden (mind. Java 1.4 erforderlich): ► mandel.jar