Das grosse Archiv mit 637
VBA-freien Formellösungen und Tips
 
   
 
 ÜBER UNS   NEWS   FORMELN   TIPPS   KONTAKT   FORUM   LINKS 
   
 
Mathematik (8) ->

Grafische Darstellung von Juliamengen

Autor: Klaus Kühnlein
 
 
Aufgabe
Wer das Bild interessant findet, aber null Ahnung hat, kann sich in Wikipedia unter: „Julia-Menge“ schlau machen. Der Chaos-Freak weiß, um was es geht: fortlaufende Iteration der Komplexen Zahl z nach der Formel z1 = z0^2 + c, z2 =z1^2 + c usw. Um zu vermeiden, dass die Iteration ins Unendliche divergiert, sollte die Funktion umgekehrt werden: z1 = Wurzel( z2 –c), z0 = Wurzel( z1 –c) usw. Damit es nicht einseitig wird (Jede Wurzel hat zwei Resultate, ein positives und ein negatives), wird das Ergebnis jedes Iterationsschrittes mit einem Zufallsgenerator positiv oder negativ gemacht.

DOWNLOAD
Der Dateityp ist xlsx, also für die Excel Versionen 2007/2010, da die verwendeten Funktionen zur Berechnung von komplexen Zahlen erst seit der Version 2007 zum Standard gehören. (Bei Konvertierung in eine xls-Datei müsste also das Add-In Analysefunktionen aktiviert sein.)




Lösung
In B3:C3 werden Real- und Imaginärteil der Konstanten c eingegeben.D3 wandelt die beiden c-Teile in eine Komplexe Zahl um: =KOMPLEXE(B3;C3

Der Anfangswert der Iteration findet sich in D6: = KOMPLEXE(1;1). Er kann auch jeden anderen Wert haben, da die Iteration nicht vorwärts (z^2+c) sondern rückwärts (Wurzel(z-c)) ausgeführt wird und dadurch eine Explosion ins Unendliche vermieden wird.

In D7 erfolgt der erste Iterationsschritt mit:
=WENN(ZUFALLSZAHL()<0.5;IMWURZEL(IMSUB(D6;$D$3));IMSUB(0,IMWURZEL(IMSUB(D6;$D$3))))
Diese Formel wird bis D10000 runterkopiert und schon hat man alle Werte der Julia-Menge.

Diese Werte werden in Rechteck-Koordinaten umgewandelt:
B7: =IMREALTEIL(D7), C7: =IMAGINÄRTEIL(D7). B7:C7 bis B10000:C10000 runter kopieren. B13:C10000 bilden die Datenreihen für ein XY-Punkt-Diagramm, das die Julia-Menge visualisiert. Bei genauerem Hinsehen entdeckt man, dass die Datenreihe für das Diagramm in B13:C13 beginnt. Dadurch gibt man der Iteration die Chance, sich von einem falschen Anfangswert auf „richtige“ Werte einzupendeln.

 
    zurück


 
powered by telltarget