Rejection sampling: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Link
Riga 16:
Come semplice esempio geometrico, supponiamo di voler generare un punto casuale all'interno del cerchio unitario. Il primo step è generare un punto candidato (<math>(x,y)</math><math>x,y </math>) dove <math>x </math> <math>x </math>e <math>y </math> <math>y </math>sono indipendenti e uniformemente distribuiti tra &#x2212; 1 e 1. Se <math>x^2+y^2 \leq 1 </math> allora il punto è all'interno del cerchio unitario ed è accettato, altrimenti è rifiutato e viene generato un nuovo candidato.
 
Un esempio più complicato utilizzato per generare in modo efficiente [[Numeri pseudo-casuali|numeri pseudocasuali]] [[Distribuzione normale|normalmente distribuiti]] è l'[[Algoritmo Ziggurat|algoritmo ziggurat]].
 
== Algoritmo ==
L'algoritmo di rejection sempling genera valori di campionamento da una distribuzione target <math>X </math> con [[funzione di densità di probabilità]] arbitraria <math>f(x) </math> utilizzando una [[proposal distribution]] <math>Y </math>con densità di probabilità <math>g(x) </math>.
 
L'algoritmo (usato da [[John von Neumann]] e risalente a Buffon e al [[Ago di Buffon|suo ago]]) per ottenere un campione dalla distribuzione <math>X </math>con densità <math>f(x)</math>utilizzando campioni dalla distribuzione <math>Y </math>con densità <math>g(x) </math>è il seguente: