Bifurcation Diagrams

Math 242 Modern Computational Mathematics

Logistic Map Code

We will again start with the logistic map (Subscript[f, r])(x)=r x (1-x):

f[r_][x_]:=r*x(1-x)

Here is a Manipulate environment that draws the “time series” view of the trajectory for specified parameter r and starting value (Subscript[x, 0]).

Manipulate[
ListPlot[NestList[f[r],(Subscript[x, 0]),80],PlotRange->{0,1},AxesLabel->{"iteration","value"},Joined->True,Mesh->All,AspectRatio->1/5],{r,0,4},{(Subscript[x, 0]),0,1}]

Bifurcation Diagrams

A bifurcation diagram shows the long-term behavior of lots of trajectories. Specifically, we will compute trajectories for lots of r-values in some interval (Subscript[r, start])<r<(Subscript[r, stop]). For each trajectory, we will ignore the first few values and focus on the “tail.” For each value x in the tail of a trajectory of (Subscript[f, r]), we will plot the point (r,x).

bifurcationDiagram[f_,start_,rStart_,rStop_,rStep_,numIter_,numTail_]:=Module[
{allPoints={},traj,tail,points},

(* repeat for lots of r values *)
Do[
(* compute a trajectory *)
traj=NestList[f[r],start,numIter];
(* take the tail of the trajectory *) 
tail=traj[[-numTail;;]];
(* form points (r,x) for all values x in the tail *) 
points=Table[{r,x},{x,tail}];
(* add the points to the big list allPoints *) 
allPoints=Join[allPoints,points]
,{r,rStart,rStop,rStep}];

(* return a graphics object that plots all of the points *) 
Graphics[ {PointSize[0.001],Opacity[0.1], Point[allPoints]}, AspectRatio->1/2,Frame->True]//Quiet
]

Let's make our first bifurcation diagram:

Now zoom in on the region 3<=r<=4:

What do you notice? What do you wonder?

Create more bifurcation diagrams, experimenting with various parameter values, to explore the properties of the logistic map.

For which positive integers k can you find a k-cycle?