Question: Problem when iterating a discrete map

Hello

After getting help from users on this list, I wrote an example on how to iterate a discrete map using a given initial condition as follows:

restart:with(ListTools):
NestList := proc (f, x, n::nonnegint, nprec::posint := 10) local R, k; R := rtable(0 .. n, [x]); Digits := nprec; for k to n do R[k] := expand(f(R[k-1])) end do; [seq(R)] end proc:
logistic := proc (x) options operator, arrow; 4*x*(1-x) end proc:
fp := [solve((logistic@@5)(x) = x, x)]:
cfp := allvalues(fp[5]);
nstep:=12:
p := nstep+50; 
aaa := Flatten(map(`~`[Re], evalf(NestList(logistic, evalf(cfp), p)))); 
dat := [seq([i-nstep-1, aaa[i]], i = 1 .. p)]; 
plot(dat, style = pointline, symbol = solidcircle, symbolsize = 4, thickness = 0, view = [default, 0 .. 1]);

The result should be a period 5 and some chaotic data due to machine precision. However the trajectory ejected to infinity. I have tried with a different initial condition, say 0.1, and it worked just fine. Even if the precision is increased, the trajectory (orbit) will eventually eject to infinity.  I couldn't spot what is wrong.

I am running Maple 2017 on linux and on a mac. 

Many thanks

Ed

 

Please Wait...