A Julia Histogram

The histogram reveals a weakness in the simple approach to the inverse iteration algorithm for Julia sets. In this simple approach, we start with an initial point and build up a list of many points by continually applying the inverse image. For example, we may construct an image of the Julia set for c=-1 as follows:


c = -1;   depth = 12;
invImage[complexPoints_] := 
    N[{1,-1} Sqrt[#-c]]& /@ complexPoints // Flatten;
points = {Re[#], Im[#]}& /@ Nest[invImage, {1}, depth];
ListPlot[points, Axes -> False, AspectRatio -> Automatic,
    Prolog -> {AbsolutePointSize[0.4]}]
Unfortunately, some regions are much more attractive under the action of the inverse than others. To illustrate this, we can create the above histogram like this:

res = 50;
choppedPoints = Floor[res points]/res;
countedPoints = {#,Count[choppedPoints,#]}& /@ choppedPoints // Union;
lines = Line[{Append[First[#],1], Flatten[#]}]& /@ countedPoints;
Show[Graphics3D[lines], BoxRatios -> {1,.55,.25}, Boxed -> False,
    Axes -> False, PlotRange -> All]
I have some Mathematica code which improves this algorithm. The technique is fully described in my forthcoming article in Mathematica in Education and Research.
[UNCA | Math Dept. | Mark's Home]