ikr.simlib.distributions.continuous

## Class HyperExpDistribution

• All Implemented Interfaces:
ReflectionConstructable, ReflectionConstructable3<SimNode,Parameters,RandomNumberGenerator>

public class HyperExpDistribution
extends ContinuousDistribution
Hyperexponential Distribution to the Order of k

Hyperexponential distribution to the order of k
Meaning: Selecting one of $$k$$ random variables that are negative-exponentially distributed with the individual parameters $$\lambda_i$$ and the probabilities $$p_i$$ (parallel switching in the phase model). order $$k > 0$$ rates $$\lambda_i$$ or mean values $$m_i$$ of the individual phases $$(i = 1, \dots, k)$$ branching probabilities $$p_i(i=1,...,k)$$ $$P(T=t) = f(t) = \sum\limits_{i=1}^k \lambda_i \cdot p_i \cdot exp(-\lambda_i t)$$ $$P(T \le t) = F(t) = 1 - \sum\limits_{i=1}^k p_i \cdot exp(-\lambda_i t)$$ $$E[T]= \sum\limits_{i=1}^k \frac{p_i}{\lambda_i}$$ $$VAR[T]= 2 \cdot \sum\limits_{i=1}^k \frac{p_i}{\lambda_i^2} - ( \sum\limits_{i=1}^k \frac{p_i}{\lambda_i} )^2$$ $$c_T= \sqrt{\frac{2 \cdot \sum\limits_{i=1}^k \frac{p_i}{\lambda_i^2}}{(\sum\limits_{i=1}^k \frac{p_i}{\lambda_i})^2}} -1 \le 1$$ $$\phi(s) = \sum\limits_{i=1}^{k} p_i \cdot \frac{\lambda_i}{\lambda_i +s}$$  [...].Distribution = HypoExp [...].Distribution.Order = 2 [...].Distribution.Means = [ 2.5 , 8] [...].Distribution.BranchProbabilities = [ 0.4 0.6 ] 
• ### Field Summary

Fields
Modifier and Type Field and Description
ProbabilityVector branchProbs
NegExpDistribution[] phases
• ### Fields inherited from class ikr.simlib.distributions.Distribution

rng
• ### Fields inherited from interface ikr.simlib.parameters.reflection.ReflectionConstructable

CREATE_INSTANCE_METHOD_NAME
• ### Constructor Summary

Constructors
Constructor and Description
HyperExpDistribution(double[] means, double[] branchProbs)
HyperExpDistribution(double[] means, double[] branchProbs, RandomNumberGenerator rng)
HyperExpDistribution(double mean1, double mean2, double branchProb1)
HyperExpDistribution(double mean1, double mean2, double branchProb1, RandomNumberGenerator rng)
• ### Method Summary

Methods
Modifier and Type Method and Description
static HyperExpDistribution createInstance(SimNode ownNode, Parameters pars, RandomNumberGenerator rng)
double next()
Create random numbers
• ### Methods inherited from class ikr.simlib.distributions.Distribution

getDefaultRNG, getRandomNumberGenerator, reset
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Field Detail

• #### phases

public final NegExpDistribution[] phases
• #### branchProbs

public final ProbabilityVector branchProbs
• ### Constructor Detail

• #### HyperExpDistribution

public HyperExpDistribution(double[] means,
double[] branchProbs,
RandomNumberGenerator rng)
• #### HyperExpDistribution

public HyperExpDistribution(double[] means,
double[] branchProbs)
• #### HyperExpDistribution

public HyperExpDistribution(double mean1,
double mean2,
double branchProb1,
RandomNumberGenerator rng)
• #### HyperExpDistribution

public HyperExpDistribution(double mean1,
double mean2,
double branchProb1)
• ### Method Detail

• #### createInstance

public static HyperExpDistribution createInstance(SimNode ownNode,
Parameters pars,
RandomNumberGenerator rng)
• #### next

public double next()
Description copied from class: ContinuousDistribution
Create random numbers
Specified by:
next in class ContinuousDistribution