[ Initial Number of Bins: {20) ] [ Initial Number of Points: {2000} ]

IMPLEMENTATION
Chi and Chi-Square Distribution Method

The Chi and Chi-Square Distributions are continous probability distributions. The distribution usually arises when an
n-dimensional vector's orthogonal components are independent and each follows a standard
normal distribution.

Probability Density Function

The Chi (or ε) probability density function is expressed in terms of the formula:

The Chi square random distribution with parameters n and γ is equal to the sum
squares of n independent normal random distribution:

γ^{2} (n,γ) = ∑_{i=1}^{n} [N_{i} (0,γ^{2})]^{2}

The Chi random distribution can be calculated from the above Chi square random distribution:

γ(n,ε) = √ γ^{2} (n,ε)/ n

Testing the Chi and Chi-Square Distribution Method

To test the Chi and Chi-Square Distribution method, a new static method has been added. The TestChiAndChi-SquareDistribution() method has
been written and executed. No additional code is shown. The user can change variables as desired.

For the test, two parameters were set:

number of bins = 20; (nBins)
number of points = 2000; (nPoints)

where the parameter (nBins) is the number of bins in the histogram and (nPoints)
is the number of random points. A random array is created using the Chi and Chi-Square distribution. A comparison is made between
the histogram of random data and the theoretical probability density function of the Chi and Chi-Square distribution. One can see the
results from the exponential random generator are very close to the theoretical Chi and Chi-Square distribution function.

Running this example generates the results shown above.

static void TestChiAndChi-SquareDistribution();
{
for (int i = 0; i < nBins; i++)
{
ListBox1.Items.Add(" x = " + xdata[i] + "," + " - - - - -> Random Data = " + ydata1[i] + "," + " - - - - -> Density Distribution = " + Math.Round(ychi[i] * normalizeFactor1, 0).ToString());
}
}
{
for (int i = 0; i < nBins; i++)
{
ListBox2.Items.Add(" x = " + xdata[i] + "," + " - - - - -> Random Data = " + ydata2[i] + "," + " - - - - -> Density Distribution = " + Math.Round(ychisquare[i] * normalizeFactor2, 0).ToString());
}
}