Normal Random Number Generator
The Normal Random Number Generator of ns-3 advertizes itself as able to generate a sequence of random numbers that is uniformly distributed as a gaussian with a given sigma. The ns-3 class that implements this behavior is NormalVariable. By default it produces a sequence with a mean value of 0 and a variance of 1.
Our goal is to validate that the random number generator does, in fact, do this.
We apply a chi square test of goodness of fit to evaluate the function. We create a histogram with 50 bins uniformly distributed across the range [-4, 4) and extend the boundary bins to extend the range to -infinity and +infinity. We generate 1 000 000 random numbers which we assign to appropriate bins in the histogram.
Since the expected value is provided for us (we do not calculate it from the data) the degrees of freedom in the chi square test is 50. Using this value, we calculate a maximum chi squared statistic corresponding to the 0.05 significance level (using the GNU Scientific Library gsl_cdf_chisq_Qinv function) as 67.5048. Ten runs of the test for goodness of fit results in an average chi square statistic of 48.1421.
Since 48.1421 is less than the rejection value of 67.5048 we can state with 95% confidence that the chi square statistic we measured is conistent with statistical fluctuations and that the ns-3 normal random number generator does, in fact, generate random numbers distributed normally.
The following is a histogram of the random numbers generated in one run of the test. Expected values are calulated based on the area of the cumulative distribution function corresponding to the histogram bin. This expected value is calculated using the GNU Scientific Library gsl_cdf_gaussian_P function.
Craigdo 07:56, 30 May 2009 (UTC)