Lorenz-Gleichung
Als einer der ersten hat um 1960 Edward Lorenz, ein Meteorologe am Massachusets Institut of Technology (MIT), erkannt, daß Iteration Chaos erzeugt. Er benutzte dort einen Computer, um ein einfaches nichtlineares Gleichungssystem zu lösen, das ein simples Modell der Luftströmungen in der Erdatmosphäre simulierte.
Das System funktioniert nach folgender einfacher Formel:
- dx/dt = ςx + ςy
- dy/dt = ρx - y - xz
- dz/dt = γz + xy
In unserem Beispielprogramm (wie auch in der Lorenzschen Originalgleichung) sind ς = 10, ρ = 28 und γ = 8/3. Die Parameter der Gleichung sind aus [Stew1993].
Wir benutzen zur Darstellung der dreidimensionalen Kurve einen simplen Trick: rot ist die Projektion in die x-y-Ebene und blau die Projektion in die x-z-Ebene.
Quellcode
// Konstanten Deklaration: float SIGMA = 10.0; float RHO = 28.0; float GAMMA = 8.0/3.0; float STEP = 0.01; int MAXSTEP = 50; // Die Skalierungsfaktoren in x- und y-Richtung: float XFAC = 6.0; float YFAC = 4.5; // Variablen-Initialisierung: float dx, dy, dz, x, y, z, xOld, yOld, zOld, t; void setup() { size(400, 400); background(0, 0, 0); noLoop(); } void draw() { xOld = 0.01; yOld = 0.01; zOld = 0.0; t = 0; while (t < MAXSTEP) { // Die Berechnung nach dem Eulerverfahren (Polygonzugmethode): dx = SIGMA*(yOld - xOld)*STEP; dy = (-xOld*zOld + RHO*xOld - yOld)*STEP; dz = (xOld*yOld - GAMMA*zOld)*STEP; x = xOld + dx; y = yOld + dy; z = zOld + dz; // Dann das Kurvensegment skalieren und zeichnen: // x-y-Projektion in Rot: stroke(255, 0, 0); line((int)(XFAC*xOld) + 200, 250 - (int)(YFAC*yOld), (int)(XFAC*x) + 200, 250 - (int)(YFAC*y)); // x-z-Projektion in Blau: stroke(0, 0, 255); line((int)(XFAC*xOld) + 200, 250 - (int)(YFAC*zOld), (int)(XFAC*x) + 200, 250 - (int)(YFAC*z)); t += STEP; xOld = x; yOld = y; zOld = z; } }
Das Programm ist ein Beispiel dafür, wie man schon mit einfachen Mitteln in Processing ein dynamisches System berechnen und visualisieren kann.
Literatur
- [Herm1994]: Dieter Hermann: Algorithmen für Chaos und Fraktale, Bonn (Addison-Wesley) 1994, S. 80ff.
- [Pief1991]: Frank Piefke: Simulation mit dem Personalcomputer, Heidelberg (Hüthig) 1991
- [Stew1993]: Ian Stewart: Spielt Gott Roulette?, Frankfurt (Insel TB) 1993
Links
- Der Lorenz-Attraktor als Animation mit Grapher erzeugt.
