Numbers with a Gaussian distribution: Difference between revisions
Jump to navigation
Jump to search
(New page: {{Source}} Random number generators usually provide numbers with a uniform (flat) distribution. Sometimes it is desirable to generate numbers with some other distributions. The Gaussia...) |
Carl McBride (talk | contribs) m (Slight tidy up.) |
||
Line 1: | Line 1: | ||
{{Source}} | {{Source}} | ||
[[Random number]] | [[Random_numbers |Random number generators]] usually provide numbers having a uniform (flat) | ||
distribution. | distribution. However, sometimes it is desirable to generate numbers with some | ||
other distributions. | other distributions. For example, the [[Gaussian distribution |Gaussian (normal) distribution]] is of paramount importance. | ||
==Fortran 90 implementation== | ==Fortran 90 implementation== | ||
This Fortran 90 | This Fortran 90 function is adapted from Ref. 1, based on an algorithm from the Numerical Recipes collection (Ref. 2). The function '''ran()''' calls a random number generator: | ||
<small><pre> | <small><pre> | ||
! Returns random numbers distributed following a Gaussian with | ! Returns random numbers distributed following a Gaussian with | ||
Line 35: | Line 35: | ||
==References== | ==References== | ||
# Daan Frenkel and Berend Smit "Understanding Molecular Simulation: From Algorithms to Applications" p. 411 Academic Press (1996) | # Daan Frenkel and Berend Smit "Understanding Molecular Simulation: From Algorithms to Applications" p. 411 Academic Press (1996) | ||
# [http://www.nr.com Numerical Recipes] | # [http://www.nr.com Numerical Recipes (Third Edition) website ] | ||
[[category: random numbers]] | [[category: random numbers]] | ||
[[category: computer simulation techniques]] | [[category: computer simulation techniques]] |
Latest revision as of 13:31, 13 November 2007
![]() |
This page contains computer source code. If you intend to compile and use this code you must check for yourself the validity of the code. Please read the SklogWiki disclaimer. |
Random number generators usually provide numbers having a uniform (flat) distribution. However, sometimes it is desirable to generate numbers with some other distributions. For example, the Gaussian (normal) distribution is of paramount importance.
Fortran 90 implementation[edit]
This Fortran 90 function is adapted from Ref. 1, based on an algorithm from the Numerical Recipes collection (Ref. 2). The function ran() calls a random number generator:
! Returns random numbers distributed following a Gaussian with ! unit variance function gauss() implicit none real gauss real v1,v2,r real ranmar do v1=2.0*ranmar()-1.0 v2=2.0*ranmar()-1.0 r=v1*v1+v2*v2 if(r.lt.1.0) exit enddo gauss=v1*sqrt(-2.0*log(r)/r) return end function gauss
References[edit]
- Daan Frenkel and Berend Smit "Understanding Molecular Simulation: From Algorithms to Applications" p. 411 Academic Press (1996)
- Numerical Recipes (Third Edition) website