package ac.essex.graphing.charts.continuous; import ac.essex.graphing.plotting.ContinuousFunctionPlotter; /** * <p> * Gaussian Function, allows you to plot a Gaussian Probability Density Function * </p> * * <p> * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version, * provided that any use properly credits the author. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details at http://www.gnu.org * </p> * @author Olly Oechsle, University of Essex @version 1.0 */ public class Gaussian extends ContinuousFunctionPlotter { protected double stdDeviation, variance, mean; public Gaussian(double stdDeviation, double mean) { this.stdDeviation = stdDeviation; variance = stdDeviation * stdDeviation; this.mean = mean; } public double getY(double x) { return Math.pow(Math.exp(-(((x - mean) * (x - mean)) / ((2 * variance)))), 1 / (stdDeviation * Math.sqrt(2 * Math.PI))); } public String getName() { return "Gaussian Curve"; } }