What is the algorithm used by the normally distributed pseudorandom number generator RANDN in MATLAB 5.0 and later?
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 13 Dic 2012
Modificato: MathWorks Support Team
il 19 Apr 2023
I am generating random numbers with RANDN and I would like to know the algorithm used and its period.
Risposta accettata
MathWorks Support Team
il 18 Apr 2023
Modificato: MathWorks Support Team
il 19 Apr 2023
This change has been incorporated into the documentation in Release 2009a (R2009a). For previous releases, read below for any additional information:
The default normal random number generator algorithm used in RANDN in MATLAB 5.0 (R12) and later is an implementation of the Ziggurat method of Marsaglia and Tsang. The implementation has a period on the order of 2^64.
One implementation (not the one used in MATLAB) of the Ziggurat method in the literature has a period of 2^32-1, and a paper by Leong et al.
(Journal of Statistical Software 12(7)) commented that this period is probably too short for current use. As noted above, the implementation of the Ziggurat method used in RANDN has a much longer period.
Details of the Ziggurat method are discussed in chapter 9 of the book Numerical Computing with MATLAB. The book is available on-line at
and a PDF-file for chapter 9 is at
Prior to MATLAB Version 5, RANDN used an implementation of the Polar method. The implementation has a period of approximately (2^32-1)*(pi/8). Type "doc RANDN" at the MATLAB command prompt for details on how to use that algorithm.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Multivariate Normal Distribution in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!