|
AltriGeneratoriRigetto< Integrali con il metodo del rigetto. | Indice | Generatore di numeri casuali gaussiani col metodo di Box e Müller? > Generatori di numeri casuali: metodo del rigetto Quando non è possibile calcolare analiticamente l'integrale della distribuzione continua secondo la quale si vogliono estrerre i numeri, oppure non si può invertire analiticamente la relazione che risulta dall'equazione integrale (1) del metodo di trasformazione si può ricorrere al metodo del rigetto. Questo metodo ricalca il calcolo dell'integrale discusso nella pagina precedente, ed è anaolgo a quello che abbiamo impiegato per ricavare la stima di {$\pi$}. Supponiamo di conoscere la forma analitica della distribuzione {$p(x)$} e di aver determinato sia gli estremi {$(a,b)$} dell'intervallo di {$x$} in cui {$p(x)$} è diversa da zero, sia il massimo {$c$} della funzione {$p(x)$} (per definizione di probabilità quest'ultimo valore è senz'altro minore di 1). Si può allora estrarre due numeri con la distribuzione uniforme standard (compresi tra 0 ed 1), siano {$r_x, r_y$}, e procedere come segue:
Il difetto di questo metodo diventa evidente se il dominio della distribuzione non è limitato, oppure se in un'ampio intervallo il valore della funzione {$p(x)$} è molto minore del minimo, in parole povere se l'area entro il rettangolo rosso, ma sopra la curva blu in Figura 1 è molto maggiore di quella sotto la curva blu. In questo caso il metodo diventa poco efficace perchè si accettano pochi dei valori generati e se ne rigettano molti. In matlab la generazione avviene con:
< Integrali con il metodo del rigetto. | Indice | Generatore di numeri casuali gaussiani col metodo di Box e Müller? > |