Class NormalDistributionImpl
- java.lang.Object
-
- org.apache.commons.math.distribution.AbstractDistribution
-
- org.apache.commons.math.distribution.AbstractContinuousDistribution
-
- org.apache.commons.math.distribution.NormalDistributionImpl
-
- All Implemented Interfaces:
java.io.Serializable,ContinuousDistribution,Distribution,HasDensity<java.lang.Double>,NormalDistribution
public class NormalDistributionImpl extends AbstractContinuousDistribution implements NormalDistribution, java.io.Serializable
Default implementation ofNormalDistribution.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static doubleDEFAULT_INVERSE_ABSOLUTE_ACCURACYDefault inverse cumulative probability accuracy
-
Constructor Summary
Constructors Constructor Description NormalDistributionImpl()Creates normal distribution with the mean equal to zero and standard deviation equal to one.NormalDistributionImpl(double mean, double sd)Create a normal distribution using the given mean and standard deviation.NormalDistributionImpl(double mean, double sd, double inverseCumAccuracy)Create a normal distribution using the given mean, standard deviation and inverse cumulative distribution accuracy.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description doublecumulativeProbability(double x)For this distribution, X, this method returns P(X <x).doubledensity(double x)Returns the probability density for a particular point.doubledensity(java.lang.Double x)Deprecated.doublegetMean()Access the mean.doublegetNumericalVariance()Returns the variance.doublegetStandardDeviation()Access the standard deviation.doublegetSupportLowerBound()Returns the lower bound of the support for the distribution.doublegetSupportUpperBound()Returns the upper bound of the support for the distribution.doubleinverseCumulativeProbability(double p)For this distribution, X, this method returns the critical point x, such that P(X < x) =p.doublesample()Generates a random value sampled from this distribution.voidsetMean(double mean)Deprecated.as of 2.1 (class will become immutable in 3.0)voidsetStandardDeviation(double sd)Deprecated.as of 2.1 (class will become immutable in 3.0)-
Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution
reseedRandomGenerator, sample
-
Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution
cumulativeProbability
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.commons.math.distribution.Distribution
cumulativeProbability
-
-
-
-
Field Detail
-
DEFAULT_INVERSE_ABSOLUTE_ACCURACY
public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy- Since:
- 2.1
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
NormalDistributionImpl
public NormalDistributionImpl(double mean, double sd)Create a normal distribution using the given mean and standard deviation.- Parameters:
mean- mean for this distributionsd- standard deviation for this distribution
-
NormalDistributionImpl
public NormalDistributionImpl(double mean, double sd, double inverseCumAccuracy)Create a normal distribution using the given mean, standard deviation and inverse cumulative distribution accuracy.- Parameters:
mean- mean for this distributionsd- standard deviation for this distributioninverseCumAccuracy- inverse cumulative probability accuracy- Since:
- 2.1
-
NormalDistributionImpl
public NormalDistributionImpl()
Creates normal distribution with the mean equal to zero and standard deviation equal to one.
-
-
Method Detail
-
getMean
public double getMean()
Access the mean.- Specified by:
getMeanin interfaceNormalDistribution- Returns:
- mean for this distribution
-
setMean
@Deprecated public void setMean(double mean)
Deprecated.as of 2.1 (class will become immutable in 3.0)Modify the mean.- Specified by:
setMeanin interfaceNormalDistribution- Parameters:
mean- for this distribution
-
getStandardDeviation
public double getStandardDeviation()
Access the standard deviation.- Specified by:
getStandardDeviationin interfaceNormalDistribution- Returns:
- standard deviation for this distribution
-
setStandardDeviation
@Deprecated public void setStandardDeviation(double sd)
Deprecated.as of 2.1 (class will become immutable in 3.0)Modify the standard deviation.- Specified by:
setStandardDeviationin interfaceNormalDistribution- Parameters:
sd- standard deviation for this distribution- Throws:
java.lang.IllegalArgumentException- ifsdis not positive.
-
density
@Deprecated public double density(java.lang.Double x)
Deprecated.Return the probability density for a particular point.- Specified by:
densityin interfaceHasDensity<java.lang.Double>- Specified by:
densityin interfaceNormalDistribution- Parameters:
x- The point at which the density should be computed.- Returns:
- The pdf at point x.
-
density
public double density(double x)
Returns the probability density for a particular point.- Overrides:
densityin classAbstractContinuousDistribution- Parameters:
x- The point at which the density should be computed.- Returns:
- The pdf at point x.
- Since:
- 2.1
-
cumulativeProbability
public double cumulativeProbability(double x) throws MathExceptionFor this distribution, X, this method returns P(X <x). Ifxis more than 40 standard deviations from the mean, 0 or 1 is returned, as in these cases the actual value is withinDouble.MIN_VALUEof 0 or 1.- Specified by:
cumulativeProbabilityin interfaceDistribution- Parameters:
x- the value at which the CDF is evaluated.- Returns:
- CDF evaluated at
x. - Throws:
MathException- if the algorithm fails to converge
-
inverseCumulativeProbability
public double inverseCumulativeProbability(double p) throws MathExceptionFor this distribution, X, this method returns the critical point x, such that P(X < x) =p.Returns
Double.NEGATIVE_INFINITYfor p=0 andDouble.POSITIVE_INFINITYfor p=1.- Specified by:
inverseCumulativeProbabilityin interfaceContinuousDistribution- Overrides:
inverseCumulativeProbabilityin classAbstractContinuousDistribution- Parameters:
p- the desired probability- Returns:
- x, such that P(X < x) =
p - Throws:
MathException- if the inverse cumulative probability can not be computed due to convergence or other numerical errors.java.lang.IllegalArgumentException- ifpis not a valid probability.
-
sample
public double sample() throws MathExceptionGenerates a random value sampled from this distribution.- Overrides:
samplein classAbstractContinuousDistribution- Returns:
- random value
- Throws:
MathException- if an error occurs generating the random value- Since:
- 2.2
-
getSupportLowerBound
public double getSupportLowerBound()
Returns the lower bound of the support for the distribution. The lower bound of the support is always negative infinity no matter the parameters.- Returns:
- lower bound of the support (always Double.NEGATIVE_INFINITY)
- Since:
- 2.2
-
getSupportUpperBound
public double getSupportUpperBound()
Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity no matter the parameters.- Returns:
- upper bound of the support (always Double.POSITIVE_INFINITY)
- Since:
- 2.2
-
getNumericalVariance
public double getNumericalVariance()
Returns the variance. For standard deviation parameters, the variance iss^2- Returns:
- the variance
- Since:
- 2.2
-
-