This article is from the Fractal FAQ, by Ermel Stepp firstname.lastname@example.org with numerous contributions by others.
If a fractal is self-similar, you can specify mappings that map the
whole onto the parts. Iteration of these mappings will result in convergence
to the fractal attractor. An IFS consists of a collection of these (usually
affine) mappings. If a fractal can be described by a small number of
mappings, the IFS is a very compact description of the fractal. An iterated
function system is By taking a point and repeatedly applying these mappings
you end up with a collection of points on the fractal. In other words,
instead of a single mapping x -> F(x), there is a collection of (usually
affine) mappings, and random selection chooses which mapping is used.
For instance, the Sierpinski triangle can be decomposed into three self-
similar subtriangles. The three contractive mappings from the full triangle
onto the subtriangles forms an IFS. These mappings will be of the form
"shrink by half and move to the top, left, or right".
Iterated function systems can be used to make things such as fractal ferns
and trees and are also used in fractal image compression. _Fractals
Everywhere_ by Barnsley is mostly about iterated function systems.
The simplest algorithm to display an IFS is to pick a starting point,
randomly select one of the mappings, apply it to generate a new point, plot
the new point, and repeat with the new point. The displayed points will
rapidly converge to the attractor of the IFS.
An IFS fractal fern can be viewed on the WWW at
Frank Rousell's hyperindex of clickable/retrievable IFS images: