rndWishart

Purpose

Computes Wishart distributed random numbers given a covariance matrix.

Format

r = rndWishart(numMats, cov, df)
{ r, newstate } = rndWishart(numMats, cov, df, state)
Parameters:
  • numMats (scalar) – number of Wishart random matrices to create.

  • cov (matrix) – NxM covariance matrix

  • df (scalar) – degrees of freedom.

  • state (scalar or opaque vector) –

    Optional argument.

    scalar case

    state = starting seed value only. If -1, GAUSS computes the starting seed based on the system clock.

    opaque vector case

    state = the state vector returned from a previous call to one of the rnd random number functions.

Returns:
  • r (numMats * rows(cov) x N matrix) – Wishart random matrices.

  • newstate (Opaque vector) – the updated state.

Examples

// covariance matrix
cov = {  1   0.5,
       0.5     1 };

// degrees of freedom
df = 7;

X = rndWishart(1, cov, df);
X = 7.6019339 4.7744799
    4.7744799 7.7341260

Remarks

The properties of the pseudo-random numbers in X are:

\[ \begin{align}\begin{aligned}\begin{split}E(X) = df * cov\\\end{split}\\Var(X_{ij}) = df * (cov_{ij}^2 + cov_{ii}*cov_{jj})\end{aligned}\end{align} \]