Appendix A: Generating Random Numbers from a Distribution: Difference between revisions
Lisa Hacker (talk | contribs) |
Lisa Hacker (talk | contribs) No edit summary |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Template:bsbook | {{Template:bsbook|Appendix A|Generating Random Numbers from a Distribution}} | ||
Simulation involves generating random numbers that belong to a specific distribution. We will illustrate this methodology using the Weibull distribution. | 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= | =Generating Random Times from a Weibull Distribution= | ||
The | The ''cdf'' of the 2-parameter Weibull distribution is given by: | ||
::<math>F(T)=1-{{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}} | ::<math>F(T)=1-{{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}}\,\!</math> | ||
The Weibull reliability function is given by: | The Weibull reliability function is given by: | ||
::<math>\begin{align} | ::<math>\begin{align} | ||
R(T)= & 1-F(t) \\ | R(T)= & 1-F(t) \\ | ||
= & {{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}} | = & {{e}^{-{{\left( \tfrac{T}{\eta } \right)}^{\beta }}}} | ||
\end{align}</math> | \end{align}\,\!</math> | ||
To generate a random time from a Weibull distribution, with a given <math>\eta \,\!</math> and <math>\beta \,\!</math>, a uniform random number from 0 to 1, <math>{{U}_{R}}[0,1]\,\!</math> , is first obtained. The random time from a weibull distribution is then obtained from: | |||
To generate a random time from a Weibull distribution, with a given <math>\eta </math> and <math>\beta </math> a uniform random number from 0 to 1, <math>{{U}_{R}}[0,1]</math> , is first obtained. The random time from a weibull distribution is then obtained from: | |||
::<math>{{T}_{R}}=\eta \cdot {{\left\{ -\ln \left[ {{U}_{R}}[0,1] \right] \right\}}^{\tfrac{1}{\beta }}}\,\!</math> | |||
::<math>{{T}_{R}}=\eta \cdot {{\left\{ -\ln \left[ {{U}_{R}}[0,1] \right] \right\}}^{\tfrac{1}{\beta }}}</math> | |||
==Conditional== | ==Conditional== | ||
The Weibull conditional reliability function is given by: | The Weibull conditional reliability function is given by: | ||
< | ::<math>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> | ||
< | |||
The random time would be the solution for <math>t\,\!</math> for <math>R(t|T)={{U}_{R}}[0,1]\,\!</math>. | |||
=BlockSim's Random Number Generator (RNG)= | =BlockSim's Random Number Generator (RNG)= | ||
Line 41: | Line 33: | ||
#L'Ecuyer, P., 1988, Communications of the ACM, vol. 31, pp.724-774 | #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 | #L'Ecuyer, P., 2001, Proceedings of the 2001 Winter Simulation Conference, pp.95-105 | ||
# | #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. | #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. | #Knuth, Donald E., The Art of Computer Programming: Volume 2 - Seminumerical Algorithms, Third Edition, Addison-Wesley, 1998. |
Latest revision as of 19:24, 15 September 2023
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 cdf 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]
The random time would be the solution for [math]\displaystyle{ t\,\! }[/math] for [math]\displaystyle{ R(t|T)={{U}_{R}}[0,1]\,\! }[/math].
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 approximately 10^18. The RNG passes all currently known statistical tests, within the limits the machine's precision, 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.
References
- 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
- 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.