NAG Library Function Document
nag_random_beta (g05fec)
1 Purpose
nag_random_beta (g05fec) generates a vector of pseudorandom variates from a beta distribution with arguments and .
2 Specification
| #include <nag.h> |
| #include <nagg05.h> |
| void |
nag_random_beta (double a,
double b,
Integer n,
double x[],
NagError *fail) |
|
3 Description
The beta distribution has PDF (probability density function):
One of four algorithms is used to generate the variates depending on the values of
and
. Let
be the maximum and
be the minimum of
and
. Then the algorithms are as follows:
If
Jöhnk's algorithm is used, see for example
Dagpunar (1988). This generates the beta variate as
, where
and
are uniformly distributed random variates.
If
The algorithm BB given by
Cheng (1978) is used. This involves the generation of an observation from a beta distribution of the second kind by the envelope rejection method using a log-logistic target distribution and then transforming it to a beta variate.
If and
The switching algorithm given by
Atkinson (1979) is used. The two target distributions used are
and
, along with the approximation to the switching argument of
.
In all other cases
Cheng's BC algorithm, see
Cheng (1978), is used with modifications suggested by
Dagpunar (1988). This algorithm is similar to BB, used when
, but is tuned for small values of
and
.
4 References
Atkinson A C (1979) A family of switching algorithms for the computer generation of beta random variates Biometrika 66 141–5
Cheng R C H (1978) Generating beta variates with nonintegral shape parameters Comm. ACM 21 317–322
Dagpunar J (1988) Principles of Random Variate Generation Oxford University Press
Hastings N A J and Peacock J B (1975) Statistical Distributions Butterworth
5 Arguments
- 1:
a – doubleInput
-
On entry: the argument, , of the beta distribution.
Constraint:
.
- 2:
b – doubleInput
-
On entry: the argument, , of the beta distribution.
Constraint:
.
- 3:
n – IntegerInput
-
On entry: the number, , of pseudorandom numbers to be generated.
Constraint:
.
- 4:
x[n] – doubleOutput
-
On exit: the pseudorandom variates from the specified beta distribution.
- 5:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
- NE_INT_ARG_LE
On entry, .
Constraint: .
- NE_REAL_ARG_LE
On entry,
a must not be less than or equal to 0.0:
.
On entry,
b must not be less than or equal to 0.0:
.
7 Accuracy
Not applicable.
To generate an observation, , from the beta distribution of the second kind from an observation, , generated by nag_random_beta (g05fec) the transformation, , may be used.
To generate an observation, , from an -distribution with degrees of freedom and generate an observation from the beta distribution with arguments and and use the transformation .
9 Example
The example program prints a set of five pseudorandom variates from a beta distribution with arguments
and
, generated by nag_random_beta (g05fec) after initialization by
nag_random_init_repeatable (g05cbc).
9.1 Program Text
Program Text (g05fece.c)
9.2 Program Data
None.
9.3 Program Results
Program Results (g05fece.r)