Ich gebe Ihnen eine allgemeine n-dimensionale Antwort, die natürlich auch für zweidimensionale Fälle funktioniert. In drei Dimensionen ist ein Analogon einer Scheibe ein Volumen einer festen Kugel (Kugel).
Es gibt zwei Ansätze, die ich diskutieren werde. Eine davon würde ich als "präzise" bezeichnen , und in R erhalten Sie eine vollständige Lösung. Die zweite, die ich als heuristisch bezeichne , ist nur die Idee, es wird keine vollständige Lösung bereitgestellt.
"Präzise" Lösung
Meine Lösung basiert auf den Arbeiten von Marsaglia und Müller . Grundsätzlich geschieht dies so, dass der auf seine Norm normierte Gaußsche Vektor die gleichmäßig verteilten Punkte auf einer d-dimensionalen Hypersphäre liefert:
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")
Hier ist ein Code-Snippet für eine 3D-Hülle, dh eine feste Kugel:
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])
Heuristischer Ansatz
Vn( R ) = πn2Γ ( n2+ 1 )Rn
Rn
∑di = 1x2ich< R2
Die Lösung, die ich vorschlage, besteht darin, die Zurückweisungsabtastung mit einer Überabtastung der Punkte in der Nähe des Zentrums zu verwenden. Es stellt sich heraus, dass, wenn Sie eine der kartesischen Koordinaten der zufälligen einheitlichen Stichprobe aus dem Inneren des Balls beobachten, dessen Verteilung zu einem Gaußschen Wert mit der Varianz konvergiert1d+ 2√