The Lorenz Strange Attractor

What is a strange attractor? That is a hard question. It's sort of like defining "good art". It is very difficult to define, but you know one when you see one. Strange attractors are generally the graph of the behavior of some system that is unpredictable but patterned in some way. The way a body orbits three or more gravitating bodies is a very good example. Another good example is the strange attractor attributed to Lorenz.

Lorenz was studying weather prediction, and he developed a rather simple model involving a differential equation in three space. He had great difficulty solving this equation numerically because it is very sensitive to its initial conditions. This sort of sensitivity has come to be part of the definition of chaotic systems. The differential equation he was working with was:

df(t)/dt=[a(y-x), bx-y-xz, xy-cz]

or

df(t)/dt = A*[y-x,x,-z]-[0,y+xz,-xy] where A=[a,b,c], V=[x,y,z], and * denotes the dot product

Common initial conditions are f(0)=[x, y, z]=[0.1, 0, 0]. Common values for the constants are: A=[a,b,c]=[10.0, 28.0, 8/3]. The picture below is a plot of this equation projected onto the XY-plane. The equation was solved using a short C program implementing a very simple version of Euler's method and was graphed with Povray. Povray is a bit of overkill for such a simple graph, but the flexibility gained for further investigation of the curve is very valuable. The Povray input file can be found here. If you don't have a C compiler, shame on you, here is a Perl version. If you don't have Perl, then double shame on you. :)

Most often people use Euler's method to solve this equation. To obtain the best plots some form of adaptive Euler must be used, or a more sophisticated technique like RK. The picture below was generated with Povray like the one above, but it has a diffrent point of view and no cylinders are used to connect the spheres. The Povray input file can be found here. The Povray include file was generated with a strange, adaptive version of Euler's algorithm that attempts to bound the magnitude of the delta on f at each step. Here is a C program implimenting this algorithm. Again, if you don't have C, you can find a Perl version here. Without this kind of bounding, the spheres making up the picture would not form a smooth intrsection. In fact, adjsent spheres would not even touch in some cases.

Click to enlarge

Click here for a movie (about 1MB)

 
 Copyright 2006 Mitch Richling