#--------------------------# # Loesungen UeBlatt 6 # #--------------------------# # Schauen Sie sich zunaechst das Loesung6.pdf an. --------------- # Aufgabe 1 # --------------- # 1a) N = 100000 x = rnorm(N, mean=0, sd=1/sqrt(2) ) Fx = ifelse( (x>-1 & x<2) , 1 , 0 ) Fx = sqrt(pi) * Fx I = sum(Fx)/N I # etwa 1.6282 # 1b) N = 100000 x = runif(N, min=-1, max=2) Fx = 3*exp(-x^2) I = sum(Fx)/N I # etwa 1.6297 # exaktes Resultat res = sqrt(pi)*( pnorm(2*sqrt(2)) - pnorm(-sqrt(2)) ) res # = 1.628906 ------------- # Aufgabe 2 # ------------- N = 1000000 # wir berechnen zunaechst nur die MC-Summe fuer festes N, # schauen uns also nicht das Konvergenzverhalten an: for(n in 2:8) { x = runif(n*N) X = matrix(x,N,n) y = rowSums(X) Fx = ifelse(y<1,1,0) res = sum(Fx)/N exact = 1/prod(1:n) print( c(res,exact,res/exact) ) } # jetzt mit MC-Summe als Funktion von N, um das # Konvergenzverhalten zu sehen: N = 1000000 Nplot = seq(from=100,to=N,by=100) # fuer diese Werte plotten wir am Ende die MC-Summe, # 1 Mio Punkte ist etwas viel zum Plotten for(n in 2:8) { x = runif(n*N) X = matrix(x,N,n) y = rowSums(X) Fx = ifelse(y<1,1,0) res = cumsum(Fx)/(1:N) exact = rep( 1/prod(1:n) , N ) info = paste("n =",n) plot( res[Nplot] , main=info ) points( exact[Nplot] , col="red" ) readline("press enter to see next n..") } ------------- # Aufgabe 3 # ------------- # 3a) N = 1000000 phi = rnorm(N) Fphi = log(phi^2) res = sum(Fphi)/N res # etwa -1.27 # 3b) N = 1000000 x = rexp(N,2) Fx = 1/2*(1+x+x^2+x^3+x^4) res = sum(Fx)/N res # etwa 2.1299 exact = 2+1/8 exact # 2.125 # 3c) N = 1000000 # Simulation 1: x = rexp(N,2) Fx = 1/2*(1+x+x^2+x^3+x^4) * ifelse(x<1/2,1,0) res1 = sum(Fx)/N res1 # etwa 0.4118 # Simulation 2: x = runif(N,min=0,max=1/2) Fx = 1/2*(1+x+x^2+x^3+x^4)*exp(-2*x) res2 = sum(Fx)/N res2 # etwa 0.4121 # 3d) N = 1000000 x = runif(N,-1,1) y = runif(N,-1,1) Fxy = 4*abs(x-y) res = sum(Fxy)/N res # etwa 2.6675 exact = 8/3 exact # 2.6667