### 1. Chaos

The logistic map is the iteration

$$ x_{n+1} = r x_n (1-x_n), $$

where $r$ is a parameter in the interval $[0,4]$. An earlier Example called "The logistic map and chaos" looked at the behavior of this function for fixed $x_0$ as a function of $r$. Here we do the reverse: fix $r$ and vary $x_0$. The situation was considered previously in [1].

The interesting behavior happens for $r\in [3,4]$ -- the famous phenomenon of period doubling to chaos. Let's begin with the chaos, which you see, for example, for $r=3.75$. Here is what happens after ten iterations of the map:

tic r = 3.75; x0 = chebfun('x',[0 1]); n = 10; x = x0; for k = 1:n, x = r*x.*(1-x); end LW = 'linewidth'; FS = 'fontsize'; plot(x,LW,1) ss = sprintf('r=%4.2f n=%d length(x)=%d', r, n, length(x)); title(ss,FS,12), axis([0 1 0 1])

Note that the length of the chebfun is slightly less than the mathematically exact value of $1025$. This appears to be due to an aliasing phenomenon, but we won't explore that here.

### 2. Period 2

Here is the same plot except for $r=3.25$, where this dynamical system is of period 2:

r = 3.25; x = x0; for k = 1:n, x = r*x.*(1-x); end plot(x,LW,1) ss = sprintf('r=%4.2f n=%d length(x)=%d', r, n, length(x)); title(ss,FS,12), axis([0 1 0 1])

One can see that $x$ takes essentially just 2 values. If we truncate the interval a little bit to avoid the complexity at the edges, then Chebfun can take 20 steps without difficulty:

n = 20; x0 = chebfun('x',[.02 .98]); x = x0; for k = 1:n, x = r*x.*(1-x); end plot(x,LW,1) ss = sprintf('r=%4.2f n=%d length(x)=%d', r, n, length(x)); title(ss,FS,12), axis([0 1 0 1])

Here are the two limiting values:

x(0.5), x(0.8)

ans = 0.495265168245476 ans = 0.812427139446847

Can you compute these analytically, or semi-analytically using Chebfun `roots`

?

### 3. Period 4

For $r=3.5$, the system has period 4:

r = 3.5; x = x0; for k = 1:n, x = r*x.*(1-x); end plot(x,LW,1) ss = sprintf('r=%4.2f n=%d length(x)=%d', r, n, length(x)); title(ss,FS,12), axis([0 1 0 1])

Here are the four limiting values, which again you may be able to compute with `roots`

:

x(0.5), x(0.62), x(0.77), x(0.83)

ans = 0.500884210318974 ans = 0.382819683208548 ans = 0.874997263532759 ans = 0.826940706746710

Time for this example:

toc

Elapsed time is 3.709241 seconds.

### Reference

- R. B. Platte and L. N. Trefethen, Chebfun: A new kind of numerical computing, in A. D. Fitt, et al.,
*Progress in Industrial Mathematics at ECMI 2008,*Springer, 2010.