4次元ギャスケット
- 昨日は4次元のデータを色の次元をかりてプロットした
- ということで、こちらの多次元ギャスケットにも色を加えてみる
- これがフラクタルの色彩?
library(rgl) library(MCMCpack) N<-5 M<-50000 #library(sphere) #N-1次元空間に均等にN本の単位ベクトルを配置する(N-1正単体) CategoryVector<-function (nc = 3) { df <- nc - 1 d <- df + 1 diagval <- 1:d diagval <- sqrt((df + 1)/df) * sqrt((df - diagval + 1)/(df - diagval + 2)) others <- -diagval/(df - (0:(d - 1))) m <- matrix(rep(others, df + 1), nrow = df + 1, byrow = TRUE) diag(m) <- diagval m[upper.tri(m)] <- 0 as.matrix(m[, 1:df]) } cv<-CategoryVector(N) # 正単体上の点を作る # dirichletはsum x_i =1 P<-t(cv)%*%t(rdirichlet(1,rep(1,N))) P<-c(P) xs<-matrix(0,M,N-1) selectedv<-sample(1:N,M,replace=TRUE) for(i in 1:M){ P<-(P+cv[selectedv[i],])/2 xs[i,]<-P } # 3次元部分だけ描いてみる #plot3d(xs[,1],xs[,2],xs[,3]) plot3d(xs[,1],xs[,2],xs[,3],xlim=c(-1,1),ylim=c(-1,1),zlim=c(-1,1),col=rainbow(1000)[500+xs[,4]*600])