NAG Library Function Document
nag_rngs_von_mises (g05lpc) generates a vector of pseudorandom numbers from a von Mises distribution with concentration parameter .
||nag_rngs_von_mises (double vk,
The von Mises distribution is a symmetric distribution used in the analysis of circular data. The probability density function of this distribution on the circle with mean direction
and concentration parameter kappa,
, can be written as:
is reduced modulo
. For very small
the distribution is almost the uniform distribution, whereas for
all the probability is concentrated at one point.
, are generated using an envelope rejection method with a wrapped Cauchy target distribution as proposed by Best and Fisher (1979)
and described by Dagpunar (1988)
One of the initialization functions nag_rngs_init_repeatable (g05kbc)
(for a repeatable sequence if computed sequentially) or nag_rngs_init_nonrepeatable (g05kcc)
(for a non-repeatable sequence) must be called prior to the first call to nag_rngs_von_mises (g05lpc).
Best D J and Fisher N I (1979) Efficient simulation of the von Mises distribution Appl. Statist. 28 152–157
Dagpunar J (1988) Principles of Random Variate Generation Oxford University Press
Mardia K V (1972) Statistics of Directional Data Academic Press
vk – doubleInput
On entry: , the concentration parameter of the required von Mises distribution.
n – IntegerInput
On entry: , the number of pseudorandom numbers to be generated.
x[n] – doubleOutput
On exit: the pseudorandom numbers from the specified von Mises distribution.
igen – IntegerInput
: must contain the identification number for the generator to be used to return a pseudorandom number and should remain unchanged following initialization by a prior call to nag_rngs_init_repeatable (g05kbc)
or nag_rngs_init_nonrepeatable (g05kcc)
iseed – IntegerCommunication Array
On entry: contains values which define the current state of the selected generator.
On exit: contains updated values defining the new state of the selected generator.
fail – NagError *Input/Output
The NAG error argument (see Section 3.6
in the Essential Introduction).
6 Error Indicators and Warnings
On entry, argument had an illegal value.
On entry, .
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG
On entry, .
For a given number of random variates the generation time increases slightly with increasing .
is supplied too large (i.e.,
) then floating point overflow will occur in internal calculation.
This example prints the first five pseudorandom real numbers from a von Mises distribution with
, generated by a single call to nag_rngs_von_mises (g05lpc), after initialization by nag_rngs_init_repeatable (g05kbc)
9.1 Program Text
Program Text (g05lpce.c)
9.2 Program Data
9.3 Program Results
Program Results (g05lpce.r)