Generating random numbers from any given distribution
- To: mathgroup at yoda.physics.unc.edu
- Subject: Generating random numbers from any given distribution
- From: "NELSON M. BLACHMAN" <blachman at gtewd.mtv.gsc.gte.com>
- Date: Thu, 07 Jan 1993 14:07:47 PST
Bob Nachbar asks how to generate a random number x between 0 and Pi with a probability density function f[x] proportional to Sin[x]; i.e., f[x] = Sin[x]/2. The general solution is first to determine the associated cululative distribution function F[x] = Integrate[f[w],{w,-Infinity,x}], (1) which, in his case is F[x] = (1 - Cos[x])/2. (2) Then solve for x: x = G[F], where G[.] is the inverse of F[.]. In the case of (2), this is x = ArcCos[1 - 2F], and, finally, make F a random variable uniformly distributed between 0 and 1: F = Random[], x = G[ Random[] ]. In Bob's case, x = ArcCos[ 1 - 2 Random[] ]. Nelson M. Blachman GTE Government Systems Corp. Mountain View, California blachman#gtewd.mtv.gsc.gte.com