Experiment: Windows in the Orbit Diagram

Goal: The goal of this experiment is twofold. The first objective is for you to see the remarkable structures and patterns that occur in the orbit diagram. The second aim is to investigate the similarities and differences between two typical orbit diagrams: the diagrams for the quadratic function (Subscript[Q, c])(x) = (x^2) + c and the logistic function (Subscript[F, λ])(x) = λ x(1 - x). Recall that a periodic k window in the orbit diagram consists of an interval of parameter values for which we find an initial attracting period k cycle together with all of its period-doubling "descendants." For example, in the big picture of the quadratic family's orbit diagram, we clearly see a period 1 window and a period 3 window. Remember, "period" here means the period of the attracting orbit before it begins to period double. (See Figure 8.10. in the book).

Procedure: The objective of this experiment is to catalog a number of smaller windows in the orbit diagrams of both (Subscript[Q, c])(x) = (x^2) + c and (Subscript[F, λ])(x) = λ x(1 - x). Clearly, the period-1 and -3 windows are the most visible for each of the two families. Now magnify the region between these two windows for the quadratic family. What do you see? The two largest windows are clearly of period 5 and 6. This is the "second generation" of windows. There are other smaller windows visible, but we record only the two widest windows at this time. We will record the order of the windows as follows:

Quadratic function:

Generation 1:  3          1
Generation 2:  3          5          6          1

Note that we ordered the windows as they appear from left to right. Now go to the next generation. Find the periods of the two "largest" windows between the period-1 and -6 windows. Call these periods A and B. Then find the periods of the largest windows between the period-5 and period-6 windows. Between the period-3 and -5 windows there should be one largest window. Find the period of this window. You should thus be able to fill in this chart by supplying the periods A-E, which represent the periods of the largest windows in the order given.

Quadratic function:

Generation 3:  3          E         5         D         C        6         B        A       1

Now proceed to generation 4. In this case we will find only the largest windows between the period 6 and period B, period B and period A , and finally period A and period 1 windows. The largest windows have periods α-ϵ as indicated in the following chart:

Quadratic function:

Generation 4:  6          ϵ          B           δ         γ        A         β        α       1

Notes and Questions: 
1.The periods of the windows near the left end of this chart may be a judgment call: you don't need to spend hours trying to figure out which window is biggest. Just eyeball it! Also, you may have to magnify the individual windows in order to read off the periods.

2. Do this for both (Subscript[Q, c])(x) = (x^2) + c and (Subscript[F, λ])(x) = λ x(1 - x)and then compare your charts for both of them. Are there any differences? Any similarities? Write a short paragraph about this.

3. Is there a pattern discernible (especially near the period-1 end of your chart)? What is it?

4. Using this pattern, can you predict what the period-1 end of the list at generation 5 will be? Perhaps from the period-1 to the period-A window?

5. Thought question. Do you see the "darker" curves running through the orbit diagram? What do you think they represent?

Bifurcation Diagram

Define the function (Equation), and specify the limits of the parameter c (Initialc and Finalc) in which you want to work. To simplify the use of the program use the same name for both parameters, i.e., (Subscript[Q, c])(x) = (x^2) + cand (Subscript[F, c])(x) = c x(1 - x). However, remember that the ranges of the parameter c for which the diagram make sense is different for each of the functions. Also, specify the total number of iterations (Iterates) and the number of iterations to drop (DropIterates) to make the diagram neat. Divisions is the number of points in the interval (Initialc, Finalc) to be used in the calculations. The first cell initializes some general settings and the second one plots the bifurcation digram in the specified range.

Note: When trying to plot the bifurcation diagram with Finalc = 0 for (Subscript[Q, c])(x) = (x^2) + cwe get an underflow error message because iterates of the Random[] seed (which lies between zero and one) under Q(x)  = (x^2)goes to values smaller than the limits assumed by Mathematica ($MinNumber). If we want to avoid the message we can use Finalc = -(10^(-3)) instead of 0, for example.

Equation = 
        Function[x, c x (1 - x)];
FunctionName = "Logistic equation";
$TextStyle = {FontFamily -> "Times", 
          FontSize -> 14};
Initialc = 0; Finalc = 4;
Iterates = 400;
DropIterates = 300;
Divisions = 1000;

OrbitFunction[c_] := 
        Take[NestList[Equation, Random[], 
            Iterates - 
              1], -(Iterates - 
                DropIterates)];
DataSet = 
        Table[{c, OrbitFunction[c]}, {c, Initialc, 
            Finalc, (Finalc - Initialc)/(Divisions + 
                  1)}];
DataPlot = 
        Flatten[Table[{DataSet[[n]][[1]], DataSet[[n]][[2]][[i]]}, {n, 1, Length[DataSet]}, {i, 1, 
              Iterates - DropIterates}], 1];
BifurcationDiagram = 
        ListPlot[DataPlot, Frame ->  True, Axes -> False, 
          PlotRange -> {{Initialc, Finalc}, Automatic}, 
          PlotJoined -> False, 
          PlotStyle -> 
            AbsolutePointSize[
              0], 
PlotLabel -> "Bifurcation Diagram \
for the " <> FunctionName <>  ",  " <> 
                ToString[Initialc] " ≤ c ≤ " <> 
                ToString[Finalc], FrameLabel -> {"c", "x"}, 
          RotateLabel -> False, ImageSize -> 500];