# rndRayleigh¶

## Purpose¶

Computes rayleigh pseudo-random numbers with the choice of underlying random number generator.

## Format¶

x = rndRayleigh(r, c, sigma)
{ x, newstate } = rndRayleigh(r, c, sigma, state)
Parameters: r (scalar) – number of rows of resulting matrix. c (scalar) – number of columns of resulting matrix. sigma (scalar or matrix) – scale parameter, ExE conformable with ‘r’ and ‘c’. 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. x (RxC matrix) – Rayleigh distributed random numbers. newstate (Opaque vector) – the updated state.

## Examples¶

### Basic example¶

// Set rndseed for repeatable random numbers
rndseed 4323;

// Create a 3x1 column vector of Rayleigh distributed
// random deviates with sigma equal to 2
x = rndRayleigh(3, 1, 2);


After the above code, ‘x’ should be equal to:

0.28950290
1.9994478
5.089132


### Columns with different sigma values¶

// Set rndseed for repeatable random numbers
rndseed 4323;

// Create a 3x2 column vector of Rayleigh distributed
// random deviates with sigma equal to 1 for the
// first column and equal to 3 for the second column
sigma = { 1 3 };
x = rndRayleigh(3, 2, sigma);


After the above code, ‘x’ should be equal to:

0.1447515        2.9991717
2.5445664        2.4191846
1.1406313        5.0636878


### Using a state vector¶

// Create a 3x1 column vector of Rayleigh distributed
// random deviates with sigma equal to 2
seed = 4323;
{ x1, state } = rndRayleigh(3, 1, 2, seed);

// Create 3 additional random deviates, using
// the state vector returned by the previous call
{ x2, state } = rndRayleigh(3, 1, 2, state);


After the above code, ‘x1’ and ‘x2’ should be equal to:

      0.28950290         1.6127897
x1 =  1.9994478    x2 =  2.2812626
5.0891327          3.3757919


## Remarks¶

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

\begin{align}\begin{aligned}\begin{split}E(X) = \sigma\sqrt{\frac{\pi}{2}}\\\end{split}\\Var(X) = \sigma^2\frac{(4 - \pi)}{2}\end{aligned}\end{align}

r and c will be truncated to integers if necessary.

## Technical Notes¶

The default generator for rndRayleigh() is the SFMT Mersenne-Twister 19937. You can specify a different underlying random number generator with the function rndCreateState().