1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Random number from a unknown distribution

  1. Jul 15, 2012 #1
    Dear all,

    I apologize if it is the wrong place, I don't know where I had to post this question since I'm not a mathematician.

    Well, suppose you have a set of numbers which can be describe by a unknown distribution.
    I just like to know whether we can use those numbers to generate a set of random number so that they will have the same probability distribution.

    More precisely, I have a set of atomic velocities which do not obey to the Maxwell distribution. I'd like to generate a new (random) set of velocity. I thought about multiplying each initial value by a uniform random number between -1 and 1 but it does not seem to work.

    Thank you,

  2. jcsd
  3. Jul 15, 2012 #2


    User Avatar
    Science Advisor

    Hey aihaike.

    In terms of generating a random number process that generates something from an arbitrary distribution, there are techniques for doing this, but you need to be able to describe your distribution at least by some sort of histogram. It doesn't need to be an analytic one, but it needs to have at least some kind of bin-representation (i.e. histogram). You could fit a curve to the histogram but this is not necessary.

    Once you have enough samples to build a good histogram, you can then use something like the Metropolis-Hastings algorithm to generate a random number from your histogram distribution.


    You will need to implement some code to get the maximum and I recommend you use the uniform distribution where the constant * the uniform PDF "boxes in" your histogram distribution.

    Also you will need to have your histogram be defined on a finite-interval. If it's defined on the entire real line or equivalent in multiple dimensions, you need to create a finite-interval that captures the majority of the distribution that's good enough. For example getting five standard deviations from the mean of a normal is going to be more than enough for most purposes.

    Once you use MH and use the right test distribution taking into account your histogram and making sure the assumptions are good for using MH (there are other techniques you can look into), then this is your random number generator for your histogram distribution.

    Just make sure you get a lot of samples to construct the histogram.
  4. Jul 15, 2012 #3
    Hey Chiro,

    Thank you for your quick and useful reply!
    I looks like exactly what I was looking for.
    I'll try it out.
    Thanks again.

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook