- こちらのブログの内容をまとめた上の本参照
- 遺伝的浮動のシミュレーション
- 集団のサイズを固定:N
- 次の世代へ残す遺伝子の最大数:k
- 世代:T
- 最初の変異アレル数:initial
- 行列Aは推移確率を要素にしている
- 確率の計算結果を行列Dに入れてある
- 最後はエントロピーを計算してみた
N<-50
k<-3
T<-10
initial <- 5
A<-matrix(0,N+1,N+1)
for (i in 0:N){
for(j in 0:N){
if (k == "infinity"){
A[j+1,i+1]<-choose(N,j)*i^j*(N-i)^(N-j)/N^N
}else{
A[j+1,i+1]<- choose(i*k,j)*choose((N-i)*k,N-j)/choose(N*k,N)
}
}
}
v<-c(rep(0,N+1))
v[initial+1]<-1
D<-c()
D<-cbind(D,v)
for (t in 2:T){
v<-A%*%v
D<-cbind(D,v)
}
persp(D,theta=150,phi=30,shade=0.2,xlab="mutations",ylab="generations",zlab="probability",col="green")
S<-apply(-D*log(D),2,sum)
plot(S)