Generates pseudorandom numbers from a chi-squared distribution.
DF — Degrees of
freedom. (Input)
DF must be
positive.
R — Vector of length NR containing the random chi-squared deviates. (Output)
NR — Number of
random numbers to generate. (Input)
Default: NR = size (R,1).
Generic: CALL RNCHI (DF, R [,…])
Specific: The specific interface names are S_RNCHI and D_RNCHI.
Single: CALL RNCHI (NR, DF, R)
Double: The double precision name is DRNCHI.
Routine RNCHI generates pseudorandom numbers from a chi-squared distribution with DF degrees of freedom. If DF is an even integer less than 17, the chi-squared deviate r is generated as
where n = DF/2 and the ui are independent random deviates from a uniform (0, 1) distribution. If DF is an odd integer less than 17, the chi-squared deviate is generated in the same way, except the square of a normal deviate is added to the expression above. If DF is greater than 16 or is not an integer, and if it is not too large to cause overflow in the gamma random number generator, the chi-squared deviate is generated as a special case of a gamma deviate, using routine RNGAM. If overflow would occur in RNGAM, the chi-squared deviate is generated in the manner described above, using the logarithm of the product of uniforms, but scaling the quantities to prevent underflow and overflow.
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, RNCHI is used to generate five pseudorandom chi-squared deviates with 5 degrees of freedom.
USE RNCHI_INT
USE UMACH_INT
USE RNSET_INT
IMPLICIT NONE
INTEGER ISEED, NOUT, NR
REAL DF, R(5)
!
CALL UMACH (2, NOUT)
DF = 5.0
NR = 5
ISEED = 123457
CALL RNSET (ISEED)
CALL RNCHI (DF, R)
WRITE (NOUT,99999) R
99999 FORMAT (' Chi-squared random deviates with 5 df: ', 5F7.3)
END
Chi-squared random deviates with 5 df: 12.090 0.481 1.798 14.871 1.748
PHONE: 713.784.3131 FAX:713.781.9260 |