Class WeibullUtil
- Object
-
- WeibullUtil
-
public class WeibullUtil extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classWeibullUtil.Parameters
-
Method Summary
All Methods Modifier and Type Method Description static doublecomputeAverage(double shape, double scale, double location, Double upperBound)See Crénin, François, Truncated Weibull Distribution Functions and Moments (October 30, 2015).static doublecomputeMedian(double shape, double scale, double location, Double upperBound)static doublecomputeMedianWithPRemainPromille(double shape, double scale, double location, double pRemainPromille)static doublecomputePRemainPromille(double shape, double scale, double location, double upperBound)static doublecomputeUpperBound(double shape, double scale, double location, double pRemainPromille)static WeibullUtil.ParametersfindParameters(double lowerBound, double average, double upperBound, double pRemainPromille)This is a simple attempt to get a better parameter estimation for big pRemainPromille values.static WeibullUtil.ParametersfindParametersForAverage(double lowerBound, double average, double upperBound, double pRemainPromille)The approximation from the given parameters boil down to the following problem (latex formulas):static WeibullUtil.ParametersfindParametersForMedian(double lowerBound, double median, double upperBound, double pRemainPromille)
-
-
-
Method Detail
-
computeAverage
public static double computeAverage(double shape, double scale, double location, Double upperBound)See Crénin, François, Truncated Weibull Distribution Functions and Moments (October 30, 2015). Available at SSRN: https://ssrn.com/abstract=2690255 or http://dx.doi.org/10.2139/ssrn.2690255- Parameters:
shape-scale-location-upperBound-- Returns:
-
computeMedian
public static double computeMedian(double shape, double scale, double location, Double upperBound)
-
computeMedianWithPRemainPromille
public static double computeMedianWithPRemainPromille(double shape, double scale, double location, double pRemainPromille)
-
computePRemainPromille
public static double computePRemainPromille(double shape, double scale, double location, double upperBound)
-
computeUpperBound
public static double computeUpperBound(double shape, double scale, double location, double pRemainPromille)
-
findParameters
public static WeibullUtil.Parameters findParameters(double lowerBound, double average, double upperBound, double pRemainPromille)
This is a simple attempt to get a better parameter estimation for big pRemainPromille values. As an alternative to the regular estimation another estimation based on the median value is calculated. The better result is selected according to the relative error of both requested values. Better solutions are welcome !- Parameters:
lowerBound-average-upperBound-pRemainPromille-- Returns:
-
findParametersForAverage
public static WeibullUtil.Parameters findParametersForAverage(double lowerBound, double average, double upperBound, double pRemainPromille)
The approximation from the given parameters boil down to the following problem (latex formulas):CDF_{weibull}(upperBound) = 1 - pRemainPromille/1000
Using the Weibull CDF (1) and the Expectation Value (average) (2) we can derive a formula for the scale dependent on shape and known values from (2)
(1) CDF_{weibull}(x) = 1 - e^{- (\frac{x}{scale})^{shape}}
(2) avg = scale \cdot \Gamma(1 + \frac{1}{shape})
(3) scale = \frac{avg}{\Gamma(1 + (1 / shape))}
with (1), (3) and pRemain = pRemainPromille/1000 follows
(4) pRemain = e^{-(\frac{upper limit}{E_{avg}} \cdot \Gamma(1 + \frac{1}{shape}))^{shape}}
from this we form a zero finding problem
(5) 0 = e^{-(\frac{upper limit}{E_{avg}}\cdot \Gamma(1 + \frac{1}{shape}))^{shape}} - pRemain
The work "Robust Scheduling of Real-Time Applications on Efficient Embedded Multicore Systems" (https://mediatum.ub.tum.de/download/1063381/1063381.pdf) proposes an algorithm from (4) which is basically the bisection method.
-
findParametersForMedian
public static WeibullUtil.Parameters findParametersForMedian(double lowerBound, double median, double upperBound, double pRemainPromille)
-
-