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()