Julia sets form a beautiful and varied class of fractals. Spectacular color images of these sets may be generated using the well known escape time algorithm (see [Peitgen and Richter 1989]). In this article, however, we discuss several variations of the inverse iteration algorithm. Inverse iteration algorithms are extremely fast, broadly applicable, and easily understood. Furthermore, an understanding of inverse iteration illuminates the connection between Julia sets of quadratic functions, more general rational functions and, even, self-similar sets.
We begin with a brief look at the theory of Julia sets. An intuitive understanding of the theory will explain the idea behind inverse iteration and why it works. We then look at the implementation of inverse iteration for certain quadratic functions, carefully refine the technique, and generalize it to more arbitrary functions. Finally, we discuss a stochastic algorithm, which is reminiscent of the chaos game.
All the code in this article is encapsulated in the package JuliaSet, whose use will be illustrated throughout.