# Logistic map: density, M trajectories, initial distribution: uniform in (0.5,0.6)
f.x<- function(x,r){
r*x*(1-x)
}
r<- 4
M<- 1000 # number of trajectories
nstep<- 25 # number of iterations
xt<- numeric()
xiniz0<- numeric()
xens<-matrix(,M,nstep) # to memorize the single trajectory
set.seed(1) # seed of the sequence of (pseudo) random numbers
for(l in 1:M){ # starting loop on the trajectories
# it is possible to change the initial distribution
xiniz0[l]<- runif(1,0.5,0.6)          # uniform distribution in (0.5,0.6)
x<- xiniz0[l]
xt[1]<- x
for(i in 1:nstep){ # starting loop on the iterations
y<- f.x(x,r)
x<- y
xt[i]<- x
xens[l,i]<- xt[i]
} # ending loop on the iterations
} # ending loop on the trajectories
mstep1<-1
mstep2<-2
mstep3<-3
mstep4<-5
mstep5<-nstep
lbin<- 0.02
windows()
par(mfrow=c(3,3),cex.main=0.8)
hist(xiniz0,probability=T,xlab="x(t)",ylab="Density",main="Initial distr.",
xlim=c(0,1),ylim=c(0,10),br=seq(0,1,by=lbin),col="black",border="black")
hist(xens[,mstep1],probability=T,xlab="x(t)",ylab="Density",main="t = 1",
xlim=c(0,1),ylim=c(0,40),br=seq(0,1,by=lbin),col="black",border="black")
hist(xens[,mstep2],probability=T,xlab="x(t)",ylab="Density",main="t = 2",
xlim=c(0,1),ylim=c(0,20),br=seq(0,1,by=lbin),col="black",border="black")
hist(xens[,mstep3],probability=T,xlab="x(t)",ylab="Density",main="t = 3",
xlim=c(0,1),ylim=c(0,10),br=seq(0,1,by=lbin),col="black",border="black")
hist(xens[,mstep4],probability=T,xlab="x(t)",ylab="Density",main="t = 5",
xlim=c(0,1),ylim=c(0,10),br=seq(0,1,by=lbin),col="black",border="black")
hist(xens[,mstep5],probability=T,xlab="x(t)",ylab="Density",main="t = 25",
xlim=c(0,1),ylim=c(0,10),br=seq(0,1,by=lbin),col="black",border="black")