Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Entdeckerforum Zauberspiegel. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

1

Freitag, 7. April 2017, 17:12

Mathematik als grundlegendes Element des Kosmos?

Hallo zusammen,

bin ganz neu hier im Forum. Auf der Suche nach Antworten auf die Frage, ob mathematische Fraktale (insbesondere die Randgebiete der Mandelbrotmenge) mehr sind als bloße mathematische Kuriositäten, sondern ob dahinter vielleicht ein universelles Prinzip steckt, das allem Existierenden, dem Kosmos (und dem Leben, und überhaupt ...) zugrundeliegt, bin ich auf Gabis interessante Webseite(n) gestoßen und darüber dann auch hier auf dieses nicht minder interessante Forum.

Leider kann ich nicht so virtuos mit Zahlen jonglieren, daher kann ich den mathematischen Erklärungen bestenfalls ansatzweise folgen (vom Selber-Erfinden neuer Fraktalgleichungen ganz zu schweigen) - aber ich bin "stets bemüht"... ;) Komplexe Zahlen waren mir zwar nicht neu (hatte ich 1987 mal in der Fachoberschule für Elektrotechnik), habe selber damit aber später nicht mehr gerechnet (eine Handvoll Formeln wie Ohmsches Gesetz, Thomsonsche Schwingungsgleichung etc. haben für meine Zwecke gereicht).

Ich selber bin gegen Ende der 1980er Jahre auf das Thema Fraktale gestoßen - wahrscheinlich hatte ich einmal in irgend einer Computerzeitschrift etwas darüber gelesen und wollte diese tollen Bilder unbedingt auch auf den Bildschirm zaubern. Mit dem C64 war das damals allerdings eine äußerst zeitaufwendige Angelegenheit - da konnte man tatsächlich noch jedes neu auf dem Bildschirm erscheinende Pixel persönlich mit Handschlag begrüßen. An einer bildschirmfüllenden Apfelmänchen-Grafik von gerade mal 320 x 200 Pixelchen hat der C64 bis zu einen Tag lang gerechnet. Heute geht das in Millisekunden bei gleichzeitig größeren Bildern.

Irgendwann Anfang der 1990er Jahre habe ich das Thema wieder aus den Augen verloren und habe seither nichts mehr damit gemacht. Erst letzten Monat kam ich beim Durchblättern meiner alten Aufzeichnungen in einem Anflug von "Retro-Stimmung" auf den Gedanken, doch mal wieder ein "Apfelmännchen"-Programm für den PC zu tippen. Zuerst probierte ich es mit C++, bin dann aber zum Glück schnell bei JavaScript gelandet, was auch den Vorteil hat, dass man kein Programm installieren muss, da es in jedem halbwegs modernen Web-Browser läuft. Anfangs hatte ich Zweifel, ob JavaScript dafür überhaupt schnell genug ist, aber ich war erstaunt, als das "Apfelmännchen" quasi "instantan" im Browser-Fenster erschien. Was damals auf dem C64 noch Stunden gedauert hat, geht selbst im Browser heute in Millisekunden... (OK, bei komplexeren Grafiken mit fünfstelligen Iterationszahlen und Kantenglättung durch Pixel-Interpolation etc. kann es auch da dann auch schonmal einige Minuten dauern...)

Was mich aber damals wie heute an den (Mandelbrot-)Fraktalen so fasziniert, ist die ungeheure und (je nach gewähltem Ausschnitt und Farbgebung) sehr ästhetische Formen-Vielfalt, die ja nicht "programmiert" ist, sondern das automatische Ergebnis einer so einfachen Rekursionsgleichung wie Z->Z²+C ist. Als Laie kommt mir das wie ein "Wunder" vor, was mich eben zu der eingangs erwähnten Frage nach einer möglichen tieferen Bedeutung mathematischer Zusammenhänge (Rekursionen) für den Aufbau des gesamten Kosmos und darüber hinaus geführt hat. Habe dazu hier nun schon Einiges gelesen und glaube, dass Gabi einer möglichen Antwort schon sehr nahe gekommen ist (zumindest so nah, wie dem ein "3D-Verstand" kommen kann; es gibt sicherlich noch andere Zugangswege...) Interessant klingt auf jeden Fall schonmal die Idee, dass die Iterationen im Computer Energiewirbeln in der Realität entsprechen. Auch der Gedanke mit der DNS als "Störfaktor", der uns von der Vollkommenheit des Urprinzips (des perfekten Fraktals) abtrennt und und erst zu unterscheidbaren Individuen macht, hat was... :)

Ich habe noch längst nicht alles gelesen - das wird auch sicher noch einige Zeit in Anspruch nehmen -, aber Zeit haben wir ja alle... (jeder mindestens ein ganzes Leben lang). In diesem Sinne: Frohes Iterieren, oder so... :D

Stefan

Ach so, meine neuen Webseiten (erst ca. 2 Wochen alt) zum "Apfelmännchen" und den Fraktalgrafik-Generator in JavaScript findet Ihr entweder über den "Homepage"-Link (das kleine Häuschen links unten neben diesem Eintrag) oder eben direkt hier: www.stefanbion.de/fraktal-generator/

Edit: Teppfihler beseitigt
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

2

Sonntag, 9. April 2017, 22:40

Hallo Stefan,

herzlich willkommen.

Mir war bis jetzt entgangen, dass JavaScript inzwischen eine Bildausgabe bekommen hat.
Leider wird da auch immer die Browserversion am Bild mitspielen, wie es leider bei Java war (z.B. unterschiedliche Zahlenlängen).
Und ? Schonmal rumgespielt mit Auge, Zwillingsverfahren oder Schädelfraktal ?

Wie wärs, wenn Du mal das Apfelmännchen auf Auge umstellst ?
einfach im Apfelmännchen in der Schleife (habe ich aus github.com/cslarsen/, sicherlich nimmst Du das so ähnlich)

Tr = Zr * Zr;
Ti = Zi * Zi;
Zi = 2 * Zr * Zi + Ci;
Zr = Tr - Ti + Cr;

austauschen mit

Tr = Zr * Zr;
Ti = Zi * Zi;
Zi = Ci;
Zr = Tr + Ti + Cr;

Aber die Farbdarstellung muss das Innere des Auges (ehemals Apfelmännchens) auswerten, sonst erkennt man die 'Pupille' nicht. (Als Umriss kommt es sofort, für mehr hatte ich noch keine Zeit)
Sind Deine Quelltexte irgendwo runter zu laden ?

Herzliche Grüße
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

3

Montag, 10. April 2017, 01:14

Hi Gabi,

ja, wie schon gesagt (per Mail vor einer Woche): Seit HTML5 geht mit JavaScript Einiges. Und schnell ist es auch geworden! Wusste ich bis vor kurzem auch noch nicht...

Browserversionen dürften bezüglich Zahlenlängen bei JavaScript m.E. keine große Rolle spielen, da es hier Standards gibt (siehe hier). Zahlen sind in JavaScript demnach immer 64-Bit-Fließkommazahlen. Will man mehr Genauigkeit, muss man Bibliotheken verwenden (z.B. BigDecimal). Mit dem Standard erreicht ich Vergrößerungen von ca. 33E+12 gegenüber der Vollansicht des "Apfelmännchens" (Radius 2).

Mit anderen Fraktalen als der Mandelbrot-Menge habe ich bisher noch nicht rumgespielt, werde das aber sicher noch tun und (wenn's was wird) diese Fraktale dann per Dropdown-Box im Script auswählbar machen. Ich müsste dazu allerdings erst noch die Iterationsvorschrift Z->Z^Z* (oder was Du da verwendest; hab's gerade nicht parat) in reelle Zahlen transformieren, damit es mein Script versteht. - Oder ich probiere einfach das, was Du oben angegeben hast. :) Wird aber noch etwas dauern, denn momentan feile ich noch an einer Beschreibung der Berechnung der normalen Mandelbrot-Menge für meine Seite (hier der Entwurf, noch nicht verlinkt; kannst ja mal drübergucken, ob das alles mathematisch korrekt beschrieben ist).

Den Sourcecode meines Mandelbrot-Scripts kannst Du natürlich runterladen: Einfach die Seite http://www.stefanbion.de/fraktal-generator/mandelbrot.htm abspeichern und fertig. Das JavaScript ist direkt in die HTML-Datei eingebunden; es werden keine externen Ressourden geladen.

Viele Grüße,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

4

Montag, 10. April 2017, 08:28

Morgen Gabi,

hmm, also entweder ist noch etwas falsch und ich muss mehr als 5 Minuten zwischen Frühstück und Losfahren investieren, oder das muss so sein...

http://www.stefanbion.de/fraktal-generator/mandelbrot-auge.htm

Hier mit mehr Farben.

Ich kann jdenfalls so auf Anhieb keine Pupille oder andere fraktale Strukturen erkennen - nur eine eiförmige Grundstruktur (würde ja immerhin zu Ostern passen :D).

Du kannst ja selbst mal versuchen. Angepasst habe ich die Funktion Iterate() ab Zeile 554 (2 Zeilen eingefügt, die beiden darüber stattdessen auskommentiert).

Grüßli,
Stefan

Edit: So, ich hab's mal kurz umgerechnet: Die "Augen-Rückkopplung" Z=Z*(Z*)+C mit (bei mir) Z=a+bi und C=x+yi ergibt tatsächlich a_neu = a²+b²+x und b_neu=y. Genauso hatte ich es versucht, doch es kommt nur der Umriss des Augapfels (oder besser: Augeis) ohne "Inhalt" heraus - so wie beim "Apfel" der Mandelbrot-Menge, die ja auch keine innere Struktur hat, wenn man für den Wert itMax (maximale Anzahl Iterationen) eine feste Farbe verwendet. (Bei meinem Script werden ja bloß (wie meist üblich) einfach die ermittelten Iterationszahlen proportional auf eine Farbpalette gemappt.) Ich vermute daher, dass das von Dir verwendete Programm (Ultra Fractal?) einen anderen Algorithmus zur Farbzuordnung oder -ermittlung verwendet. Vielleicht berücksichtigt es ja noch irgendwie das "Sprungverhalten" des Punktes Z in der Gaußschen Zahlenebene, das ja bei der einfachen Zuordnung Iterationszahl -> Farbe vollkommen unberücksichtigt bleibt... weißt Du mehr darüber?
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

5

Montag, 10. April 2017, 17:18

OK, da siehts Du ja, wie leicht es zu ändern ist.
Am Anfang des Buchanhanges stehen die übrigen Gleichungen auch (MIT Zwillingsverfahren).

Natürlich kann man auch im konvergenten Bereich die Konvergenz als Farbe kodieren.
Siehe hier die beiden Bilder rechts:



Entweder das x-y-Ergebnis nach fester Iterationszahl als Farbe kodieren oder
die Zahl der Iterationen zählen und per Farbtabelle anzeigen, bis eine bestimmte Differenz unterschritten ist (wo dann erst abgebrochen wird), keine feste Iterationszahl, oder sogar auswerten (drittes Bild), wieviele Zyklen durchlaufen werden.
Die von UltraFractal hatten solche Farbverläufe ziemlich undurchsichtig programmiert, deswegen war es mir auch nicht gleich gelungen, es mit meinem Programm in dieser plastischen Form nachzustellen. Aber viel Zeitaufwand hatte ich nicht investiert. Die Lage der Pupille war aber auch ohne UltraFraktal zu finden. Ich hatte es auch ziemlich schnell eingestellt bei UF, offenbar irgendein Standart. Aber frage mich heute nicht danach, das ist 10 Jahre her. Muss mal suchen, was noch notiert war.
Schade, dass ich momentan kaum Zeit habe, muss gerade auch weg.

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

6

Montag, 10. April 2017, 17:27

So, ich hab' mal kurz was getestet: Anstatt das "Innere des (Aug-)Apfels" (it = itMax) einheitlich einzufärben, habe ich die Farbe jetzt mal abhängig von der Anzahl der unterschiedlichen Z-Werte pro C gemacht. Die Erstellung des Bildes dauert dadurch jetzt zwar elend lange (Minuten statt Millisekunden), aber man sieht nun mehr Details. Hier die "Z->Z*(Z*)+C"-Version mit eingefärbtem "Innern" bei 500 Iterationen:



Die schwarze Farbe kennzeichnet jetzt die Bereiche, in denen die Anzahl der unterschiedlichen Z-Werte dem Wert itMax entspricht. Bei höherem itMax werden diese Bereiche dann entsprechend kleiner.

Also, ob das schon als "Auge" durchgehen würde, lasse ich mal dahingestellt. Es hängt wohl auch sehr stark von der Art der Einfärbung ab, als was ein Fraktal-Objekt wahrgenommen wird*. Es wäre daher mal interessant zu wissen, welchen Algorithmus zur Einfärbung Ultra Fractal benutzt.

Feierabendgrüße,
Stefan

*) Provokante Frage: Spielt hier vielleicht auch Pareidolie mit eine Rolle...?

Edit: Oh, jetzt haben sich unsere Antworten überschnitten.... Werde mir die diversen Methoden zum Einfärben des "Innern" dann mal bei Gelegenheit genauer zu Gemüte führen...
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

7

Montag, 10. April 2017, 17:48

Der Vollständigkeit halber hier zum direkten Vergleich mal der normale "Apfel" mit innerer Einfärbung nach Anzahl unterschiedlicher Z-Werte (was vermutlich den von Dir genannten Zyklen entspricht):



(Alle Parameter gleich wie beim "Auge", also z.B. 500 Iterationen.)

Wenn ich das richtig deute, ist also die Anzahl der Zyklen im Zentrum der "Bommel" am kleinsten und wird zum Rand hin größer, wobei die Steigerung nichtlinear (quadratisch? exponentiell?) zunimmt, wie man an den zum Rand hin immer "enger" werdenden Farbverläufen erkennen kann.
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

8

Dienstag, 11. April 2017, 00:45

Hi Gabi (und alle, die hier sonst noch mitlesen),

ich habe jetzt noch etwas ausprobiert:

itMax = 249:


itMax = 250:


Hier wird die Farbe im Innern der Menge durch den Winkel von Z gegenüber C bestimmt.

Beispiel:


Dass sich das Muster mit unterschiedlichen itMax-Werten ändert, scheint wohl daran zu liegen, dass das Z noch "rumhüpft" (...vermute ich...).

Der Code dazu (neu hinzugefügt ist der if-Block):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function Iterate(x, y)
{
	var a = 0, b = 0;     // Real- und Imaginärteil von Z (Startwert: Z=0)
	var a2 = 0, b2 = 0;   // Quadrat von a und b merken (Performance!)
	var it = 0;           // Iterationszähler

	while (it < g_par.itMax && a2 + b2 < 4)   // |Z| < 2  =>  |Z|² = a²+b² < 2²
	{
		b = 2 * a * b + y;  // Komponenten des Imaginärteils addieren
		a = a2 - b2 + x;    // Komponenten des Realteils addieren

		a2 = a * a;         // Quadrate von Real- und Imaginärteil merken,
		b2 = b * b;         // um sie nicht zweimal berechnen zu müssen (Performance!)

		it++;
	}

	if(it === g_par.itMax)
	{
		// Winkel von Z gegenüber C ermitteln
		var alpha = Math.atan2(b - y, a - x);
		if(alpha < 0) alpha += 2 * Math.PI;

		// Winkel in Wert von 1...itMax-1 umwandeln
		it = Math.floor((g_par.itMax - 1) * alpha / Math.PI / 2) + 1;
	}

	return it;
}


Leider funktioniert das nicht mit Deinem "Auge", da hier anscheinend der Winkel zwischen Z und C immer 0° ist - daher ist das Innere des Auges immer einfarbig.

Nachtgrüße,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

9

Donnerstag, 13. April 2017, 01:58

Hier habe ich mal ein kleines Script gebastelt, das die Iteration Z->Z²+C etwas veranschaulicht:

http://www.stefanbion.de/fraktal-generat…eliteration.htm

2 Beispiel-Screenshots:

Konvergenz:


Divergenz:
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

10

Donnerstag, 13. April 2017, 09:56

Und beim "Auge" sieht man sehr schön, dass die iterierten Z-Werte immer eindimensional bleiben, d.h. der Imaginärteil ist immer 0:

Konvergenz:


Divergenz:


Das Einzige, was variiert, ist der Realteil, und zwar geht der immer nach rechts, also zu den positiven Werten hin.

Vielleicht könnte man das ja irgendwie nutzen, um die inneren Strukturen besser sichtbar zu machen. Beispielsweise, indem man die maximale Ausdehnung in x-Richtung einer bestimmten Farbe zuordnet...

Update: Nee, das bringt nicht viel, das erzeugt nur einen gleichmäßigen Helligkeitsverlauf mit dem Nullpunkt als Zentrum, aber keine Strukturen wie Pupillen etc.:

Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

11

Donnerstag, 13. April 2017, 19:58

Gratuliere !
Das sieht doch schon sehr gut aus. Jetzt muss nur noch mehr an der Farbkodierung rumskaliert werden (Wurzel ziehen ? dritte Wurzel?).
Auf der linken Seite ist es eben NICHT so linear-gleichmäßig, wie es hier aussieht als Graubild.

Könntest Du mal das Zwillingsverfahren einsetzen und mit koppl=0,5 rechnen ?
Da entstand eine doppelschichtige Hornhaut.

In einer Basic-Variante pro Bildpunkt mit festem (Cx,Cy):

x1 = 0.0; y1 = 0.0; x2 = 0.0; y2 = 0.0;
for (i=1; i<=imax; i++)
{
x1n = x1*x1 + y1*y1 + Cx + koppl*x2;
y1n = Cy + koppl*y2;
x2n = x2*x2 + y2*y2 + Cx - koppl*x1;
y2n = Cy – koppl*y1;
x1 = x1n; y1 = y1n; x2 = x2n; y2 = y2n;
}

Ich hänge mich selber mal noch nicht rein. Brauche einfach mal UNABHÄNGIGE Bestätigungen für meine Bilder.
Die glaubt mir immer keiner.
Jetzt Ostern habe ich wieder wenig Zeit, später eher, dann mache ich selber erstmals was mit JavaScript.

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

12

Montag, 17. April 2017, 17:17

Zwillingsverfahren mit festem Koppelwert 0,5

Habe jetzt in Deinem Programm
http://www.stefanbion.de//fraktal-genera…elbrot-auge.htm
die Funktion Iterate() umgetauscht in

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        function Iterate(x, y)
	{
		var a1 = 0, b1 = 0;   // Real- und Imaginärteil von Zwilling 1 (Startwert: Z=0)
		var a2 = 0, b2 = 0;   // Real- und Imaginärteil von Zwilling 2
		var a1n, b1n, a2n, b2n;   // Zwischenwerte
		var it = 0;               // Iterationszähler
		var koppl = 0.5;          // Koppelkonstante

	while (it < g_par.itMax && a2 + b2 < 4)   // |Z| < 2  =>  |Z|² = a²+b² < 2²
	{
		// "Auge" mit Zwillingsverfahren:
		a1n = (a1*a1) + (b1*b1) + x + (koppl*a2);
		b1n = y + koppl*b2;
		a2n = (a2*a2) + (b2*b2) + x - (koppl*a1);
		b2n = y - koppl*b1;
                a1 = a1n; b1 = b1n; a2 = a2n; b2 = b2n;

		 it++;
	}

	return it;
	}

(kleiner Haken: das a2 + b2 in der while-Klammer ist nicht mehr das Betragsquadrat wie vorher, macht aber nicht viel aus, habe es anschließend probiert mit a2*a2 + b2*b2 < 4 oder Math.sqrt(a2*a2 + b2*b2) < 4, es wird natürlich symmetrischer;
ausgewertet wird hier die Iterationszahl bis zum Überschreiten einer Grenze (a2 + b2) < 4 )

Sonst (außer in der Funktion Iterate) wurde nichts verändert. Ergebnis als Bild:




Unten im Link auf 7 Farben einstellen (statt 2 Farben) und dann auf Zeichnen klicken.

Hier Das ganze Programm:
http://www.viva-vortex.de/JavaScript/AugeZw0k5.htm

Für koppl=0 kriege ich es auch noch nicht hin, da muss man wohl die Ergebnis-Zahlen selbst in Farbe umsetzen (feste Iterationszahl).

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

13

Dienstag, 18. April 2017, 10:59

Morgen Gabi,

da warst Du ja richtig fleißig über Ostern - konntest es wohl doch kaum erwarten, das mal zu testen (und nebenbei JavaScript zu lernen). :-) Aber eigentlich war es ja auch zu erwarten, dass mit denselben Rechenoperationen auch dasselbe Ergebnis herauskommt - nur halt mit anderen Farben, da diese ja vom Programm abhängen. A propos Farben: Hier das Auge auch mal in einer anderen Farbdarstellung.

Mir stellt sich dabei allerdings die Frage, welche Bedeutung solche Strukturen nun konkret haben. Ist es nur Zufall, dass es in diesem Fall dem Querschnitt eines Auges ähnelt, oder in dem anderen Fall dem eines Menschenschädels - oder steckt mehr dahinter? Gehst Du davon aus, dass z.B. die menschlichen Organe durch Entsprechungen solcher Iterationsverkopplungen in der Natur - also etwa Energiewirbeln - entstanden sind? Oder stehen diese Beispiele nur sinnbildlich für die Formenbildung durch Wirbel? - Sorry, falls diese Fragen vielleicht dumm klingen - ich bin nämlich vor lauter Experimentieren und Updaten meiner Fraktalgrafik-Seiten (sowie anderer Verpflichtungen) noch gar nicht dazu gekommen, mehr als die ersten paar Seiten Deines Buches zu lesen... ;-)

Ich war nämlich am Osterwochenende auch nicht ganz untätig in Sachen Fraktale. Ist zwar nichts Weltbewegendes, aber ich habe mal ein bisschen mit den Folgen der Zahl Z während der Mandelbrot-Iterationen herumgespielt. In der Simulation (die unter Firefox 38 gar nicht funktioniert, wie ich gerade feststelle) ist ja zu sehen, dass die Zahl Z je nach Startzahl C zum Teil ziemlich wilde Manöver auf der Gaußschen Zahlenebene vollführt. Daher habe ich mal getestet, wie es wohl aussieht, wenn man anstelle der Iterationszahl mal die "Spuren" der Zahl Z sichtbar macht. Dabei kam dann nach einigen Umschweifen so etwas heraus - eine große Kugel mit vielen kleinen "Birnen" drumherum (die Grundform des "Apfelmännchens" ist aber noch zu erkennen):



Für das Farbmapping habe ich dabei eine logarithmische Funktion verwendet, da ansonsten die Helligkeitsunterschiede im Bild zu groß sind, d.h. die große Kugel hätte alles Andere "überstrahlt". (Bei diesem und den nachfolgenden Bildern habe ich zusätzlich noch nachträglich das Helligkeits-Histogramm mit einem Grafikprogramm optimiert.)

Lässt man nun die Folgen der Zahl Z weg, deren Startpunkte C zur Mandelbrot-Menge gehören - macht also nur die Spuren der "entkommenen" Z's sichtbar, dann ändert sich das Bild drastisch:



Sieht aus wie ein Satellit, der in der Erdatmosphäre verglüht... :-o

Interessanterweise ändert sich der Bildinhalt stark mit der Anzahl der maximalen Iterationen. Obiges Bild hatte 1000 maximale Iterationen pro Startzahl C, das folgende Bild hat 1 Million maximale Iterationen:



Ich finde, das sieht schon ziemlich "abgefahren" aus - fast ein bisschen wie dieser "Mechanismus von Antikythera"...

Was ich aber nicht verstehe, ist die Asymmetrie des Gebildes. Normalerweise sind doch alle Darstellungen der Mandelbrot-Menge symmetrisch zur reellen Achse. Davon ist hier aber nur noch rudimentär etwas zu sehen. Könnte das mit den Auswirkungen der hohen Iterarationszahl auf die begrenzte Genauigkeit der Zahlentypen zusammenhängen? Vielleicht spielt hierbei aber auch noch ein "Zufalls"-Element mit hinein, denn um Artefakte aufgrund des Bildrasters zu vermeinden, habe ich die Startzahlen C nicht am Bildraster ausgerichtet, so wie bei der normalen Mandelbrot-Menge, sondern habe diese per Math.random() (pseudo-)zufällig erzeugt. Vielleicht kommt dadurch ja eine Variation mit ins Spiel, die noch weniger vorhersagbar ist als es die "normale" Iteration bereits ist... (so eine Art "Mutation" vielleicht...)

Für obiges Bild hatte ich 1 Million zufällig ausgewählte Startzahlen C benutzt. Das ist für ein 1200x900-Pixel-Bild bei 1 Million max. Iterationen wohl noch etwas zu wenig für ein rauschfreies Bild. Bei einer vierstelligen maximalen Iterationszahl braucht man schon 100 Millionen Punkte für ein einigermaßen rauschfreies Bild; bei höheren Iterationszahlen weniger, da dabei ja die Gesamtpunktzahl steigt. Daher habe ich noch ein Bild mit denselben Parametern wie oben (1 Million maximale Iterationen), aber mit 10-mal soviele Zufalls-Startzahlen C (also 10 Millionen) verwendet. Das Ergebnis hat mich wiederum erstaunt: Wieder ist ein (etwas weniger) asymmetrisches Bild entstanden, aber mit fast komplett anderem Inhalt:



Was ich wegen der langen Berechnungszeit (8 Stunden!) noch nicht getestet habe, ist, ob bei einer Wiederholung wieder dasselbe Bild entsteht - also ob hier der Faktor "Zufall" tatsächlich eine Rolle spielt. Sofern die Zufallszahlen statistisch einigermaßen gleichverteilt sind, sollte das eigentlich nicht der Fall sein - es sollten zumindest dieselben Grundstrukturen entstehen. Ich werde das jedenfalls mal weiter untersuchen...

Viele Grüße,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

14

Dienstag, 18. April 2017, 11:26

Nachtrag: Hier übrigens noch das Testprogramm, mit dem ich die obigen Bilder erzeugt habe. Damit es beim ersten Start nicht zu lange läuft, ist die Anzahl der max. Iterationen und der Anzahl Zufalls-Startpunkte auf 1000 bzw. 1 Million eingestellt. Für rauschfreie Bilder sollte die Anzahl der Punkte erhöht werden. Aber schon bei dieser Einstellung ist zu sehen, dass bei mehrfach hintereinander gestarteten Zeichenvorgängen jedesmal ein etwas anderes Bild entsteht. Vielleicht spielt der (Pseudo-)Zufallsfaktor dabei ja tatsächlich eine Rolle für das Endergebnis mit sehr vielen Punkten.

(Weitere Bilder auf der neuen (gestern erst angefangenen) Seite Spielwiese.)
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

15

Dienstag, 18. April 2017, 13:19

Hallo Stefan,

Merkts Du, wie spannend das ist ? Wenn man erstmal in die Entdeckersucht reinriecht, kann sie einen voll packen. Es ist Sucht.

>da warst Du ja richtig fleißig über Ostern

ich war verreist. Die Änderungen haben mich 10 Minuten gekostet.

>Was ich aber nicht verstehe, ist die Asymmetrie des Gebildes.
>Sofern die Zufallszahlen statistisch einigermaßen gleichverteilt sind

Die Asymmetrie dürfte nicht auftauchen. Es kann nur mit den Zahlenlängen zu tun haben, denn die negativen Zahlen haben wohl ein Bit weniger.
Aber wenn das Bild nicht reproduzierbar ist, dann sind es (auch) die Zufallszahlen. Der Generator ist also nicht wirklich gut, er hat bestimmte "Vorlieben".
Zum Anschauen Deines neuen Programms hatte ich noch keine Zeit.

> Gehst Du davon aus, dass z.B. die menschlichen Organe durch Entsprechungen solcher Iterationsverkopplungen in der Natur - also etwa Energiewirbeln - entstanden sind

Ja. Es sind ja nur Rückkopplungen. Alles Lebendige agiert über Rückkopplungen, auf allen Ebenen und zwischen ihnen: galaktisch, solar, terrestrisch, biokörperlich, organisch, zellulär, makromolekular, atomisch, astral, mental, buddhisch, usw..
Das in Violett gehört zur Menschenseele.
Ob wir hier die echte (grob getroffene) Augen-Iteration vor uns haben (in 2D statt 3D) oder nicht, ist für mich nicht wichtig. Es gibt ja auch Augen woanders (auf Schmetterlingsflügeln oder Pfauenfedern). Wenn diese Iteration brauchbar ist, dann wird die Natur es (so ähnlich) nehmen, wo sie es braucht.
Ich hatte immer nach dem Bildschirmraster und der Zahlenidentität gesucht. Es sind die Zellen im Zellverband und ihren Schwingenden DNS-Pixeln als einzelner hardware/software-PC , life an jedem Bildpunkt. Zahlen sind Strömungsintensitäten, die der Zellkern (empfangend) vorfindet und sendend mitgestaltet (ich vermeide absichtlich das Wort Energie). Weitere Größen (als Komponenten von C) sind das Strömungs-Divergenzverhalten öffnend oder schließend und wie stark (Ladung elektrisch), Drehrichtung der Spiralen (Ladung magnetisch), Dichte und Körnigkeit (=Wellenlänge) der Strömung, aber auf letztere Eigenschaft stellt sich der Wirbel mit seinen Skalen-Größen selbst ein. Wir wissen also nie, an welchem "Nullpunkt" wir sind, es ist immer nur ein relativer, wie bei den winzigen Apfelmännchen-Anhängseln, die wahrscheinlich selbst gerademal ihren eigene Mutter-Anbindung "kennen" (evtl. auch deren Mutter, - riesig, aber sehr weit weg, in eigenen Skalengrößen ), aber nie das einzige Original am echten absoluten Nullpunkt.

Du solltest im Buch erstmal nur das Kapitel A13 lesen:
http://www.viva-vortex.de/texte/t11/AzVivaVortexA13.pdf


MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

16

Dienstag, 18. April 2017, 20:23

Hi Gabi,

klar merke ich, wie spannend das ist. Seit ca. 4 Wochen bin ich das schon am merken... Habe letzte Nacht nur 3 Stunden im Bett verbracht - die Tage sind einfach zu kurz... ^^

10 Minuten - cool; daran sieht man, dass Du Profi bist. :)

Wegen der Asymmetrie habe ich mich jetzt auch mal bei fractalforums.com registriert und dort gefragt. Mal gucken, was die Cracks dazu meinen. Bin ja sicherlich nicht der Erste, der darauf gestoßen ist.

An dem Vorzeichen wird es vermutlich eher nicht liegen, da hierfür ein eigenes Bit existiert (siehe JavaScript Numbers), d.h. der reine Zahlenwert ist immer gleich, egal ob positiv oder negativ.

Danke auch für die Erläuterungen. Werde mir jetzt Dein 13. Kapitel aufs Handy mailen und dann morgen in der S-Bahn lesen. Ganz ehrlich. ;)

Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

17

Mittwoch, 19. April 2017, 01:43

Nur kurz: Im Thread "Broken symmetry" auf fractalforums.com hat sich eine Antwort auf die Frage nach der Asymmetrie ergeben. Es liegt also wirklich an den Zufallszahlen, aber nicht daran, dass diese "nicht gut" sind, sondern einfach an der Tatsache, dass manchmal zufällig eine Startzahl ausgewählt wird, die eine sehr lange Sequenz von Z-Werten zur Folge hat - bei max. 1 Million Iterationen z.B. fast 1 Million Z-Werte (bevor Z schließlich doch noch divergiert), und während dieser fast 1 Million Punkte erzeugt so eine Sequenz dann eben lokale Muster, z.B. diese ringförmigen Objekte, die eigentlich die Bahnen der Zahl Z sind. Aber trotzdem irgendwie faszinierend, was daraus für Bilder entstehen können - und dank des Zufalls gleicht keins dem anderen - anders als bei den "normalen" Mandelbrot-Grafiken. Nur Hineinzoomen geht da halt nicht wirklich. Aber man kann eben nicht alles haben... ;)

So, eigentlich wollte ich heute mal früh(er) in die Heia - war wohl wieder nichts... ;)
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

18

Mittwoch, 19. April 2017, 15:36

Auge Ohne Zwillingsverfahren

Endlich die Pupille in JavaScript (mit Farben-Einstellung Kunterbunt):



Hier das Programm dazu
http://www.viva-vortex.de/JavaScript/AugeOhneZwill.htm

geändert habe ich nur beim Rücksprung aus Iterate():

var Endzahl = Math.floor( Math.sqrt(a2 + b2) * 1000.0 );
return Endzahl;

statt

return it;

Das Programm denkt dann, da kommen Iterationsanzahlen an und macht Farben draus.
Es wäre gut, wenn man den Faktor 1000 als Variable ins Formular kriegt, ist mir nicht gelungen (halbe Stunde Zeit verbraten, erstmal aufgegeben)

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

19

Mittwoch, 19. April 2017, 16:01

http://www.viva-vortex.de/JavaScript/AugeMitZwill0k5.htm



Hier Zwillingsverfahren und etwas anderen Werten (rot markiert)

function Iterate(x, y)
{
var a = 0, b = 0; // Real- und Imaginärteil von Z (Startwert: Z=0)

var a1 = 0, b1 = 0; // Real- und Imaginärteil von Zwilling 1 (Startwert: Z=0)
var a2 = 0, b2 = 0; // Real- und Imaginärteil von Zwilling 2
var a1n = 0, b1n = 0, a2n = 0, b2n = 0; // Zwischenwerte
var it = 0; // Iterationszähler
var sqrtbetr = 0.0;
var koppl = 0.5; // Koppelkonstante

while (it < g_par.itMax && sqrtbetr < 1000)
{
//b = 2 * a * b + y; // Komponenten des Imaginärteils addieren
//a = a2 - b2 + x; // Komponenten des Realteils addieren

// "Auge":
a1n = (a1*a1) + (b1*b1) + x + (koppl*a2);
b1n = y + koppl*b2;

a2n = (a2*a2) + (b2*b2) + x - (koppl*a1);
b2n = y - koppl*b1;

a1 = a1n; b1 = b1n; a2 = a2n; b2 = b2n;

sqrtbetr = a1*a1 + b1*b1;

it++;
}

var Endzahl = Math.floor( Math.sqrt(sqrtbetr) * 10.0 );
return Endzahl;
}


Und hier stand sqrtbetr = a2*a2 + b2*b2; drin, das ist der zweite Zwilling (mit Minuszeichen vor koppl):


MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

20

Mittwoch, 19. April 2017, 20:12

Hi Gabi,

na also, wird doch...!

Du müsstest nur darauf achten, dass der Return-Wert der Funktion Iterate() im Bereich von 1 bis g_par.itMax bleibt, da sonst die nachfolgenden Funktionen für das Colormapping aufs Schnäuzchen fliegen. Das ist nämlich auch der Grund, warum jetzt die Farbverläufe nicht mehr funktionieren. Dazu könntest Du z.B. den Divisionsrest von "Endzahl durch g_par.itMax" um 1 erhöhen, also mit Modulo:

Quellcode

1
    return (Endzahl % g_par.itMax) + 1;


Oder Du wandelst das Ergebnis zuerst einen normierten Wert "norm" im Bereich 0...1 um und machst dann:

Quellcode

1
    return Math.floor(norm * (g_par.itMax - 1) + 1);


Um ein neues Feld ins Formular zu bekommen, müssen an mehreren Stellen Änderungen gemacht werden, wenn das Programm in sich konsistent bleiben soll, da die Werte z.B. auch in der History-Funktion verarbeitet werden. Vielleicht wäre es da einfacher, wenn Du mein Einfaches Apfelmännchen-Beispiel in JavaScript als Grundlage für Deine Experimente hernimmst. Mit ca. 200 Zeilen ist der Code auch etwas übersichtlicher als das große Script mit ca. 1600 Zeilen, und die Formularwerte werden von dem kleinen Script auch nicht verwaltet, sondern nur ausgelesen. Ein neues Textfeld geht z.B. so:

Quellcode

1
    Label:<input id="variablenname" type="text" value="wert" size="5" title="Kurze Beschreibung">


Wobei size und title natürlich optional sind.

Das Auslesen des Wertes geht dann so - hier zum Beispiel als Integer-Wert:

Quellcode

1
    variablenname = parseInt(document.getElementById('variablenname').value, 10);


Oder als reelle Zahl mit Dezimalpunkt:

Quellcode

1
    variablenname = parseFloat(document.getElementById('variablenname').value);


Oder als String einfach:

Quellcode

1
    variablenname = document.getElementById('variablenname').value;


Viel Erfolg! :-)

Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

21

Donnerstag, 20. April 2017, 09:35

Ja ja, ich hatte es genauso gemacht. Habe mich mit search an eine andere Variable gehängt und alles in Kopie wiederholt, nur offenbar irgendeinen Haken übersehen. Habe schon früher einiges in JavaSript gemacht, bloß immer nur das Nötigste, was ich gerade brauchte. Auch in Sun-Java war es so. (In PHP programmiere ich beruflich.) Das lange Script hatte ich genommen in der Hoffnung auf mehr Farbmöglichkeiten, irgendwann baue ich mal meine alten früheren Farbroutinen ein. Oder willst Du sie Dir ansehen ?
Wegen dem Auge müsste man aber mal das UltraFractal durchleuchten.
Dort ließen sich übrigens Komplexe Zahlen auch im Ganzen ansprechen, wie Z3 = Z1*Z2 mit Z1=a+ib, Z2=c+id,..
Geht das in JavaScript auch ?

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

22

Donnerstag, 20. April 2017, 10:09

Moin Gabi,

ja, das mit dem Bearbeiten von fremden Code ist schon nicht so einfach - das mache ich auch nicht gerne, weil man nie genau weiß, was da alles für "Fallstricke" lauern...

Bzgl. der Farbmöglichkeiten hat das kleine Script sogar einige Features, die es bei dem großen Script bisher noch nicht gibt, etwa eine Einstellmöglichkeit für die Linearität des Farbverlaufs. Ob das für Dein Auge relevant sein könnte, weiß ich nicht. Du kannst mir ja mal Deine Farbroutinen schicken - oder hier kurz erklären, was Du da gemacht hast.

Komplexe Zahlen gibt es in JavaScript direkt nicht, aber es gibt dafür Bibliotheken, z.B. (das erste, was ich mit Google gefunden habe):

math.js | an extensive math library for JavaScript and Node.js

Schneller als mit normalen Zahlen zu rechnen wird das allerdings nicht sein (um nicht zu sagen: vermutlich erheblich langsamer). Aber man kann es ja mal testen (Veruch macht kluch) und dann mal die Performance vergleichen.

Gruß,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

23

Donnerstag, 20. April 2017, 10:43

Hi nochmal,

gerade mal math.js in mein großes Script eingebaut:

1.) Oben im HTML-Header eingebunden:

Quellcode

1
<script src="math.min.js" type="text/javascript"></script>


2.) Funktion Iterate() angepasst:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function Iterate(x, y)
{
	var c = math.complex(x, y);
	var z = math.complex(0, 0);
	var it = 0;           // Iterationszähler

	while (it < g_par.itMax && math.abs(z) < 2)
	{
		//z = z * z + c;
		z = math.multiply(z, z);
		z = math.add(z, c);
		it++;
	}

	return it;
}


Funzt, aber laaaangsam: Für das Beispiel "Stern" 37 Sekunden statt 0,7 Sekunden (Faktor 53)... :(

Gruß,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

24

Donnerstag, 20. April 2017, 11:08

Jetzt haben sich unsere Eingaben gekreuzt. Will nur schnell ein Bild zeigen, das ich mit
return (Endzahl % g_par.itMax) + 1;
für koppl=0 für kunterbunt gemacht habe:



http://www.viva-vortex.de/JavaScript/AugeMitZwill0k0C.htm

Werde aber jetzt mit dem kleinen Programm weitermachen. Das koppl muss auch ins Formular.

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

25

Donnerstag, 20. April 2017, 11:42

Und mit Farbverlauf hatte ich gestern sowas hier erhalten.

k=0.0


k=0.5


Kann leider momentan keinen Sourcecode hochladen...
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

26

Donnerstag, 20. April 2017, 12:21

Ich eben auch (koppl=0):


Programm mit koppl (0.5 mit Punkt zu schreiben, kein Komma!) im Formular:
http://www.viva-vortex.de/JavaScript/AugeK3.htm

hier leicht andere while-Bedingung (symmetrischer, natürlich andere Bilder):
http://www.viva-vortex.de/JavaScript/AugeK44.htm

Hier war die Variante=1 eingestellt (Daten siehe oben im Bild):


Ein tolles Programm hast Du da gemacht, bin ganz begeistert, es nutzen zu dürfen.

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

27

Donnerstag, 20. April 2017, 16:03

Ja, das sieht jetzt schon echt gut aus. Schade, dass bei Variante 1 die Details im "Glaskörper" fehlen. Dafür sieht man die "Pupille" und die "Linse" besser.

So, und jetzt noch das Schädel-Fraktal! :D

Freut mich, wenn Du das Progrämmchen nützlich findest. Wissen sollte geteilt werden.
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

28

Donnerstag, 20. April 2017, 18:01

Gestern war die raum&zeit 207 im Briefkasten. Auf Seite 48 ist da ein Artikel von mir, da geht es um Fraktale und ihre Bedeutung fürs Lebendige.
Ich hoffe, dass sich nun mal paar Leser mehr hier her finden.

Zur Vorbereitung Schädel:
http://www.vitaloop.de/konjugiert.htm

nochmal Auge:
http://www.torkado.de/vorschau/zehnIterat.htm

Hier ein altes Schädel-Javascript, das zwar keine Bildausgabe hat, aber es spuckt Zahlenkolonnen für die Dynamik am Bildpunkt aus (die sind alle HTML-fehlerhaft, weil (nach Klick) das Seitenladen nicht endet. Was fehlt ? Mir längst klar, dass die Variablen nicht sauber deklariert sind, aber daran dürfte das nicht liegen, oder ? ):
http://www.torkado.de/progs/scripte/UFra…chSpinneNah.htm
Das könnten wir direkt hier reinkopieren (wenn mein Chef heute keine Wünsche mehr hat, muss sonst noch etwas jobben).

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

29

Donnerstag, 20. April 2017, 20:02

Endlich was zu zeigen:


Programm dazu:
http://www.viva-vortex.de/JavaScript/SchaedelK1.htm

Leider ist vom Schädel nichts zu sehen, wenn man koopl=0.01 einstellt und das Bild größer macht (Reinklicken mit rechter Maus).
Aber das liegt daran, dass ich bisher gar keine Double-Zahlen eingestellt habe. Mit den BigNumber und der Programmbibliothek bin ich noch nicht klar gekommen, blödes Englisch.

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

30

Donnerstag, 20. April 2017, 22:11

Es läuft sehr sehr langsam (runtergeladen, online garnicht), aber es bringt nichts:
http://www.viva-vortex.de/JavaScript/SchaedelK2.htm
man muss allerdings auch
http://www.viva-vortex.de/JavaScript/math.js
runterladen und ins gleiche Verzeichnis danebenstellen.
Auf einmal geht es gar nicht mehr ..

Irgendwie kommt mir das gruselig vor.
Haben sich (neben all den Browsern und Compilern) die "Zahlen" in den letzten 10 Jahren verändert ?

MfG

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

31

Freitag, 21. April 2017, 00:32

Hmm, ich glaube nicht, dass sich die Zahlen verändert haben. Braucht man denn wirklich eine höhere Genauigkeit als normale double-Zahlen? Immerhin kann ich sehr tief in das Bild hineinzoomen. Erst bei 47-maligem Hineinzoomen in das Schädelfraktal (SchaedelK1.htm) stoße ich an die Auflösungsgrenze - das entspricht einer Vergrößerung von 2^47 = 140 Milliarden.

Wenn die Berechnungsformel stimmt, dann kann es doch eigentlich nur noch an der Methode der Farbgebung liegen, dass der Schädel nicht sichtbar wird, oder...? Wo genau in dem ungezoomten Bild mit Koppelfaktor 0.01 müsste er denn stecken?
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

32

Freitag, 21. April 2017, 00:38

>Braucht man denn wirklich eine höhere Genauigkeit als normale double-Zahlen?

Es geht um sehr große und sehr kleine Zahlen. Z hoch minus Z (den Imaginärteil betreffend).
Wenn da y=1000 steht, dann kannst Du abschätzen, bei wieviel Iterationen es knall, immer mal unten (nahe der Null) und mal oben.
Jetzt fällt mir was ein...

Nein, das wars auch nicht. Es muss ein Fehler im Programm sein. Sobald koppl > 0 ist, geht es los.
Die Plus und Minus vor koppl kann man auch verkreuzt tauschen, das ändert normalerweise nicht viel.

Irgendeine Funktion steigt aus ( atan2, log, sin ?). Habe ich irgendwas nicht korrekt aufgerufen, das keine großen Zahlen verträgt ? Für die kosmische Birne um Null herum scheint es aber zu gehen.

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

33

Freitag, 21. April 2017, 01:18

Wenn Du den Verdacht hast, dass irgend ein Wert vielleicht zu groß werden könnte, dann ruf doch mal den Debugger auf (in Firefox: <Strg><Shift><S> und setze einen bedingten Haltepunkt. Also so, dass der Debugger anhält, wenn eine Variable eine bestimmte Größe über- oder unterschreitet.

Dass atan2 auch negative Winkel zurückgibt, hast Du schon berücksichtigt? Wenn das Programm positive Winkel erwartest, müsstest Du bei einem negativen Rückgabewert 2 * Math.PI hinzuaddieren, um auf den positiven Winkel zu kommen.
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

34

Freitag, 21. April 2017, 12:16

Habe jetzt auf reine Complex-Zahlen per Math.js umgestellt.
Hier lugt der Schädel schonmal um die Ecke, irgendwas ist in der Verkopplung noch fehlerhaft (unsymmetrisch) drin:





Zum Programm:
http://www.viva-vortex.de/JavaScript/SchaedelK3.htm

Es sind jetzt auch beide Zwillinge einzeln anzusehen/einzustellen.
Aber es dauert ...

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

35

Freitag, 21. April 2017, 13:24

Oh wie süß, da isser ja... Ist wohl noch ein bisschen schüchtern und traut sich noch nicht, sich ganz zu zeigen. Aber ich bin sicher, mit etwas Geduld und Zuwendung wird es schon klappen! :D

Vielleicht war ja in der Schreibweise mit den reellen Zahlen irgendwo noch ein Wurm drin... In der komplexen Schreibweise sieht die Iterationsberechnung auf jeden Fall auch schonmal etwas übersichtlicher aus. Und besonders lange dauert es bei mir erstaunlicherweise auch nicht - nach 2 Sekunden ist das Bild da.
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

36

Freitag, 21. April 2017, 15:10

Hier isser:


Das Programm:
http://www.viva-vortex.de/JavaScript/SchaedelK5.htm

Es lag an der Komponentenschreibweise des Koppelparameters. Die war nämlich korrekt (siehe SchaedelK3.htm).
Jetzt ist sie nicht mehr korrekt (SchaedelK5.htm), das war sie aber nie.
Ich bin sowieso über eine Reihe von Fehlern zu dem Schädelfraktal gestolpert. Hier hat jetzt die Multiplikation mit dem Koppelparameter keine gemischt-komplexen Anteile, der Koppelparameter ist also auch irgendwie konjugiert-komplex. Das sollte sich mal ein Mathematiker ansehen, vielleicht kommt dabei eine neue Skalarwellen-Zahlensorte raus, ist überfällig in der Mathemaik.
Habe keine Lust, das auch noch zu machen, und mich hört eh keiner.

Was mich verblüfft: Der Zwilling2 hat keine Ohren, das hatte ich früher nicht registriert, da waren meine Programme nicht so komfortabel in den Ein- und Ausgaben.


Er sieht irgendwie einem Asgard ähnlich ... Wo haben die ihre Ohren ?

Hier beide zusammen, die aber NACHEINANDER gerechnet wurden, anders als damals:

Damals hatte ich die Abbruchbedingung pro Bildpunkt nicht anschließend auf den anderen Zwilling bezogen, sondern ihn nur angesehen, wie er schon beim ersten Mal parallel gerechnet wurde (jedenfalls nach meiner Erinnerung): die Abbruchbedingung bezog sich beide Male auf den gleichen Zwilling. Hier werden momentan ja nur die Iterationszahlen bis zum Abbruch ausgewertet, keine Z-Werte.


Der Nullpunkt:



Hier ein ähnliches Bild mit dem Koordinaten-Raster:
http://www.torkado.de/progs/scripte/UFra…earchSpinne.htm

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

37

Freitag, 21. April 2017, 15:58

Bei der Suche nach dem Fehler hatte ich heute mal das C in das Verkopplungsprodukt mit rein genommen.
Folgendes kam heraus (etwas näher herangeholt als im Bild unten mit Zwilling2):


und an die Null herangeklickt (linke Maus):

Kein 'Cortex' mehr da. Die alleinstehende Minus 1 im Realteil scheint eine wichtige Rolle zu spielen.
Die 1 im Goldenen Schnitt x = 1/x -1 kann man auch nicht weglassen, ohne die 'göttliche' Konvergenz hin zur irrationalsten Zahl zu verlieren.

Der Zwilling2 sieht an der Null genauso aus, und vom Weiten so:


Das Programm dazu:
http://www.viva-vortex.de/JavaScript/SchaedelK6.htm

MfG
Gabi

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

38

Freitag, 21. April 2017, 22:10

Alter Stand wieder erreicht

So, nun mit gemeinsamer Abbruchbedingung in Variante 3 (als Zwilling=3 eingestellt):

Im ersten Bild wurde Linearität auf Lin. umgestellt (+ Button "Zeichnen" klicken) :


Das Herauszoomen erfolgte mit Rechts-Maus-Klick im Programm (unten das Link):


Das Programm (im Webseiten-Quelltext zu sehen und nach Download auf dem PC auch zu ändern):
http://www.viva-vortex.de/JavaScript/SchaedelK7.htm

22.4.17:
Eine noch neuere Version, wo man den Zoom-Faktor, der beim Klicken genommen wird, manuell ändern kann.
Auch als Kommazahl (evtl. für kurze Animationen in kleinen Schritten 1.1 oder so) einzugeben.
Aber immer erstmal auf den Button "Zeichnen" klicken, denn zwischen den Mausklicks wird die geänderte Zahl nicht eingelesen.
Außerdem findet man in 3 Textfeldern schonmal die Angaben zur Bildgröße und die Lage des Mittelpunktes, nur zum Rauskopieren (wird nicht eingelesen).

http://www.viva-vortex.de/JavaScript/SchaedelK8.htm

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

39

Sonntag, 23. April 2017, 13:36

Sehr schön, dann geht ja doch alles noch mit rechten Dingen zu... :) Ich hatte mich zuerst über die riesige Ausdehnung der komplexen Ebene gewundert (vierstellige Zahlen), aber anscheinend gehört das beim Schädel so.

Noch ein Tip zur Zoom-Funktion: Wenn Du das Einlesen des Zoom-Faktors aus dem Formular aus der Funktion Draw() nach Zoom() verschiebst, funktioniert das auch ohne vorheriges Zeichnen.

Ach so, und was mir im Sourcecode noch aufgefallen war: Die Anweisung "var math = require('mathjs');" ist überflüssig bzw. führt sogar zu einer Fehlermeldung auf der JavaScript-Konsole ("ReferenceError: require is not defined"). Diese Form der Einbindung eines anderen Moduls gilt nur bei Verwendung einer Bibliothek wie "Node.js". Bei "purem" JavaScript erfolgt die Einbindung im HTML-Header mittels "<script src="math.js" type="text/javascript"></script>".

Ich hatte das Apfelmännchen-Beispiel kürzlich übrigens nochmal aktualisiert. Unter anderem gibt's jetzt noch einen Schieberegler zum Einstellen eines Gammawertes für den Farbverlauf, und auch für die logarithmische Verlaufskurve lässt sich der "Entzerrungsgrad" jetzt über den Schieberegler anpassen. Außerdem werden Änderungen an den Farbeinstellungen jetzt auch sofort sichtbar ohne Neuberechnung (die Iterator-Werte wurden ja eh schon in einem Array zwischengespeichert und brauchen daher für eine Farbänderung nicht neu berechnet zu werden).

Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

40

Sonntag, 23. April 2017, 14:30

Danke für den neuen Kommentar, aber Deine Verbesserungsvorschläge kann ich erst später einarbeiten.
Habe gerade die 3 Programme aktualisiert auf 5 Varianten.
Variante 4 und 5 gibt die Ergebniszahlen als Farbe aus, Variante 1 bis 3 die Iteration (Zwilling 1, 2 und gemischt).
Der Farbparameter wird bei Variante 1 bis 4 automatisch heruntergesetzt, wenn er zu groß wurde. (Nur Variante 5 ist da frei, dafür in das Modulo drin).
Varianten 2 und 3 werden umgangen, wenn koopl=0 .
Mittelpunkt und Bildbreite kann jetzt per Formular neu anvisiert werden.
Das Apfelmännchen hat jetzt auch Zwillingsverfahren drin.

Aktualisierung auf alle drei K8 am 24.4.17:
Jetzt gibt es auch Koordinatenlinien ein- und auszublenden: Ein Mittelkreuz, ein Achsenkreuz x=0 und y=0 und einen einstellbaren Schritt für eine Distanz (erstmal nur) um Null, waagerecht und senkrecht.

http://www.viva-vortex.de/JavaScript/SchaedelK8.htm

http://www.viva-vortex.de/JavaScript/AugeK8.htm

http://www.viva-vortex.de/JavaScript/APK8.htm

Viel Spaß !

MfG
Gabi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gabi« (24. April 2017, 21:15)


Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

41

Montag, 24. April 2017, 21:34

Hier mal ein Beispiel für die neuen Koordinatenlinien (Nullinien Schwarz-Weiß, Abstandslinien Blau-Weiß):
Mittelkreuz mit dem anderen Häkchen (in Grün-Weiß). Beide Häkchen nicht erlaubt.
Abstand "Netz" =0 setzen wenn nur die Kreuze kommen sollen. Ohne Häkchen wird die Zahl ignoriert.


(Hier waren die Abstandslinien noch Rot-Weiß, jetzt sind sie Blau-Weiß, 25.4.17).

Zu diesem und den anderen Programm-Seiten (gehen offline, wenn man die Seite speichert):
(Die Browser IE und Edge tolerieren die Wartezeit nicht, Firefox eher, fragt notfalls nach, da muss man auf "Warten" klicken.)
http://www.viva-vortex.de/JavaScript/SchaedelK8.htm
http://www.viva-vortex.de/JavaScript/AugeK8.htm
http://www.viva-vortex.de/JavaScript/APK8.htm

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Gabi« (26. April 2017, 04:39)


Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

42

Montag, 24. April 2017, 22:34

Wird ja immer besser! :thumbsup:
JavaScript ist doch schon eine coole Programmiersprache, gell? 8)

Leider musst Du nun immer mehrere Programme redundant aktuell halten. Aber vielleicht machst Du daraus ja mal einen "Hybriden" mit Dropdown-Box zur Auswahl von "Schädel", "Auge" und "Mandelbrotmenge"... :) Brauchst ja nur 3 verschiedene Iterate-Funktionen und die dazugehörigen Parametersätze.

Habe inzwischen auch etwas rumgebastelt (Seite und Script auf Englisch, da in englischem Forum verlinkt).

Schönen Abend,
Stefan

P.S.: ;)
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

43

Dienstag, 25. April 2017, 12:10

>JavaScript ist doch schon eine coole Programmiersprache, gell?

Ja, es macht richtig großen Spaß.
Habe Deine Bastelei mal überflogen, lohnt sich sehr, das mal näher anzusehen.
Demnächst, muss erstmal wieder für den Job was machen.

Diesen Stern hatte ich vor über 10 Jahren gemacht (aus Apfelmännchen), die Sprungpunkte werden verbunden (Leider fehlen mir da auch die Koordinaten, die muss man sich gleich in den Bildnamen schreiben.):


Beginn außen, bei Grün.
Ohne die Verbindungslinien werden es Spiralen.

>daraus ja mal einen "Hybriden" mit Dropdown-Box

erst wenn ich alle drin habe, die auch in vitaloop.de sind .
Z.B. die Vierpolgleichung Z = (Z+C)/(1+C*Z^3), woraus
https://www.youtube.com/watch?v=pTPuLzyIB64
entstand. Oder hyperkomplexe Varianten von Wurzel aus Minus 1:
https://www.youtube.com/watch?v=6QUY4860Ql0

aber erstmal hätte ich gern längere Zahlen

Habe übrigens heute in die K8-Versionen noch die Netzlinien für das Mittelkreuz eingefügt, jetzt kann man gute Dokumentationen über seine Bilder machen. Holen muss man sie allerdings noch mit Screenshoot (Bildschirminhalt mit Taste "Druck" in den Zwischenspeicher, dann im Grafikprogramm Einfügen und Ausschneiden), aber da kann man gleich das Parameterformular mitspeichern, weil es direkt drüber steht (Siehe hier).

MfG
Gabi

Stefan

Z->Z²+C

  • »Stefan« ist der Autor dieses Themas

Beiträge: 27

Registrierungsdatum: 7. April 2017

  • Nachricht senden

44

Dienstag, 25. April 2017, 21:20

'n Abend Gabi,

> Ja, es macht richtig großen Spaß.

Kein lästiges Compilieren, kein Installieren für die Anwender... :thumbup:

> Habe Deine Bastelei mal überflogen, lohnt sich sehr, das mal näher anzusehen.

Habe das Script heute nochmal überarbeitet. Da die Berechnungszeiten dabei ja etwas länger werden können, erfolgt die Aktualisierung des Bildes jetzt im Sekundentakt.

> Demnächst, muss erstmal wieder für den Job was machen.

Ja ja, die leidigen "Brötchen"...

> Diesen Stern hatte ich vor über 10 Jahren gemacht (aus Apfelmännchen), die Sprungpunkte werden verbunden (Leider fehlen mir da auch die Koordinaten, die muss man sich gleich in den Bildnamen schreiben.):

Ja, auch dafür hatte ich mir ja letztens ein JavaScript-Progrämmchen geschrieben.

Hier ein Beispiel mit Linien:



Und hier eins mit Punkten:



>> daraus ja mal einen "Hybriden" mit Dropdown-Box
> erst wenn ich alle drin habe, die auch in vitaloop.de sind .

Wäre aber sicher auch (und gerade) während der Entwicklungsphase eine Erleichterung, weil Du nicht alle Ändernugen mehrfach vornehmen müsstest.

> aber erstmal hätte ich gern längere Zahlen

Ich meine, das wäre auch in math.js drin gewesen.

> Habe übrigens heute in die K8-Versionen noch die Netzlinien für das Mittelkreuz eingefügt, jetzt kann man gute Dokumentationen über seine Bilder machen. Holen muss man sie allerdings noch mit Screenshoot, aber da kann man gleich das Parameterformular mitspeichern, weil es direkt drüber steht.

Genau, mit Screenshot hat man die Parameter mit dabei. Ansonsten, um nur das Bild zu speichern, Strg-Taste gedrückt halten und Rechtsklick, dann "Grafik speichern unter".

Grüßli,
Stefan
Just on the border of your waking-mind
There lies another time
Where darkness and light are one

Gabi

Urgestein

Beiträge: 545

Registrierungsdatum: 27. September 2009

  • Nachricht senden

45

Mittwoch, 26. April 2017, 04:10

>Ich meine, das wäre auch in math.js drin gewesen.

bignumbers
Vielleicht kriegst Du es ja hin ? Mein Englisch scheint nicht auszureichen.

>Ansonsten, um nur das Bild zu speichern, Strg-Taste gedrückt halten und Rechtsklick, dann "Grafik speichern unter".

Danke, wusste ich noch nicht. Ist ja kein normales Bild.

Auch mit diesem hübschen Progrämmchen werde ich noch spielen, aber jetzt erstmal schlafen.

MfG
Gabi