#-----------------------------# # Elementare Monte Carlo # # Integration: Beispiele # #-----------------------------# # Beispiel 1: Volumen der n-dim # Einheitskugel N = 100000 # number of MC-Simus for(n in 2:10) # das n fuer das tau_n { x = runif(n*N,min=-1,max=1) X = matrix(x,N,n) normxquad = rowSums(X^2) # der Buchstabe F ist schon belegt (F=FALSE) # wir nehmen Int fuer Integrand, Int ist noch frei Int = 2^n * ifelse(normxquad<=1,1,0) mcsum = cumsum(Int)/(1:N) exact = pi^(n/2)/gamma(n/2+1) exact = rep(exact,N) info = paste("n =",n) plot(mcsum[10:N],main=info) points(exact[10:N],col="red") readline("press enter to continue..") } # Beispiel 2: 1-dim Integral mit exp(-lambda x): # Loesung b1) N = 100000 x = rexp(N,rate=1/2) Int = 2 * ifelse(x<=log(4),1,0) mcsum = cumsum(Int)/(1:N) plot(mcsum) points(rep(1,N),col="red") # MC-Fehler: plot(mcsum-1) plot(sqrt(1:N)*(mcsum-1)) plot((1:N)*(mcsum-1)) # Loesung b2) N = 100000 x = runif(N,min=0,max=log(4)) Int = log(4)*exp(-x/2) mcsum = cumsum(Int)/(1:N) plot(mcsum) points(rep(1,N),col="red") # MC-Fehler: plot(mcsum-1) plot(sqrt(1:N)*(mcsum-1)) plot((1:N)*(mcsum-1))