Introduction
Dynamical systems is a major mathematical discipline concerned with how things change. It started with Isaac Newton as a part of physics and his laws of motion which described how a system changes with time. By solving the equations of motion, we could predict where the system would be after a certain amount of time. This proved problematic when we found that trying to find a succinct equation for the motion of three celestial bodies is exceedingly difficult, perhaps even impossible. The work Henry Poincaré later made a perspective shift from explicitly solving a system to, instead examine the structure of the system. Instead of asking, “In what state will the system be at time \(T\)?” We ask, “Will the system move to some stable or predictable configuration or will it just go absolutely bonkers?”
Suppose we want to know how the population of impala (Aepyceros melampus) on a farm will change with time. We could create an equation to describe this growth. Say \(x_n\) is the population at some time \(n\) and \(\mu\) is the growth rate of the population. We also know that the farm can only support a finite number of impala, say \(N\). Each year, we can predict the population of the following year with \[ x_{n+1} = \frac{\mu x_n (N  x_n)}{N}. \] We can simplify this equation by setting \(r = \mu N\) and renaming \(x_n/N\) as \(x_n\), since \(N\) is a fixed and known number. Then we have an easier equation to work with: \[ x_{n+1} = rx_n(1  x_n), \] where \(x_0\) is the number of impala when we start using the model. This equation is known as the Logistic map or the Verhulst population model.
Now we have a set of possible values for the population and a function to find how to get from one value to the next. The set of values is called the phase space and we denote it with the symbol \(X\). The function that characterises the evolution we denote with \(f\).
We call the pair of symbols \((X, f)\) a dynamical system^{1} when \(X\) is a space in which two distinct points have some distance between^{2} them and \(f \colon X \rightarrow X\) is a mapping such that for any open set \(V\), a subset of \(X\) (symbolically: \(V\subset X\)), \(f^\leftarrow[V]\) is an open subset of \(X\). The (discrete) dynamics of the system is found by taking successive applications of the map \(f\) on some initial point \(x_0\): \[ \begin{aligned} \underbrace{f(f(\ldots(f(x_0))}_{n \text{ times}} &= (f \circ f \circ \cdots \circ f) (x_0)\\ &= f^n(x_0). \end{aligned} \] We define \(f^0(x_0) = x_0\) and notice that we have the property that if \(k\) and \(n\) are in \(\mathbb{Z}^+\), \[(f^n \circ f^k)(x_0) = f^{n+k}(x_0).\]
An orbit of a given point \(x_0\) is exactly the set \(\left\{f^n(x_0) \colon n \in \mathbb{Z}^+\right\}\) or more explicitly: \[ \left\{ x_0, f(x_0), f^2(x_0), \ldots, f^n(x_0), \ldots \right\}. \]
We will use this idea to examine the behaviour of the map \[ f(x) = rx(1  x) \] for some fixed real number \(r\) on the space \(X\). We will find that even such a simple mapping has some interesting behaviour: the system \(([0,1], f)\) is chaotic when \(r = 4\).
The Logistic Map
We start by examining an example of the logistic map. Suppose that \(X = [0,1]\) and \(f(x)= rx(1x)\) where \(r\) is some fixed, but arbitrary, parameter greater than \(0\) but less or equal to 4. To illustrate the dynamics of this system: pick some number in \(X\), say \(0.5\), and call it \(x_0\), and let \(r = 2.7\). We get the following sequence: \[ \begin{aligned} x_0 &= 0.5 \\ x_1 &= f^1(x_0) = 0.675 \\ x_2 &= f^2(x_0) = 0.5923125\\ \vdots \end{aligned} \]
We see that after a while the iterations settle down around a fixed value: \(1  1/2.7 = 17/27\). This is better illustrated in Fig. 2.
The point that the iterations eventually settle on is called an attractor. An attractor is not necessarily a point, in some cases we get what is known as a stable periodic orbit.
Even if we choose \(x_0 = 0.6\), we get that the iterations tend to the periodic orbit. In other words, a “small” change in initial condition does not change the long term behaviour of the system.
Notice that the red line intersects with the blue parabola at two points. This seems to imply that there should be two points at which taking the map would just return that point, fixed points. The one is \(17/27\) and the other \(0\). The point \(0\) is lonely because any initial condition that starts close to it will not stay. This means that \(0\) is an unstable fixed point; as opposed to the stable fixed point at \(17/27\). If we change \(r\) to \(1\), we can get different behaviour. In fact, we lose one of our fixed points and \(0\) becomes stable.
Playing around with the values of \(r\) seems quite fruitful for exploring the dynamics of the logistic map, so why not let \(r = 4\)? It is a nice choice for \(r\) since it would mean that \(f[X] = X\), instead of some subset of \(X\). This choice of \(r\) leads to some interesting dynamics.
The evolution of the logistic map with this choice of \(r\) does not seem to have structure to it, i.e. it does not move toward or away from some points and there does not seem to be any periodic behaviour either. Let us see what happens with two initial conditions that start close together. So we choose \(x_0^* = 0.3\) and \(x_0^\dagger = 0.300001\).
We see that the two initial conditions start closely together and then their course of evolution changes dramatically. Notice that the values are also spread out over the \(y\)axis – the points seem to be mixing evenly over the entire interval. If it is the case that \(f^n(x_0)\) visits every open set in \(X\) infinitely often, we say that \(x_0\) is a transitive point.
It would now be natural to ask whether there is some way to classify the change in dynamics for a change in the parameter value. We are relieved to know that it can: bifurcation theory allows us to examine and classify the change of dynamics as the parameter values change (2007, Meiss: 267). A simple visual tool that we can use to examine the bifurcation behaviour of the logistic map is called a bifurcation plot. If we discard some of the initial iterations, and plot the \(x\) values for each \(r\) value, we get a visual representation of the dynamics for each \(r\).
In Fig. 8 we can see that there are several points where the dynamics bifurcate to create periodic orbits. We can see that, starting at \(r = 3\), the period of the dynamics double. There is another such period doubling that happens just before \(r = 3.5\) and another just after \(r = 3.5\). In fact, there is an infinite sequence of these values of \(r\) for which the period doubles. The rate at which these period doubling bifurcations happen is called the first Feigenbaum constant and the point \(r^*\) is called the Feigenbaum point (2014, De Vries: 9).
The dark veils that create these beautiful lines in the more general unstructured shimmer are unstable fixed points for each value of \(r\) and each of the open white bars are periodic orbits that occur amidst the surrounding chaos. The large white band on the right is a \(3\)cycle periodic orbit that then undergoes a similar cycle doubling cascade, similar to the initial cascade. If we zoom into the bifurcation map, \(r \in [3.5, 3.6]\), Fig. 9 shows another interesting property of the bifurcation map, it is selfsimilar.
Let us take a step back and fix again \(r = 4\). In 1870 Ernst Schröder wrote a paper “Ueber iterirte Functionen” (On iterating functions) in which he used a functional equation (it takes a function as an input) and found a solution to the logistic map with our fixed parameter, \[x_{n+1} = \sin^2(2^n \theta),\] where \(\theta\) is an initial condition parameter and must be chosen such that \[x_0 = \sin^2\theta.\] There are other values for \(r\) for which there are known exact solutions (Maritz, 2020: 2). In fact, Maritz (2020) proposes a method of constructing a general solution to the logistic map with \(r \in (2, 4)\).
Chaos
Chaotic behaviour used to be a controversial topic in mathematics. So much so that the text “Chaos, Fractals and Noise” by Lasota and Mackey was first published under “Probabilistic Properties of Deterministic Systems” and even rarely mentions chaos in the text itself. Lorenz is noted as the first person to publish on what he called deterministic nonperiodic flow (Lorenz, 1963). That is, flow that fails to have a finite period. The term Chaos was coined by Yorke and Li (1973) in “Period three implies Chaos”.
De Vries (2014: 338338) gives us three properties of a dynamical system that we have to consider:
 \((X, f)\) is transitive;
 \((X, f)\) is sensitive;
 The periodic points of \((X, f)\) are dense in \(X\).
We then say that the dynamical system \((X, f)\) is chaotic in the sense of AuslanderYorke (YAchaotic) whenever properties (1) and (2) hold; and chaotic in the sense of Devaney (Dchaotic) whenever all three properties hold.
The first condition is a formalisation of the idea of mixing. Take some point \(x_0 \in X\) and some open, nonempty subset \(U\) of \(X\). If the set \[ \left\{ n \in \mathbb{Z}^+ \colon f^n(x_0) \in U \right\} \] contains infinitely many elements, we say that \(x_0\) is topologically transitive. This means that the iterates of \(x_0\) not only visits^{3} some distance away from every point in \(X\), it also visits infinitely often. If the dynamical system \((X, f)\) has such a point, it is called a transitive system.
The second condition is illustrated by Fig. 6: there does not seem to be a point where the following points do not wander away. A dynamical system \((X, f)\) is called sensitive if there exists a positive real number \(\epsilon\) for which the set of all stable points under \(f\) is empty. A consequence of this property is that points that are arbitrarily close together will eventually spread apart.
The last condition requires that for any \(x \in X\) there be a periodic point \(x^*\) close to \(x\). We mean that for any distance \(\epsilon\) from \(x\), there should be a periodic point \(x^*\).
These three conditions are not independent from each other. Specifically, we have that (1) and (3) together imply (2). De Vries (2014: 335) states the following theorem.
 Theorem
 Let \(X\) be an infinite metric space. If the system \((X, f)\) is transitive and has a dense set of periodic points, then it is sensitive.
The proof of this theorem is a nontrivial application of several concepts mentioned thus far. Banks et. al. (1992) proves this result and De Vries (2014: 335) also supplies a proof for the interested reader.
The Logistic Map revisited
Let us recall the logistic map: \[ f(x) = rx(1x). \] We fix \(r = 4\) and if we plot five successive iterations of \(f\), we get the plot shown in Fig. 10.
It is now reasonable to consider whether the behaviour we discovered in the first section, which we claimed to be chaotic, is in fact chaotic. So we will need to show that the logistic map on \([0,1]\) has the three properties of chaos, that the system \(([0,1], f)\)
 is transitive;
 is sensitive;
 the set of periodic points is dense in \(X\).
But before we do that, we first take a look at a useful property exemplified by Fig. 10. We notice that the space is halved after the first iteration and the next iteration halves each of those halves again. This pattern is repeated with subsequent iterations. That means after each iteration, there are \(2^n\) copies of the initial arc, each of which mapping an interval of length \(1/2^n\) to the entire interval \([0,1]\). That means that if we pick any interval \(U\) in \([0,1]\), there is a finite number for which an entire copy of the initial arc will be contained in \(U\).
We can immediately see that the system is transitive. This is actually an application of the result that on the interval \([0,1]\), if for any two nonempty open subsets \(U\) and \(V\) there exists an integer \(n \in \mathbb{Z}^+\) such that \(f^n[U] \cap V \ne \emptyset\)^{4} then the system is transitive. If we chose a set \(U\) and find a finite number \(N\) of iterations for which a copy of the initial arc is contained in \(U\), we clearly have that any open set \(V\) will contain elements of \(f^N[U]\), that is \(f^N[U] \cap V \ne \emptyset\).
We can use a similar argument to see that the system is sensitive. Fix a real number \(0 < \epsilon \le 1/2\) and take some point \(x\) in \([0,1]\). If \(U\) is some interval in \([0,1]\) we can, yet again, find a finite number \(N\) for which \([0,1]\) is completely contained in \(f^N[U]\). The point \(f^N(x)\) is either greater than, or less than, \(1/2\). This means that for any \(y \in U\) for which \(f^N(y)\) is either \(0\) or \(1\), we have \(f^N(x)  f^N(y) \ge 1/2\) – for the correct choice of \(y\). This just means that points end up moving away from each other.
All that is left is to see that the system has dense periodic orbits. Recall that a set of points is dense in \([0,1]\) if every open set contained in \([0,1]\) contains an element of the dense set. We have seen that under the first iteration of the logistic map, the interval \([0,1]\) has two points with the property that \(f(x) = x\): \(0\) and \(3/4\). Since we already know that any interval \(U\) contains of copy of the arc after a sufficient number of iterations, say \(N\), we can find a point \(x^*\) in \(U\) such that \(f^N(x^*) = x^*\). That means that the set of periodic points are dense in the interval \([0,1]\).
From this we can now conclude that the logistic map with \(r = 4\) does exemplify chaotic behaviour, as we claimed. It is interesting to see that even from such a simple equation, we can find such interesting dynamics. However, this is particular to discrete dynamics. In the continuous case, the Poincaré–Bendixson theorem (Meiss, 2007: 220) implies that a system cannot display chaotic behaviour with fewer that three dimensions (Meiss, 2007: 243).
References
Banks, J., Brooks, J., Cairns, G., Davis, G., and Stacey, P. 1992. On Devaney’s Definition of Chaos. The American Mathematical Monthly. 99(4):332334
De Vries, J. 2014. Topological Dynamical systems: An Introduction to the Dynamics of Continuous Mappings. De Gruyter: Berlin.
Li, T.Y. and Yorke, J.A. 1975. Period three implies Chaos. American Mathematical Monthly. 82(10):985992.
Lorenz, E. 1963. Deterministic Nonperiodic flow. Journal of the Atmospheric Sciences. 20:130141.
Maritz, M.F. 2020. A note on exact solutions of the logistic map. Chaos: In interdisciplinary Journal of Nonlinear Science, 30(3), 033136. DOI: https://doi.org/10.1063/1.5125097
Meiss, J. D. 2007. Differential Dynamical systems. SIAM: Philadelphia.
Rossant, C. 2018. Plotting the bifurcation diagram of a chaotic dynamical system. In: IPython Interactive Computing and Visualization Cookbook. Second Edition. URL: https://ipythonbooks.github.io/121plottingthebifurcationdiagramofachaoticdynamicalsystem/.
Appendix
Notation
 \(\forall\)
 Called the universal quantifier, this means “for all”.
 \(\in\)
 Denotes element inclusion. For example, \(x \in X\) can be read as “\(x\) in \(X\)” or “\(x\) an element of \(X\)”.
 \(\mathbb{Z}^+\)
 Denotes the set of integers greater or equal to 0.
Let \(f \colon X \rightarrow Y\) be a mapping, \(U\) a subset of \(X\) and \(V\) a subset of \(Y\). Then:
\(f[U]\) : The set of values \(f(x)\) such that \(x \in U\); called the image of \(U\). Symbolically given as \[f[U] := \left\{ f(x) \in Y \colon x \in U \right\}.\]
\(f^{\leftarrow}[V]\) : The set of values \(x\) such that \(f(x) \in V\); called the inverse image of \(V\). Symbolically given as \[f^\leftarrow[V] := \left\{x \in X \colon f(x) \in V \right\}.\]
 \(B_\epsilon(x)\)
 The set of all points around \(x\), i.e. \[B_\epsilon(x) := \left\{ y \in X \colon \partial \left(x, y\right) < \epsilon \right\},\] where \(\partial(x, y)\) denotes the metric on \(X\).
 \(S_\epsilon(x, f)\)
 The set of all \(\epsilon\)stable points of the dynamical system \((X, f)\).
Glossary
 Cycle
 The cycle of a periodic orbit is the number of iterations in the periodic orbit. For example, suppose that \((X, f)\) is a dynamical system for which \(x_0 \in X\) has the property that for \(n \in \mathbb{Z}^+\), \(f^{2n}(x_0) = x_0\) and \(f^{2n+1}(x_0) = x_1\), then this orbit is said to be a 2cycle.
 Deterministic
 A value that is deterministic has no uncertainty attached to it. Compare the value \(f(x) = mx + c\) where \(x \in [0,1]\) and \(p(x) = \omega\) where \(\omega\) is determined by the roll of a dice: if you pick a particular \(x^* \in [0,1]\), the value \(f(x^*)\) is the same each time you pick \(x^*\), as opposed to \(p(x)\), which will have a different value for each roll of the dice.
 Discrete
 Discrete is opposed to continuous where the dynamics are usually indexed by the real numbers. In this case, the evolution is indexed by the positive integers.
 Flow
 In continuous time dynamics, flow is the counterpart of orbit in discrete time dynamics. One can imagine it as the path that is traced out by the evolution of the system.
 Interior of a set
 The interior of a set can be understood as all the points that do not lie outside the set or on the boundary of the set. Suppose \([0,1]\) is some interval on the real line. Then any point \(x\) such that \(0 < x< 1\) is an interior point.
 Invariant
 A point \(x^* \in X\) or subset \(A\) of \(X\) is called invariant under \(f\) if \(f(x^*) = x^*\) or \(f[A] \subset A\). A subset \(A\) is called completely invariant if \(f[A] = A\).
 Metric

A metric is a function (\(\partial\)) on a space \(X\) that takes as input two points in \(X\) and returns a nonnegative real number. It satisfies the following three properties:
 \(\partial (x, y) = 0\) if and only if \(x = y\);
 \(\partial (x, y) = \partial (y, x)\) for all \(x, y\) in \(X\); and
 \(\partial (x, z) \le \partial (x, y) + \partial (y, z)\) for any \(x, y\) and \(z\) in \(X\) (Also called the triangle inequality).
 Metric space
 A set of points \(X\) with a metric defined on it is called a metric space.
 Nonperiodic
 This is opposed to periodic, i.e. when a system fails to have periodic orbits.
 Open set
 On the real number line, these sets correspond to intervals of the form \((a, b)\) where \(a < b\), i.e. intervals that don’t contain their boundary points.
 Period Orbit
 An Orbit is called periodic if there exists a \(p \in \mathbb{N}\) such that \(f^p(x_0) = x_0\).
 Stable
 A point \(x \in X\) is called \((\epsilon)\)stable if any initial condition starting close to \(x\) never wanders too far from \(x\). More formally, a point \(x \in X\) is called \((\epsilon)\)stable if for every positive real number \(\epsilon\) there exists a positive real number \(\delta\) such that \[f^n[B_\delta(x)] \subset B_\epsilon(f^n(x))\] for all \(n \in \mathbb{Z}^+.\)
 Subset
 Suppose that \(A\) is a set of elements, say: \(\{a, b, c, d, e, f, g\}\). The set \(B = \{ d, a, c, g\}\) is a subset of \(A\): every element of \(B\) can be found in \(A\). Notationally, \(B \subset A\). Since there are elements in \(A\) that are not contained in \(B\), for example \(e\), \(B\) is, additionally, a proper subset of \(A\). Notationally, \(B \subsetneqq A\).
 Unstable
 A fixed point that is not stable is called unstable.
Formally, \(X\) is a metric space and \(f \colon X \rightarrow X\) is a continuous mapping.↩︎
For every pair of points \(x\) and \(y\) in \(X\), there is some positive real number \(\epsilon\) such that \(B_\epsilon(x)\) and \(B_\epsilon(y)\) have no points in common.↩︎
We mean \(x_0\) visiting a point \(y\) in the sense that for any real number \(\epsilon > 0\) and for every \(k \in \mathbb{Z}^+\) there exists \(n \ge k\) such that \(f^n(x_0) \in B_\epsilon(y)\).↩︎
This is specifically the property of topological ergodicity. This result is shown by De Vries (2014: 31) and recalling that \([0,1]\) is a complete metric space and therefore a Baire space.↩︎