Rでニューラルネット、ロジスティック写像の学習

##Larning 
library(nnet)
library(tseries)

#Logistic map
x<-0
x[1]<-0.5
x[2]<-0.5
a<-3.8
for(i in 1:1000){
  x[i+1]<-a*x[i]*(1-x[i])
}

input<-cbind(x[1:(length(x)-1)])
output<-cbind(x[2:length(x)])

results<-nnet(input,output,size=5,lang=0.3,maxit=3000)
plot(output[,1])
lag.plot(x,36)

points(predict(results),col=2)
j2<-predict(results)
lag.plot(j2,36)

##Predicts
a<-3.8
for(i in 1001:2000){
  x[i+1]<-a*x[i]*(1-x[i])
}


plot(x,col=2,type="l")
l123<-0
l123b<-0
l123[1]<-x[1000]
l123b[1]<-x[1000]
a<-3.8
for(i in 1:1000){
	l123[i+1]<-predict((results),l123[i])
	l123b[i+1]<-a*l123b[i]*(1-l123b[i])
}
#plot(l123,l123b)
lag.plot(l123,lag=32)

線形合同法とラグプロット

x<-0
x[1]<-8
A<-12578
B<-32457
M<-1278
for(i in 1:10000){
	x[i+1]<-(A*x[i]+B)%%M	
 
}
lag.plot(x,lag=32)
plot(x[1:100],type="l")



ランダムの中の複雑な相関の学習

x[1]<-1
x[2]<-1
x[3]<-1

for(i in 1:1000){

	if(x[i-2]==0 &&  x[i-1] ==0 && x[i-3]==0){
		x[i]<-1
	}else{
		x[i]<-rbinom(1,size=1,prob=0.5)
	}

}

plot(x,type="l")
lag.plot(x,lag=36)
x1<-x[1:(length(x)-3)]
x2<-x[2:(length(x)-2)]
x3<-x[3:(length(x)-1)]
x4<-x[4:length(x)]
resluts<-nnet(cbind(x1,x2,x3),cbind(x4),size=8,lang=0.3,maxit=3000)
plot(x2)
x3<-predict(resluts)
points(x3,col=2)
lag.plot(x3,lag=36)
points(x3,col=2,type="l")
lag.plot(x,lag=32)
predict(resluts,c(0,0))
predict(resluts,c(0,1))
predict(resluts,c(1,0))
predict(resluts,c(1,1))