====== 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. {{processing:lorenz.png?398x398|Lorenz-Gleichung}} 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 [[Dynamische Systeme|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.