もちろん、2次元の場合にも有効な一般的なn次元の答えを示します。3次元では、ディスクの類似物は固体ボール(球)のボリュームです。
これから説明する2つのアプローチがあります。そのうちの1つを「正確」と呼び、Rで完全なソリューションを取得します。2つ目はヒューリスティックと呼びますが、これは単なるアイデアであり、完全なソリューションは提供されません。
「正確な」ソリューション
私の解決策はマルサリアとミュラーの作品に基づいています。基本的には、ノルムに正規化されたガウスベクトルがd次元超球面上の均一に分布した点を与えるように発生します。
d1 / d
n <- 1e4
rho <- sqrt(runif(n))
# d - # of dimensions of hyperdisk
d = 2
r = matrix(rnorm(n*d),nrow=n,ncol=d)
x = r/rep(sqrt(rowSums(r^2))/rho,1)
plot(x[,1], x[,2], pch=19, cex=0.6, col="#00000020")
以下は、3Dケースのコードスニペット、つまりソリッドボールです。
library(scatterplot3d)
n <- 1e3
# d - # of dimensions of hyperdisk
d=3
rho <- (runif(n))^(1/d)
r = matrix(rnorm(n*d),nrow=n,ncol=d)
x = r/rep(sqrt(rowSums(r^2))/rho,1)
scatterplot3d(x[,1], x[,2], x[,3])
発見的アプローチ
Vn(R ) = πn2Γ(n2+ 1 )Rn
Rn
∑di = 1バツ2私< R2
私が提案する解決策は、中心付近のポイントをオーバーサンプリングして除去サンプリングを使用することです。ランダムな均一サンプルのデカルト座標の1つをボールの内側から見ている場合、その分布は分散ガウスに収束することがわかります。1d+ 2√