多次元球の極座標
- 『球面上の代数的組み合わせ理論』第2章 球面上の積分 p23 (シュプリンガー・フェアラーク東京)
球面上の代数的組合せ理論 (シュプリンガー現代数学シリーズ)
- 作者: 坂内英一,坂内悦子
- 出版社/メーカー: シュプリンガー・フェアラーク東京
- 発売日: 1999/09
- メディア: 単行本
- クリック: 17回
- この商品を含むブログ (2件) を見る
- 多次元球はなる点の集まりです。
- ...
- ...
- ただし、,
- この極座標を用いると、単位超球面上の点が、d個の角で表される。
- この角度に関して一様乱数を発生させて球面上の点を作成しても、球面上の一様乱数にはならない。それは、この表記法は、階層的な変数構成となっており、すべての方向に関して(すべての軸ではない)対称なつくりになっていないから。
- そのことは、以下のようにして示すことが出来る
df<-5 d<-df-1 np<-10000 points<-matrix(0,np,df) for(i in 1:np){ thetas<-runif(d) thetas<-thetas*pi thetas[1]<-thetas[1]*2 negS<-sign(sin(thetas))*(-1) negC<-sign(cos(thetas))*(-1) negS[negS==-1]<-0 negC[negC==-1]<-0 lnsin<-log(abs(sin(thetas))) lncos<-log(abs(cos(thetas))) Sm<-matrix(1,d,d) Sm[upper.tri(Sm)]<-0 Sm<-as.matrix(cbind(Sm,rep(0,d))) Cm<-diag(d) Cm<-as.matrix(cbind(rep(0,d),Cm)) xs<-t(lnsin)%*%Sm+t(lncos)%*%Cm sign<-t(negS)%*%Sm+t(negC)%*%Cm sign<-(-1)^sign xs<-exp(xs)*sign xs<-xs/sqrt(sum(xs^2)) points[i,]<-sample(xs) } plot(as.data.frame(points[,1:min(df,4)]),cex=0.1)