J'essaie d'écrire une fonction qui génère un bruit uniformément distribué qui provient d'une boule de norme p de dimensions:
J'ai trouvé des solutions possibles pour les cercles ( ) ( http://mathworld.wolfram.com/DiskPointPicking.html ), mais j'ai du mal à étendre cela pour différentes valeurs de .
J'ai essayé de le faire en tirant simplement un échantillon aléatoire à partir d'une distribution uniforme et en le redessinant lorsqu'il ne répond pas à la contrainte donnée. Cependant, en plus d'être une solution laide, elle devient également impossible à calculer pour des dimensions élevées.
simulation
noise
Taeke de Haan
la source
la source
Réponses:
J'ai trouvé la solution complète dans un document comme suggéré par kjetil b halvorsen ( https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215 ). Honnêtement, j'ai du mal à comprendre les mathématiques derrière, mais l'algorithme final est assez simple. si on a dimensions, un rayon et une norme que:r pn r p
1) générer scalaires réels aléatoires indépendants , où est la distribution gaussienne généralisée (avec une puissance différente dans l'exposant au lieu de juste )ε i = ˉ G ( 1 / p , p ) ˉ G ( μ , σ 2 ) e - | x | p p = 2n εi=G¯(1/p,p) G¯(μ,σ2) e−|x|p p=2
2) construire le vecteur des composants , où sont des signes aléatoires indépendantss i ∗ ε i s ix si∗εi si
3) Générez , où est une variable aléatoire uniformément répartie dans l'intervalle [0, 1]. wz=w1/n w
4) retourney=rzx||x||p
la source
Utilisation de variables multivariées réparties de manière homogène
Taeke fournit un lien vers un article que le texte ci-dessous rend plus intuitif en expliquant spécifiquement les cas à 2 normes et à 1 norme.
2 normes∥x∥2≤r
direction de l'échantillon
Vous pouvez utiliser ce résultat http://mathworld.wolfram.com/HyperspherePointPicking.html
Une variable distribuée gaussienne multivariée (avec matrice de covariance d'identité) ne dépend que de la distance ou de la somme des carrés.X
Ainsi, est uniformément distribué à la surface de l'hypersphère à n dimensions.X∥X∥2
distance d'échantillon
Pour terminer, vous n'avez qu'à échantillonner la distance, pour changer la distribution homogène sur la sphère en une distribution homogène dans une balle. (qui est plus ou moins similaire à votre exemple lié pour la sélection de points de disque)
Si vous échantillonniez simplement comme une distribution uniforme, alors vous auriez une densité relativement plus élevée près du centre (les échelles de volume comme donc une fraction des points finirait dans un volume , qui est plus dense près du centre et ne signifierait pas une distribution uniforme)r rn r rn
Si, à la place, vous utilisez la racine -ième d'une variable échantillonnée à partir d'une distribution uniforme, vous obtenez une distribution paire.n
1-norme∥x∥1≤r
direction
Dans ce cas, vous échantillonnez partir de la distribution de Laplace au lieu de la distribution gaussienne et divisez par la norme 1. Le est uniformément réparti sur la sphère à n dimensions.X X|X|1
Je n'ai aucune preuve formelle, juste une intuition
(puisque le pdf est indépendant de la position, vous vous attendez à ce que toute zone / volume infinitésimal avec la même norme 1 ait la même probabilité et lorsque vous le réduisez à la surface de l'unité, le même )f(x)dV f(x)dA
mais les tests avec des simulations semblent bons.
distance
La distance est similaire à celle du cas à 2 normes (le volume est toujours égal à ).rn
norme-p∥x∥p≤r
Dans ce cas, si vous souhaitez suivre le même principe, vous devrez échantillonner à partir de distributions avec (je suppose). Ce sont des distributions normales généralisées et se rapportent probablement à la distribution mentionnée par Taeke.f(x)∝e|x|p G()
la source