Usando variáveis multivariadas distribuídas homogeneamente
Taeke fornece um link para um artigo que o texto abaixo torna mais intuitivo, explicando especificamente casos de 2 e 1 norma.
2-norma ∥ x ∥2≤ r
direção da amostra
Você pode usar este resultado http://mathworld.wolfram.com/HyperspherePointPicking.html
Uma variável gaussiana distribuída multivariada (com matriz de covariância de identidade) depende apenas da distância ou soma dos quadrados.X
f( X1 1, X2, . . . , Xn) = ∏1 ≤ i ≤ n1 12 π--√e1 12x2Eu= 12 π--√e1 12∑1 ≤ i ≤ nx2Eu
Assim é uniformemente distribuída sobre a superfície do n-dimensional-hiperesfera.X∥ X∥2
distância da amostra
Para concluir, você só precisa amostrar a distância, alterar a distribuição homogênea na esfera para uma distribuição homogênea na esfera. (que é mais ou menos semelhante ao seu exemplo vinculado para seleção de pontos de disco)
Se você simplesmente amostrasse como uma distribuição uniforme, teria uma densidade relativamente maior perto do centro (o volume é escalado como r n, de modo que uma fração r dos pontos acabaria em um volume r n , que é mais denso perto do centro e não significaria uma distribuição uniforme)rrnrrn
Se você usar a ésima raiz de uma variável amostrada de uma distribuição uniforme, obterá uma distribuição uniforme.n
∥ x ∥1 1≤ r
direção
XX| X|1 1
Não tenho prova formal, apenas intuição
f( x ) dVf( x ) dUMA
mas testar com simulações parece bom.
library(rmutil)
x <- abs(rlaplace(20000))
y <- abs(rlaplace(20000))
z <- abs(rlaplace(20000))
rn <- abs(x)+abs(y)+abs(z)
xi <- (x/rn)
yi <- (y/rn)
zi <- (z/rn)
plot(sqrt(0.5)*(xi-yi),
sqrt((0.5-0.5*(xi+yi))^2+zi^2),
pc=21,bg=rgb(0,0,0,0.02), col=rgb(0,0,0,0),cex=1)
distância
rn
∥ x ∥p≤ r
f( X ) α e| x |pG ( )