The logistic map is a classic example of how simple nonlinear dynamical equations can produce complex, chaotic behavior. It is defined by the recurrence relation:

\[ x_{n+1} = r x_n (1 - x_n) \]

where \(x_n\) is a number between 0 and 1, and \(r\) is a positive constant representing the growth rate.

Behavior Across Parameter Values

Depending on the value of \(r\), the logistic map exhibits very different behaviors:

  • For \(0 < r \leq 1\), the population monotonically decreases to zero.
  • For \(1 < r \leq 3\), the population settles on a fixed point.
  • For \(3 < r < 3.57\), the system enters a period-doubling route to chaos.
  • Beyond \(r \approx 3.57\), chaotic behavior dominates, interspersed with windows of periodicity.

Bifurcation Diagram

One way to visualize the route to chaos is by plotting the bifurcation diagram. Here’s a Python snippet using matplotlib and numpy to generate it:

import numpy as np
import matplotlib.pyplot as plt

def logistic_map(r, x):
    return r * x * (1 - x)

n = 10000
last = 100
r_values = np.linspace(2.5, 4.0, 10000)
x = 1e-5 * np.ones_like(r_values)

plt.figure(figsize=(10, 6))
for i in range(n):
    x = logistic_map(r_values, x)
    if i >= (n - last):
        plt.plot(r_values, x, ',k', alpha=0.25)

plt.title("Bifurcation Diagram of the Logistic Map")
plt.xlabel("Growth Rate (r)")
plt.ylabel("Population (x)")
plt.grid(True)
plt.show()