Nothing
# program spuRs/resources/scripts/gamma.sim.r
gamma.sim <- function(lambda, m) {
# sim a gamma(lambda, m) rv using rejection with an exp envelope
# assumes m > 1 and lambda > 0
f <- function(x) lambda^m*x^(m-1)*exp(-lambda*x)/gamma(m)
h <- function(x) lambda/m*exp(-lambda/m*x)
k <- m^m*exp(1-m)/gamma(m)
while (TRUE) {
X <- -log(runif(1))*m/lambda
Y <- runif(1, 0, k*h(X))
if (Y < f(X)) return(X)
}
}
set.seed(1999)
n <- 10000
g <- rep(0, n)
for (i in 1:n) g[i] <- gamma.sim(1, 2)
hist(g, breaks=20, freq=F, xlab="x", ylab="pdf f(x)",
main="theoretical and simulated gamma(1, 2) density")
x <- seq(0, max(g), .1)
lines(x, dgamma(x, 2, 1))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.