Logistic Map: Feigenbaum Diagram: Coding with R
1 Logistic Map
- mu: bifurcation parameter
- x0: initial value
- n: number of iteration
- M: number of latest iteration points used for plot
\[x_{n+1} = f(x_{n}) = \mu x_{n}(1-x_{n}) \], \[r \in \left[0, 4 \right]\] and \[0\leq x_{0}\leq 1 \]
2 plot : Logistic Map
- when \(\mu < 3\) : trajectories spiral into the fixed point; the rate of spiral is slower for \(\mu\) approaching to 1
- when \(\mu = 3\) : trajectories under a period-doubling bifurcation
- when \(\mu > 3\) : trajectories lose stability;
3 Period: n=3
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.001, n = 3, M = 3)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "red", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=3 ", col.main = "blue")
grid()4 Period: n=10
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.001, n = 10, M = 10)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "red", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=10 ", col.main = "red")
grid()5 Period: n=50
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.001, n = 50, M = 50)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "green", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=50 ", col.main = "red")
grid()6 Period: n=100
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.001, n = 100, M = 100)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "blue", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=100 ", col.main = "red")
grid()7 Period: n=500
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.001, n = 500, M = 500)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "green", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=500", col.main = "red")
grid()8 Period: n=1000
library(latex2exp)
mu.change = seq(0, 4, by = 0.01)
Orbit = sapply(mu.change, logistic.map, x0 = 0.01, n = 1000, M = 1000)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "red", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=1000 ", col.main = "red")
grid()9 Period: n=1000
library(latex2exp)
mu.change = seq(0, 4, by = 0.001)
Orbit = sapply(mu.change, logistic.map, x0 = 0.01, n = 1000, M = 300)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(0, 4), col = "blue", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=1000 ", col.main = "red")
grid()10 Period: n=1000 (zoom in)
library(latex2exp)
mu.change = seq(0, 4, by = 0.001)
Orbit = sapply(mu.change, logistic.map, x0 = 0.01, n = 1000, M = 300)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(2.5, 4), col = "blue", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=1000 ", col.main = "red")
grid()11 Period: n=1000 (further zoom in)
library(latex2exp)
mu.change = seq(0, 4, by = 0.001)
Orbit = sapply(mu.change, logistic.map, x0 = 0.01, n = 1000, M = 300)
Orbit_dim = (Orbit/Orbit)
mu_dim = t(t(Orbit_dim) * mu.change)
plot(mu_dim, Orbit, xlim = c(3.5, 4), col = "blue", pch = ".", ylab = "x", xlab = TeX("$\\mu$"))
title(main = "Logistic Map: n=1000 ", col.main = "red")
grid()