JULIA SETS OF FUNCTIONS AND SEMIGROUPS

In this page we describe the methods used to create the OUTPUT SETS when

  1. SET TYPE = JULIA and PROCESS TYPE = RANDOM, and

  2. SET TYPE = JULIA and PROCESS TYPE = FULL

The COMPOSITE button and the INDIVIDUAL button will do the same thing when only a single INPUT FUNCTION is selected.  When multiple INPUT FUNCTIONS are selected the COMPOSITE button will follow the below algorithm B1 or B2.   When multiple INPUT FUNCTIONS are selected the INDIVIDUAL button will follow the below algorithm A1 or A2 for each selected function individually.  Thus if three INPUT FUNCTIONS are selected, then the INDIVIDUAL button will create three OUTPUT SETS, one for each selected INPUT FUNCTION.

1. SET TYPE = JULIA and PROCESS TYPE = RANDOM

A1. Single Function Iteration Algorithm (when only one INPUT FUNCTION is selected):

I. Call

II. Find a complex number z1 such that F(z1)=z0 (this involves finding an inverse image under the map F(z) - if more than one inverse image exists, then one of these is randomly chosen to be z1). Then, likewise find z2 such that F(z2)=z1. Iterate this process N+S times to get a sequence of complex numbers z0, z1,..., zN+S such that F(zn)=zn-1.

III. The set of points {zS+1, zS+2,..., zN+S}, formed by skipping the first S points of the sequence, is called the (Approximate) Julia set of F(z).  It is this set which is created as an OUTPUT SET and labeled with the map which generated it.  For N and S large we get better approximations to the actual Julia set of F(z).
 

B1. Multiple Function (Semigroup) Algorithm (when multiple INPUT FUNCTIONS are selected):

We follow the above algorithm A1, but with a slight change.  Call the selected INPUT FUNCTIONS by the names G1,..., Gk and change item II above as follows. Starting with z0 we randomly choose a map F1 from G0, ..., Gk and then calculate z1 such that F1(z1)=z0.  Then randomly choose a map F2 from G1, ..., G2 and then calculate z2 such that F2(z2)=z1 . Iterate this process N+S times to get a sequence of complex numbers z0, z1, ..., zN+S.  The set of points {zS+1, zS+2,..., zN+S}, formed by skipping the first S points of the sequence, is called the (Approximate) Julia set of the semigroup <G1,...,Gk> (acting in parallel).  In the right window the OUTPUT SET is labeled the COMPOSITE JULIA SET.

2. SET TYPE = JULIA and PROCESS TYPE = FULL

A2. Single Function Iteration Algorithm (when only one INPUT FUNCTION is selected):

I. Call

II. Find F-1({z0}), the set of ALL complex numbers w such that F(w)=z0 (this involves finding an inverse image under the map F(z)). Then find F-2({z0}) = F-1(F-1({z0})), the set of ALL complex numbers w such that F2(w)=z0. Continue this process until the set F-j({z0}) = F-1(...(F-1({z0}))) has at least N points.  This algorithm will often produce a set with many more than N points.

Note that if F(z) has degree 1, then all sets of the form F-j({z0}) will have only one point.  In this case the program is set to simply terminate with j=N.

III. The set of points F-j({z0}) is called the (Approximate) Julia set of F(z).  It is this set which is created as an OUTPUT SET and labeled with the map which generated it.  For N large we get better approximations to the actual Julia set of F(z).
 

B2. Multiple Function (Semigroup) Algorithm (when multiple INPUT FUNCTIONS are selected):

We follow the above algorithm A2, but with a slight change.  Call the selected INPUT FUNCTIONS by the names G1,..., Gk and change item II above as follows. Calculate the set J1=G1-1({z0})∪...∪Gk-1({z0}).  Then calculate the set J2=G1-1({J1})∪...∪Gk-1({J1}).  Continue this process until the set Jj=G1-1({Jj-1})∪...∪Gk-1({Jj-1}) has at least N points. 

If multiple INPUT FUNCTIONS are selected, then the sets Jj will necessarily grow in size.  Although this is not mathematically true (e.g., if each of the multiple input functions is of degree one and fixes the seed value), the computer will regard the repeated points calculated as distinct points in the set and therefore the size of the sets Jj will grow.  

The set of points Jj is called the (Approximate) Julia set of the semigroup <G1,...,Gk> (acting in parallel).  In the right window the OUTPUT SET is labeled the COMPOSITE JULIA SET.