Package sim.util.distribution
Class Normal
java.lang.Object
sim.util.distribution.AbstractDistribution
sim.util.distribution.AbstractContinuousDistribution
sim.util.distribution.Normal
- All Implemented Interfaces:
Serializable
Normal (aka Gaussian) distribution; See the math definition
and animated definition.
Static methods operate on a default uniform random number generator; they are synchronized.
1 2 pdf(x) = --------- exp( - (x-mean) / 2v ) sqrt(2pi*v) x - 1 | | 2 cdf(x) = --------- | exp( - (t-mean) / 2v ) dt sqrt(2pi*v)| | - -inf.where v = variance = standardDeviation^2.
Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.
Implementation: Polar Box-Muller transformation. See G.E.P. Box, M.E. Muller (1958): A note on the generation of random normal deviates, Annals Math. Statist. 29, 610-611.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected doubleprotected booleanprotected doubleprotected doubleprotected doubleprotected doubleFields inherited from class sim.util.distribution.AbstractDistribution
randomGenerator -
Constructor Summary
ConstructorsConstructorDescriptionNormal(double mean, double standardDeviation, MersenneTwisterFast randomGenerator) Constructs a normal (gauss) distribution. -
Method Summary
Modifier and TypeMethodDescriptiondoublecdf(double x) Returns the cumulative distribution function.doubleReturns a random number from the distribution.doublenextDouble(double mean, double standardDeviation) Returns a random number from the distribution; bypasses the internal state.doublepdf(double x) Returns the probability distribution function.protected voidsetRandomGenerator(MersenneTwisterFast randomGenerator) Sets the uniform random generator internally used.voidsetState(double mean, double standardDeviation) Sets the mean and variance.toString()Returns a String representation of the receiver.Methods inherited from class sim.util.distribution.AbstractDistribution
apply, apply, getRandomGenerator, nextInt
-
Field Details
-
mean
protected double mean -
variance
protected double variance -
standardDeviation
protected double standardDeviation -
cache
protected double cache -
cacheFilled
protected boolean cacheFilled -
SQRT_INV
protected double SQRT_INV
-
-
Constructor Details
-
Normal
Constructs a normal (gauss) distribution. Example: mean=0.0, standardDeviation=1.0.
-
-
Method Details
-
cdf
public double cdf(double x) Returns the cumulative distribution function. -
nextDouble
public double nextDouble()Returns a random number from the distribution.- Specified by:
nextDoublein classAbstractDistribution
-
nextDouble
public double nextDouble(double mean, double standardDeviation) Returns a random number from the distribution; bypasses the internal state. -
pdf
public double pdf(double x) Returns the probability distribution function. -
setRandomGenerator
Sets the uniform random generator internally used.- Overrides:
setRandomGeneratorin classAbstractDistribution
-
setState
public void setState(double mean, double standardDeviation) Sets the mean and variance. -
toString
Returns a String representation of the receiver.
-