1次元は指数分布、多次元はワイブル分布2

  • ソースを変更
  • ポアッソン配置を何度も繰り返すことで、常に、原点にある点からの最近点距離を求める方式に変更
k<-8 # 次元→これを大きくすると、ずれが生じる
N<-1000 # ランダムに配置する点の数
h<-0.000001 # 点の密度(ポアッソンだから、疎に…)
t<-(N/h)^(1/k) # 格子の一辺の長さ
L<-rep(0,N)
for(i in 1:N){
	M<-matrix((runif(k*N)-0.5)*t,N,k) #N個の点のk次元座標を発生
	L[i]<-min(sqrt(apply(M^2,1,sum)))
}

# ワイブル分布の尺度母数
beta<-(1/(h*pi^(k/2)/gamma(k/2+1)))^(1/k)
# ワイブル分布乱数の発生
W<-rweibull(N,k,beta)

par(mfcol=c(2,2))
# 距離分布、乱数分布をプロット
plot(density(W))
plot(density(L))
# 距離、乱数の昇順プロットを重ね描き
plot(sort(W),ylim=c(0,max(W,L)))
par(new=TRUE)
plot(sort(L),col="red",type="l",ylim=c(0,max(W,L)))
par(mfcol=c(1,1))