public class WeibullDistributionImpl extends AbstractContinuousDistribution implements WeibullDistribution, java.io.Serializable
WeibullDistribution
.Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy
|
private double |
numericalMean
Cached numerical mean
|
private boolean |
numericalMeanIsCalculated
Whether or not the numerical mean has been calculated
|
private double |
numericalVariance
Cached numerical variance
|
private boolean |
numericalVarianceIsCalculated
Whether or not the numerical variance has been calculated
|
private double |
scale
The scale parameter.
|
private static long |
serialVersionUID
Serializable version identifier
|
private double |
shape
The shape parameter.
|
private double |
solverAbsoluteAccuracy
Inverse cumulative probability accuracy
|
randomData
Constructor and Description |
---|
WeibullDistributionImpl(double alpha,
double beta)
Creates weibull distribution with the given shape and scale and a
location equal to zero.
|
WeibullDistributionImpl(double alpha,
double beta,
double inverseCumAccuracy)
Creates weibull distribution with the given shape, scale and inverse
cumulative probability accuracy and a location equal to zero.
|
Modifier and Type | Method and Description |
---|---|
protected double |
calculateNumericalMean()
Calculates the mean.
|
private double |
calculateNumericalVariance()
Calculates the variance.
|
double |
cumulativeProbability(double x)
For this distribution, X, this method returns P(X <
x ). |
double |
density(double x)
Returns the probability density for a particular point.
|
protected double |
getDomainLowerBound(double p)
Access the domain value lower bound, based on
p , used to
bracket a CDF root. |
protected double |
getDomainUpperBound(double p)
Access the domain value upper bound, based on
p , used to
bracket a CDF root. |
protected double |
getInitialDomain(double p)
Access the initial domain value, based on
p , used to
bracket a CDF root. |
double |
getNumericalMean()
Returns the mean of the distribution.
|
double |
getNumericalVariance()
Returns the variance of the distribution.
|
double |
getScale()
Access the scale parameter.
|
double |
getShape()
Access the shape parameter.
|
protected double |
getSolverAbsoluteAccuracy()
Return the absolute accuracy setting of the solver used to estimate
inverse cumulative probabilities.
|
double |
getSupportLowerBound()
Returns the lower bound of the support for the distribution.
|
double |
getSupportUpperBound()
Returns the upper bound of the support for the distribution.
|
private void |
invalidateParameterDependentMoments()
Invalidates the cached mean and variance.
|
double |
inverseCumulativeProbability(double p)
For this distribution, X, this method returns the critical point x, such
that P(X < x) =
p . |
void |
setScale(double beta)
Deprecated.
as of 2.1 (class will become immutable in 3.0)
|
private void |
setScaleInternal(double beta)
Modify the scale parameter.
|
void |
setShape(double alpha)
Deprecated.
as of 2.1 (class will become immutable in 3.0)
|
private void |
setShapeInternal(double alpha)
Modify the shape parameter.
|
reseedRandomGenerator, sample, sample
cumulativeProbability
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
cumulativeProbability
public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
private static final long serialVersionUID
private double shape
private double scale
private final double solverAbsoluteAccuracy
private double numericalMean
private boolean numericalMeanIsCalculated
private double numericalVariance
private boolean numericalVarianceIsCalculated
public WeibullDistributionImpl(double alpha, double beta)
alpha
- the shape parameter.beta
- the scale parameter.public WeibullDistributionImpl(double alpha, double beta, double inverseCumAccuracy)
alpha
- the shape parameter.beta
- the scale parameter.inverseCumAccuracy
- the maximum absolute error in inverse cumulative probability estimates
(defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY
)public double cumulativeProbability(double x)
x
).cumulativeProbability
in interface Distribution
x
- the value at which the CDF is evaluated.x
.public double getShape()
getShape
in interface WeibullDistribution
public double getScale()
getScale
in interface WeibullDistribution
public double density(double x)
density
in class AbstractContinuousDistribution
x
- The point at which the density should be computed.public double inverseCumulativeProbability(double p)
p
.
Returns Double.NEGATIVE_INFINITY
for p=0 and
Double.POSITIVE_INFINITY
for p=1.
inverseCumulativeProbability
in interface ContinuousDistribution
inverseCumulativeProbability
in class AbstractContinuousDistribution
p
- the desired probabilityp
java.lang.IllegalArgumentException
- if p
is not a valid
probability.@Deprecated public void setShape(double alpha)
setShape
in interface WeibullDistribution
alpha
- the new shape parameter value.private void setShapeInternal(double alpha)
alpha
- the new shape parameter value.@Deprecated public void setScale(double beta)
setScale
in interface WeibullDistribution
beta
- the new scale parameter value.private void setScaleInternal(double beta)
beta
- the new scale parameter value.protected double getDomainLowerBound(double p)
p
, used to
bracket a CDF root. This method is used by
inverseCumulativeProbability(double)
to find critical values.getDomainLowerBound
in class AbstractContinuousDistribution
p
- the desired probability for the critical valuep
protected double getDomainUpperBound(double p)
p
, used to
bracket a CDF root. This method is used by
inverseCumulativeProbability(double)
to find critical values.getDomainUpperBound
in class AbstractContinuousDistribution
p
- the desired probability for the critical valuep
protected double getInitialDomain(double p)
p
, used to
bracket a CDF root. This method is used by
inverseCumulativeProbability(double)
to find critical values.getInitialDomain
in class AbstractContinuousDistribution
p
- the desired probability for the critical valueprotected double getSolverAbsoluteAccuracy()
getSolverAbsoluteAccuracy
in class AbstractContinuousDistribution
public double getSupportLowerBound()
public double getSupportUpperBound()
protected double calculateNumericalMean()
scale * Gamma(1 + (1 / shape))
where Gamma(...)
is the Gamma-functionprivate double calculateNumericalVariance()
scale^2 * Gamma(1 + (2 / shape)) - mean^2
where Gamma(...)
is the Gamma-functionpublic double getNumericalMean()
public double getNumericalVariance()
TDistributionImpl
) or
Double.NaN if it's not definedprivate void invalidateParameterDependentMoments()
Copyright (c) 2003-2013 Apache Software Foundation