Generates pseudorandom numbers from a Cauchy distribution.
R — Vector of length NR containing the random Cauchy deviates. (Output)
NR — Number of
random numbers to generate. (Input)
Default: NR = size (R,1).
Generic: CALL RNCHY (R [,…])
Specific: The specific interface names are S_RNCHY and D_RNCHY.
Single: CALL RNCHY (NR, R)
Double: The double precision name is DRNCHY.
Routine RNCHY generates pseudorandom numbers from a standard Cauchy distribution. The probability density function is
Use of the inverse CDF technique would yield a Cauchy deviate from a uniform (0, 1) deviate, u, as tan[π(u − .5)]. Rather than evaluating a tangent directly, however, RNCHY generates two uniform (−1, 1) deviates, x1 and x2. These values can be thought of as sine and cosine values. If
is less than or equal to 1, then x1/x2 is delivered as the Cauchy deviate; otherwise, x1 and x2 are rejected and two new uniform (−1, 1) deviates are generated. This method is also equivalent to taking the ratio of two independent normal deviates.
Deviates from the Cauchy distribution with median T and first quartile T − S, that is, with density
can be obtained by scaling the output from RNCHY. The following statements (in single precision) would yield random deviates from this Cauchy distribution.
CALL RNCHY (NR,
R)
CALL SSCAL (NR,
S,
R,
1)
CALL SADD (NR,
T,
R,
1)
The Cauchy distribution is a member of the symmetric stable family of distributions. The routine RNSTA can be used to generate deviates from this more general family of distributions or even from the stable family not requiring symmetry.
The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator.
In this example, RNCHY is used to generate five pseudorandom deviates from a Cauchy distribution.
USE RNCHY_INT
USE UMACH_INT
USE RNSET_INT
IMPLICIT NONE
INTEGER ISEED, NOUT, NR
REAL R(5)
!
CALL UMACH (2, NOUT)
NR = 5
ISEED = 123457
CALL RNSET (ISEED)
CALL RNCHY (R)
WRITE (NOUT,99999) R
99999 FORMAT (' Cauchy random deviates: ', 5F8.4)
END
Cauchy random deviates: 3.5765 0.9353 15.5797 2.0815 -0.1333
PHONE: 713.784.3131 FAX:713.781.9260 |