Math 2325
Project 5 (Chapter 14) - Iteration of Quadratic Functions

Helmut Knaust, Department of Mathematical Sciences, UTEP, El Paso TX 79968
hknaust@utep.edu
10/31/2012. Last edit: 11/08/2023

A Repellent 2-Cycle

IterQuad[a_,n_,x0_]:=NestList[Function[x,a x(1-x)],x0,n]

We consider the case a=(7/2):

g[x_]=7/2 x (1-x)

To find the fixed points of g∘g, we have to solve the following fourth-degree polynomial equation:

Simplify[g[g[x]]-x==0]

Fortunately, all four solutions are rational. 
Here are the solutions of the equation (g∘g)(x)=x:

sol=Solve[g[g[x]]==x][[All,1,2]]

Two of these four solutions are also solutions of g(x)=x. The other two solutions yield a repellent 2-cycle.
In the graph below, g(x) is depicted in red and g(g(x)) is blue.

Plot[{g[x],g[g[x]],x},{x,0,1},ImageSize->600,PlotStyle->{{Red,Thick},{Blue,Thick},{Dashed}},Ticks->{Table[i/7,{i,1,7}],Automatic},Epilog->{{AbsolutePointSize[7],Black,Point[{0,0}],Point[{3/7,3/7}],Point[{5/7,5/7}],Point[{6/7,6/7}]},{Dotted,Black,Line[{{3/7,0},{3/7,3/7}}],Line[{{5/7,0},{5/7,5/7}}],Line[{{6/7,0},{6/7,6/7}}]}}]

N[3/7]
N[6/7]

IterQuad[7/2,100,3/7]//FullSimplify

If the iterative process starts close to the 2-cycle, the iterations actually move towards an attractive 4-cycle.

IterQuad[7/2,100,3/7-.01]

If you want to try an example yourself, try a = (23/6) or a=(32/9) (you can either modify the code or do it by hand).

Two Examples of Repellent 3-Cycles

The first example of a 3-cycle is for a=4.

f[x_]=4x(1-x)

The function itself has two fixed points, x=0 and x=(3/4):

Solve[f[x]==x]

The threefold composition of f(x) has 8 fixed points, including the two above. Note that Mathematica can only find 2 more solutions analytically:

Solve[f[f[f[x]]]==x]

Here are numerical approximations:

Solve[f[f[f[x]]]==x]//N

With a little more work, we can get two more analytic solutions:

Solve[f[f[f[x]]]==x,Cubics->True]//FullSimplify

x=(cos^2)((π/18)) produces a 3-cycle (You can check this by hand, in the end using the fact that cos((π/18))=sin(((4π)/9))):

f[(cos^2)((π/18))]//FullSimplify

f[(sin^2)((π/9))]//FullSimplify

f[(sin^2)(((2 π)/9))]//FullSimplify

ItPoints[itlist_]:=Partition[Drop[Drop[Flatten[Transpose[{itlist,itlist,itlist,itlist}]],1],-1],2];
IterGraph[a_,n_,x0_,pr_:{0,1}]:=Show[ListPlot[ItPoints[IterQuad[a,n,x0]],Joined->True,PlotRange->{pr,pr}],Plot[{x,a x (1-x)},{x,0,1},PlotStyle->{{Red,Thick},{Green,Thick}}]]
IterGraphEnd[a_,n_,x0_,k_:16]:=Show[ListPlot[Drop[ItPoints[IterQuad[a,n,x0]],2(n-k)],Joined->True,PlotRange->{{0,1},{0,1}}],Plot[{x,a x (1-x)},{x,0,1},PlotStyle->{{Red,Thick},{Green,Thick}}]]

IterGraph[4,3,(((Cos[(π/18)]))^2)]

This 3-cycle is indeed repellent:

IterGraph[4,10,(((Cos[(π/18)]))^2)-.01]

The second example is for a =(31/8)=3.875.
We will only be able to do numerical computations.

g[x_]=31/8 x (1-x)

Here are the fixed points of g(x):

NSolve[g[x]==x]

The threefold composition of g(x) has 8 fixed points, including the two above.

NSolve[g[g[g[x]]]==x]

These remaining 6 roots generate two 3-cycles.

IterQuad[3.875,20,0.13815782200415294`]

IterQuad[3.875,20,0.17763393655911747`]

Both 3-cycles can be checked to be repellent.

p1=IterGraph[3.875,9,0.13815782200415294`]

p1=IterGraph[3.875,9,0.01+0.13815782200415294`]

p2=IterGraph[3.875,9,0.17763393655911747`]

p2=IterGraph[3.875,9,0.001+0.17763393655911747`]