Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How To Sample Random Numbers

  1. Sep 5, 2005 #1
    I had a Monte Carlo class many moons ago. I was wondering if some one could jog my memory on how to sample random numbers from a normal distribution. I could do it but the normal distributions CDF is a non elementary integral. I cant get past that part.
  2. jcsd
  3. Sep 5, 2005 #2


    User Avatar
    Science Advisor
    Homework Helper

    Let U1 and U2 be two independent uniforrm random variables over the unit square. Then two independent standard normal random variables can be generated as [itex]N_1 = \sqrt{-2 \log (U_1)} \sin (2\pi U_2)[/itex] and [itex]N_2 = \sqrt{-2 \log (U_1)} \cos (2\pi U_2)[/itex].

    P.S. Any software with an intrinsic normal distribution function will also do the trick.
    Last edited: Sep 5, 2005
  4. Sep 6, 2005 #3

    Explain intrinsic normal distribution function(the intrinsic part).
    Last edited: Sep 6, 2005
  5. Sep 6, 2005 #4


    User Avatar
    Homework Helper

    The obvious method would be to generate uniform ramdon numbers on [0,1] then invert the normal CDF, but that is not computationally practical. What is often done is using the law of large numbers. The average of a large number of nonpathological random variables will be normal. Uniform randoms on [0,1] work well and are often the basis for other distributions. Also as was mentioned one could use a program/library that includes a random normal generator.
  6. Sep 6, 2005 #5


    User Avatar
    Science Advisor

    "Intrinsic" here just means that the software has a built in function that will calculate the normal distribution for you.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook