First you need to calculate the variance for the set. The variance is calculated as the standard deviation of each number from its average value.
double variance(double[] population) { long n = 0; double mean = 0; double s = 0.0; for (double x : population) { n++; double delta = x β mean; mean += delta / n; s += delta * (x β mean); }
Once you do this, you can choose x depending on your graph resolution compared to your value set with the extension, and connect it to the following equation to get y.
protected double stdDeviation, variance, mean; public double getY(double x) { return Math.pow(Math.exp(-(((x - mean) * (x - mean)) / ((2 * variance)))), 1 / (stdDeviation * Math.sqrt(2 * Math.PI))); }
To display the result set: let's say we take the set you specified, and you decide to show x = 0 at x = 2000 on a graph with a resolution of x 1000 pixels. Then you connect the loop (int x = 0; x <= 2000; x = 2) and load these values ββinto the equation above to get the y values ββfor the pair. Since the y you want to show is 0-1, you match these values ββwith what you want your resolution y to match the appropriate rounding behavior, so your plot is not too distorted. Therefore, if you want your resolution y to be 500 pixels, you set from 0 to 0 and from 1 to 500 and from 0.5 to 250, etc. This is a contrived example, and you may need a lot more flexibility, but I think this illustrates the point. Most graphics libraries will handle these little things for you.
source share