g05sb generates a vector of pseudorandom numbers taken from a beta distribution with parameters and .
Syntax
C# |
---|
public static void g05sb( int n, double a, double b, G05..::..G05State g05state, double[] x, out int ifail ) |
Visual Basic |
---|
Public Shared Sub g05sb ( _ n As Integer, _ a As Double, _ b As Double, _ g05state As G05..::..G05State, _ x As Double(), _ <OutAttribute> ByRef ifail As Integer _ ) |
Visual C++ |
---|
public: static void g05sb( int n, double a, double b, G05..::..G05State^ g05state, array<double>^ x, [OutAttribute] int% ifail ) |
F# |
---|
static member g05sb : n : int * a : float * b : float * g05state : G05..::..G05State * x : float[] * ifail : int byref -> unit |
Parameters
- n
- Type: System..::..Int32On entry: , the number of pseudorandom numbers to be generated.Constraint: .
- a
- Type: System..::..DoubleOn entry: , the parameter of the beta distribution.Constraint: .
- b
- Type: System..::..DoubleOn entry: , the parameter of the beta distribution.Constraint: .
- g05state
- Type: NagLibrary..::..G05..::..G05StateAn Object of type G05.G05State.
- x
- Type: array<System..::..Double>[]()[][]An array of size [n]On exit: the pseudorandom numbers from the specified beta distribution.
- ifail
- Type: System..::..Int32%On exit: unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).
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:
(i) | if , Johnk's algorithm is used, see for example Dagpunar (1988). This generates the beta variate as , where and are uniformly distributed random variates; |
(ii) | 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; |
(iii) | 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 parameter of ; |
(iv) | 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 . |
One of the initialization methods (G05KFF not in this release) (for a repeatable sequence if computed sequentially) or (G05KGF not in this release) (for a non-repeatable sequence) must be called prior to the first call to g05sb.
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
Error Indicators and Warnings
Errors or warnings detected by the method:
- On entry, .
- On entry, .
- On entry, .
On entry, state vector was not initialized or has been corrupted.
Accuracy
Not applicable.
Parallelism and Performance
None.
Further Comments
To generate an observation, , from the beta distribution of the second kind from an observation, , generated by g05sb the transformation, , may be used.