From ILNumerics.Net software wiki
/// <summary>
/// Find the standard deviation of a data set:
/// Formula found from here : http://www.johndcook.com/variance.gif
/// </summary>
public static double GetVariance(ILArray<double> ilX) {
/*
* 1 | |
* s^2 = ---------- | n*sum( Xi^2 ) - sum(Xi) ^ 2 |
* n(n - 1) | |
*
*/
double dN = ilX.Dimensions[0];
double dSumXX = 0;
double dSumX2 = STMath.Pow((double)ILMath.sum(ilX), 2);
//Loop through the dataset, find the Summed components:
foreach (double dX in ilX) {
dSumXX += dX * dX;
}
double dVariance = (1 / (dN * (dN - 1))) * ((dN * dSumXX) - dSumX2);
return dVariance;
}
/// <summary>
/// Get the standard deviation of the data set,
/// </summary>
public static double GetDeviation(ILArray<double> ilX) {
return STMath.Sqrt(GetVariance(ilX));
}