- 915 名前:132人目の素数さん mailto:sage [2020/03/19(Thu) 16:40:30 ID:XGan5JrS.net]
- 球面に一様分布らしき点を5000個発生させて、
各々の点でθが5°の球冠面にその点以外にどれだけの点が含まれるかを算出させてみた。 https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Spherical_cap_diagram.tiff/lossless-page1-597px-Spherical_cap_diagram.tiff.png 中央値9 平均9.56 標準偏差3.14という値になった。 > summary(dots) ; sd(dots) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.000 7.000 9.000 9.556 12.000 23.000 [1] 3.148086 ヒストグラムだと https://i.imgur.com/4XaXArc.png # 球面一様分布 c(x,y,z) vertex <- function(r=1){ x=runif(1,-1,1) # x ~ 一様分布[-1,1] phi=runif(1,-pi,pi) # φ ~ 一様分布[-π,π] y=sqrt(1-x^2)*cos(phi) # √(1-x^2)*cos(φ) z=sqrt(1-x^2)*sin(phi) # √(1-x^2)*sin(φ) r*c(x,y,z) } n=5000 vtx=t(replicate(n,vertex())) # n個の点x,y,zをつくる rgl::plot3d(vtx[,1],vtx[,2],vtx[,3], col="slateblue") Theta=(pi/180)*5 onCap <-function(x,y,theta){ acos(x %*% y) < theta # ベクトルの内積の逆余弦がtheta未満なら球冠上にある } hmonCap<- function(j){ count=0 for(i in (1:n)[-j]){ count = count + onCap(vtx[j,],vtx[i,],Theta) } return(count) } dots=sapply(1:n,hmonCap) summary(dots) ; sd(dots) hist(dots) ; table(dots) BEST::plotPost(dots)
|

|