CHAPTER 1(a) Iterations of One-Dimensional Maps

1.1 Iterations of Maps

Suppose we have a function f(x) is defined on the real numbers:

If (Subscript[x, 0]) is a real number, iterating (Subscript[x, 0]) under f gives (Subscript[x, 0]), f((Subscript[x, 0])), f(f((Subscript[x, 0]))), f(f(f((Subscript[x, 0])))), etc. We abbreviate this as f(f((Subscript[x, 0])))=(f^2)((Subscript[x, 0])), f(f(f((Subscript[x, 0]))))=(f^3)((Subscript[x, 0])), etc. The set
                         O((Subscript[x, 0]))={ (Subscript[x, 0, ])f((Subscript[x, 0])), (f^2)((Subscript[x, 0])), (f^3)((Subscript[x, 0])), … }
 is called the orbit of (Subscript[x, 0]) under the function f. For example,  set  f(x)=(x^2) and iterate first (Subscript[x, 0])=1.1. To execute the following cells, use “shift” and “enter” simultaneously when the cursor lies within the cell, or just the “enter” on your numeric key pad.

f[x_]:=x^2

f[1.1]

f[f[1.1]]

f[f[f[1.1]]]

NestList[f, 1.1,10]

Notice that to define a function using Mathematica we need to use the square brackets for the argument of the function, the argument having an underbar, and we use the colon and equal sign. For example f[x_]:=Sin[x] defines the sine function. The syntax for sine requires an upper case “S”, and square brackets around the argument. Provided the function has been defined in an input cell, when we hit “Shift” and “Enter” simultaneously (or the “Enter” on the numeric key pad), the cell will be executed, and Mathematica will store the function in its memory. The command  NestList[f, 1.1,10], when executed in a new input cell, will give 10 iterations of (x^2), with starting value (Subscript[x, 0])=1.1. In order to graph  f(x), on the interval   [a,b],  we use the command  Plot[f[x],{x,a,b}]  in a new input cell.


Note how rapidly the iterates  (f^n)((Subscript[x, 0]))   increase without bound. Now iterate  (f^n)((Subscript[x, 0]))  with(Subscript[x, 0])=.9 .

f[.9]

f[f[.9]]

f[f[f[.9]]]

NestList[f, .9,10]

In this case the iterates decrease rapidly to 0.

We see that in the first case,  (f^n)(x) → ∞  as n→ ∞, and in the second case (f^n)(x) → 0 as n→ ∞.  We do a similar procedure for some other familiar functions.

g[x_]:=Sin[x]

NestList[g, 3.,100]

In this case we see that  (g^n)(x) → 0 as n→ ∞, but the iterations decrease quite slowly.  We can verify this by graphing various iterates of g(x). A complete proof that the iterates converge to zero is given in Chapter 1 of the textbook.

Plot[g[g[g[x]]],{x,-6,6},AspectRatio->Automatic]

Now let us consider the cosine function.

h[x_]:=Cos[x]

NestList[h, 3.,100]

Plot[h[h[h[x]]],{x,-6,6}]

We see the behavior for cosine is quite different. It seems that here we have  (h^n)(x) → .73908 as n→ ∞,  the convergence being quite rapid (although difficult to see from graphing iterations of the function).

1.2 Web Plots.

The following module can be used to follow the iterations of one-dimensional maps. We start by considering the function g(x)=cos (x).  The cell below must be executed so that the command webPlot can be used. This module is used in a similar way to the Plot function, taking as input the function we are iterating, the interval under consideration, the starting point for the iteration and the number if iterations.

webPlot[g_,{x_,xmin_,xmax_},{a1_,n_}, opts_]:=Module[{seq, r, pts, web, graph}, r[t_]:=N[g/.x->t];seq=NestList[r,a1,n]; pts=Flatten[Table[{{seq[[i]],seq[[i+1]]},{seq[[i+1]],seq[[i+1]]}}, {i,1,n}],1]; web=Graphics[{Hue[0], Line[PrependTo[pts, {seq[[1]], 0}]]}];graph=Plot[{x,r[x]}, {x, xmin, xmax}, DisplayFunction->Identity]; Show[web, graph, opts, Frame->True, PlotRange->{{xmin, xmax}, {xmin, xmax}}]];

webPlot[Cos[x], {x,0,1.5}, {.2, 16}, AspectRatio->Automatic]

We see that the iterates approach a fixed point as n→ ∞. The fixed point can be found approximately using the FindRoot command. This command requires the use of the “double equal”, together with an approximation to the root.

FindRoot[Cos[x]==x,{x,1}]

Below are some iterations of the logistic map (Subscript[L, μ])=μ x(1-x), for various values of the parameter μ, 0 < μ ≤ 4, 0 ≤ x ≤ 1.

webPlot[2.5x(1-x), {x,0,1}, {.7, 16}, AspectRatio->Automatic]

In this case, the fixed point can be found exactly using the Solve command. Again we require the “double equal”, but no approximation to the root is required as we can obtain an exact value. The   command can be used to find exact solutions to certain polynomial equations and certain other equations whose solution can be obtained fairly easily.

Solve[2.5x(1-x)==x]

webPlot[2x(1-x), {x,0,1}, {.2, 16}, AspectRatio->Automatic]

A similar behavior is noted for the map f(x)=2x (e^(-x)).

webPlot[2x*E^(-x), {x,0,1}, {.2, 16}, AspectRatio->Automatic]

Again it is seen that the iterates approach a fixed point as n becomes large.

FindRoot[2x*E^(-x)==x,{x,1}]

However, this is not always the case, sometimes the iterates approach a periodic orbit.
A periodic point for a function f is a point (SuperStar[x]) with the property that (f^n)((SuperStar[x]))=(SuperStar[x]) for some n>1.  For example, let us look at the function f(x)=3.45x(1-x).

webPlot[4x(1-x), {x,0,1.2}, {.2, 50}, AspectRatio->Automatic]

No matter the choice of the starting point (Subscript[x, 0]), the iterates seem to behave quite randomly. We are seeing a type of chaotic behavior.

Exercises 1.1.

Use Mathematica and the module webPlot  to investigate what happens when the following functions are iterated. Find any fixed points:

(i)      (Subscript[L, 1])(x)=x(1-x), with starting point (Subscript[x, 0])=.75,

(ii)     (Subscript[L, 2])(x)=2x(1-x), with starting point (Subscript[x, 0])=.7,

(iii)    (Subscript[L, 3])(x)=3x(1-x), with starting point (Subscript[x, 0])=.2,

(iv)    (Subscript[L, 3.2])(x)=3.2x(1-x), with starting point (Subscript[x, 0])=.95,

(v)   f(x)=sin(x), with starting point (Subscript[x, 0])=9.5,

(vi)   h(x)=cos(x), with starting point (Subscript[x, 0])=-15.3.

Exercises 1.2.

1.    For the family of quadratic maps   (Subscript[f, c])(x)=(x^2)+c, use the module webPlot  to give graphical iteration for the values shown:

(i)     c=1/2, with starting point (Subscript[x, 0])=1,

(ii)    c=1/4, with starting point (Subscript[x, 0])=.1,

(iii)   c=1/8, with starting point (Subscript[x, 0])=.27.

2.   We can draw a plot of the orbit of a function in a different ways. Describe what the following commands give as output, and apply them to different functions, such as  sin(x), 2x(1-x), 3x(1-x), 4x(1-x),  and explain what is happening:

f[x_]:=Cos[x]

orbit[f_,a_]:=(A=NestList[f,a,10];
ListPlot[A])

orbit[f,10]

3.    If  f:[1,10]->[1,10], f(x)=(x^2) , 1≤x≤(Sqrt[10]), f(x)=x^2/10, (Sqrt[10])≤x≤10, use the module webPlot  to give graphical iterations for various values. Show that f(x) has a 2-cycle, and find it.