Iterated Function Systems
IFS is a Macintosh application for drawing the fractals created by iterated function systems. A standard example is the "Sierpinski gasket" which is the icon for the application. IFS requires MacOS 10.6 or later.
What it does
Iterated function systems are dynamical systems defined by a set of n mappings fi. In the case of IFS, we allow the fi to be affine maps of the plane:
f(x) = A x + b
where A =[[a,b],[c,d]] is a 2x2 matrix and b is a two dimensional vector. If 0 <|det(A)| < 1, then f is a contraction, and any point under iteration
approaches the unique fixed point x = - A-1 b.
An iterated function system allows the choice of any of the n affine maps with probabilities pi for the iteration, thus
x´ = fi(x) with probability pi
In the program, n is initially 3, and the pi = 1/3, so that it is equally likely to have any one of the fi. An iterated function system with contractions fi has a unique attractor S that satisfies the equation
S = f1(S) U f2(S) U … fn(S)
Often this attractor is fractal in structure. Making pictures of these attractors is the job for IFS.
Choosing a transformation The Sierpinski triangle is defined by the affine transformations fi with A = [[0.5,0,],[0,0.5]], and b1 = (0,0), b2= (0,0.5) and b3 =(0.5,0). To obtain this with the program choose "Sierpinski Relative" from the "Show" menu, and type in "0" for each of the symmetry elements.
The Sierpinski relatives have fi given by the same matrices as before, but composed with one of the 8 symmetry transformations of the square. We let D0 be the identity, D1 be the rotation by 90 degrees, and D4 be the reflection about the x-axis. The group elements are defined as
D0 = I
With the "Sierpinski relatives" menu, you can choose a symmetry element for each of the fi. This gives 28 possible attractors, of which 232 are distinct structures. There are four distinct topological types among these structures—to learn more about this see [Robins, 1997].
The second way to choose the transformations fi, is to use the "Similarity transformations" menu item. A similarity transformation is a rotation composed with a scaling. To choose each transformation you click twice in the plot window. The first click sets the vector b, which is the iterate of the origin. The second click chooses the position which the point (1,0) iterates to. So your second click chooses the angle through which the x-axis is rotated, as well as the length to which it is scaled. Hold down the option key to reflect the similarity (det(A) < 0). To choose all n-transformations, you must choose two points in the plot window for each.
Finally, you can choose a general affine transformation with the "Affine Transformation" menu item. The affine transformation is fixed by 3 vectors, the two columns of A and the vector b. A first click in the plot window fixes b, the second fixes the first column of A (setting the image of the point (1,0)), and the third click fixes the second column of A (setting the image of the point (0,1)).
Suggestions and comments welcome
This is a rudamentary version a MacOS Application, and as such is to be thought of as a rough outline of a complete program. Let me know your thoughts about how the program should improve!
This program is free for noncommercial use, but the copyright remains with the author. It may not be sold or included in any commercial collection without the express written approval of the author.
Known Problems (might be called bugs)
Barnsley, M. (1988). Fractals everywhere. Boston, Academic Press.
Peitgen, H. O., H. Jürgens, et al. (1992). Chaos and Fractals. New York, Spinger-Verlag.