Re: how to get random numbers from a distribution
- To: mathgroup at smc.vnet.net
- Subject: [mg81501] Re: how to get random numbers from a distribution
- From: Bill Rowe <readnewsciv at sbcglobal.net>
- Date: Wed, 26 Sep 2007 06:37:47 -0400 (EDT)
On 9/24/07 at 4:19 AM, tdoxmail at gmail.com wrote:
>I am a new Mathematica user. I have a function that i use to
>generate a probability distribution (eg x^2). I want a random number
>generator, that should generate values from this probability
>distribution only,
>I know this Random function in mathematica, that can generate in
>particular range, but how do i tell to generate from a particular
>distribution.
>I created a list of values using my probability function but not
>able to integrate it with Random function so that random numnber
>takes value from that list.
=46irst, x^2 is not a probability distribution. For a function to
be a probability distribution, integrating the function over the
domain of the function must yield 1. That is,
3 x^2 over restricted to the range of 0 to 1 is a probability
distribution function since
In[14]:= Integrate[3*x^2, {x, 0, 1}]
Out[14]= 1
=46or this particular case, inverting the cumulative distribution
function is probably the simplest most direct way to get the
desired distribution. That is
RandomReal[]^(1/3)
has the desired distribution.
There are other methods to get arbitrary distributions from the
uniform distribution when the inverse of the cumulative
distribution function cannot be expressed as simply in closed
form. A good discussion of various methods to do this can be
found in the text Seminumerical Algorithms Vol 2 by Knuth.
Another good reference is Mathematical Statistics for
Mathematica by Colin Rose and Murray Smith. This text comes with
a Mathmatica package (mathstatica) that can do what you want.
Note, the currently available version of mathstatica is
compatible with Mathematica version 5.2 and has not yet been
updated to be compatible with version 6.
--
To reply via email subtract one hundred and four