# vector of evaluation sizes vEvals <- 10^(1:10) evalMonteCarlo <- function(nIterations) { # Evalute monte carlo iteration for mean of Unif(0,1) distributed random variables. # # Args: # nIterations: number of iterations # # Returns: # Monte Carlo result 1/n * sum(runif(n,0,1)) } # evalute evalMonteCarlo for vEvals either by sapply or by Vectorize res1 <- sapply(vEvals, evalMonteCarlo) vectorizedFun <- Vectorize(evalMonteCarlo) res2 <- vectorizedFun(vEvals) # log-log plots of the results plot(log(vEvals), log(res2), col="red", xlab="log(nIteration)", ylab="log(MC)", type="b", lty=1) lines(log(vEvals), log(res1), pch=20, col="blue", type="b", lty=2) legend("topleft", legend=c("sapply", "Vectorize"), col=c("red", "blue"), lty=1:2, cex=0.8)