hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_stat_pdf_vavilov (g01mu)

Purpose

nag_stat_pdf_vavilov (g01mu) returns the value of the Vavilov density function φV(λ;κ,β2)ϕV(λ;κ,β2).
It is intended to be used after a call to nag_stat_init_vavilov (g01zu).

Syntax

[result, ifail] = g01mu(x, rcomm)
[result, ifail] = nag_stat_pdf_vavilov(x, rcomm)

Description

nag_stat_pdf_vavilov (g01mu) evaluates an approximation to the Vavilov density function φV(λ;κ,β2)ϕV(λ;κ,β2) given by
c + i
φV(λ;κ,β2) = 1/(2πi)eλsf(s;κ,β2)ds,
ci
ϕV(λ;κ,β2)=12πi c-i c+ieλsf(s;κ,β2)ds,
where κ > 0κ>0 and 0β210β21, cc is an arbitrary real constant and
f(s;κ,β2) = C(κ,β2)exp{slnκ + (s + κβ2)[ln(s/κ) + E1(s/κ)]κexp(s/κ)} .
f(s;κ,β2)=C(κ,β2)exp{slnκ+(s+κβ2) [ln(sκ)+E1 (sκ) ]-κexp(-sκ) } .
E1(x) = 0xt1(1et)dtE1(x)=0xt-1(1-e-t)dt is the exponential integral, C(κ,β2) = exp{κ(1 + γβ2)}C(κ,β2)=exp{κ(1+γβ2)} and γγ is Euler's constant.
The method used is based on Fourier expansions. Further details can be found in Schorr (1974).
For values of κ0.01κ0.01, the Vavilov distribution can be replaced by the Landau distribution since λV = (λLlnκ) / κλV=(λL-lnκ)/κ. For values of κ10κ10, the Vavilov distribution can be replaced by a Gaussian distribution with mean μ = γ1β2lnκμ=γ-1-β2-lnκ and variance σ2 = (2β2) / 2κσ2=(2-β2)/2κ.

References

Schorr B (1974) Programs for the Landau and the Vavilov distributions and the corresponding random numbers Comp. Phys. Comm. 7 215–224

Parameters

Compulsory Input Parameters

1:     x – double scalar
The argument λλ of the function.
2:     rcomm(322322) – double array
This must be the same parameter rcomm as returned by a previous call to nag_stat_init_vavilov (g01zu).

Optional Input Parameters

None.

Input Parameters Omitted from the MATLAB Interface

None.

Output Parameters

1:     result – double scalar
The result of the function.
2:     ifail – int64int32nag_int scalar
ifail = 0ifail=0 unless the function detects an error (see [Error Indicators and Warnings]).

Error Indicators and Warnings

Errors or warnings detected by the function:
  ifail = 1ifail=1
Either the initialization function has not been called prior to the first call of this function or a communication array has become corrupted.

Accuracy

At least five significant digits are usually correct.

Further Comments

nag_stat_pdf_vavilov (g01mu) can be called repeatedly with different values of λλ provided that the values of κκ and β2β2 remain unchanged between calls. Otherwise, nag_stat_init_vavilov (g01zu) must be called again.

Example

function nag_stat_pdf_vavilov_example
x = 2.5;
rkappa = 0.4;
beta2 = 0.1;
mode = int64(0);
[xl, xu, work, ifail] = nag_stat_init_vavilov(rkappa, beta2, mode);
[result, ifail] = nag_stat_pdf_vavilov(x, work)
 

result =

    0.0837


ifail =

                    0


function g01mu_example
x = 2.5;
rkappa = 0.4;
beta2 = 0.1;
mode = int64(0);
[xl, xu, work, ifail] = g01zu(rkappa, beta2, mode);
[result, ifail] = g01mu(x, work)
 

result =

    0.0837


ifail =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013