Appendix A: Generating Random Numbers from a Distribution: Difference between revisions
No edit summary |
|||
Line 67: | Line 67: | ||
Knuth, Donald E., The Art of Computer Programming: Volume 2 - Seminumerical Algorithms, Third Edition, Addison-Wesley, 1998. | Knuth, Donald E., The Art of Computer Programming: Volume 2 - Seminumerical Algorithms, Third Edition, Addison-Wesley, 1998. | ||
<br> | <br> | ||
Revision as of 13:40, 10 July 2011
Simulation involves generating random numbers that belong to a specific distribution. We will illustrate this methodology using the Weibull distribution.
Generating Random Times from a Weibull Distribution
The [math]\displaystyle{ cdf }[/math] of the 2-parameter Weibull distribution is given by,
- [math]\displaystyle{ F(T)=1-{{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}}. }[/math]
The Weibull reliability function is given by,
- [math]\displaystyle{ \begin{align} R(T)= & 1-F(t) \\ = & {{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}}. \end{align} }[/math]
To generate a random time from a Weibull distribution, with a given [math]\displaystyle{ \eta }[/math] and [math]\displaystyle{ \beta }[/math] a uniform random number from 0 to 1, [math]\displaystyle{ {{U}_{R}}[0,1] }[/math] , is first obtained. The random time from a weibull distribution is then obtained from:
- [math]\displaystyle{ {{T}_{R}}=\eta \cdot {{\left\{ -\ln \left[ {{U}_{R}}[0,1] \right] \right\}}^{\tfrac{1}{\beta }}}. }[/math]
Conditional
The Weibull conditional reliability function is given by,
- [math]\displaystyle{ R(T,t)=\frac{R(T+t)}{R(T)}=\frac{{{e}^{-{{\left( \tfrac{T+t}{\eta } \right)}^{\beta }}}}}{{{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}}}, }[/math]
or,
BlockSim's Random Number Generator (RNG)
Internally ReliaSoft's BlockSim uses an algorithm based on L'Ecuyer's [RefX] random number generator with a post Bays-Durham shuffle. The RNG's period is aproximately [math]\displaystyle{ {{10}^{18}} }[/math] , which is more than sufficient since this number is larger than the maximum number of simulations allowed by BlockSim. The RNG passes all currently known statistical tests, within the limits the machine's precion, and for a number of calls (simulation runs) less than the period. If no seed is provided the algorithm uses the machines clock to initialize the RNG.
L'Ecuyer, P., 1988, Communications of the ACM, vol. 31, pp.724-774
L'Ecuyer, P., 2001, Proceedings of the 2001 Winter Simulation Conference, pp.95-105
Press, William H., Teukolsky, Saul A., Vetterling, William T., Flannery, Brian R., Numerical
Recipes in C: The Art of Scientific Computing, Second Edition, Cambridge University Press, 1988.
Peters, Edgar E., Fractal Market Analysis: Applying Chaos Theory to Investment & Economics, John Wiley & Sons, 1994.
Knuth, Donald E., The Art of Computer Programming: Volume 2 - Seminumerical Algorithms, Third Edition, Addison-Wesley, 1998.