# EXERCICE 3.1 bet=5 n=10000 g<-function(x) { if (x>0) { return(exp(bet*x)) } else { return(0) } } ft<-function(x) { return(exp(-(x-bet)^2/2)/sqrt(2*pi)) } f<-function(x) { return(exp(-x^2/2)/sqrt(2*pi)) } h<-function(x) { return(exp(bet*x)) } gg<-function(x) { return(g(x)*f(x)/ft(x)) } #Question 1 s=0 for (i in 1:n) { x=rnorm(2,0,1) s=s+(g(x[1])-g(x[2]))^2 } v1=s/(2*n) print(v1) #on constate que la variance est très grande #Question 2 #Échantillonage d'importance s=0 for (i in 1:n) { x=rnorm(2,bet,1) s=s+(gg(x[1])-gg(x[2]))^2 } print(s/(2*n)) #on constate que la variance est bien réduite par par rapport à la question 1 #Question 3 #Variable de contrôle s=0 for (i in 1:n) { x=rnorm(2,0,1) s=s+(g(x[1])-h(x[1])-g(x[2])+h(x[2]))^2 } print(s/(2*n)) #on constate que la variance est bien réduite par par rapport à la question 1 #Question 4 #Variables antithétiques n=10000 s=0 for (i in 1:n) { x=rnorm(2,0,1) s=s+((g(x[1])+g(-x[1]))/2-(g(x[2])+g(-x[2]))/2)^2 } v4=s/(2*n) print(v4) print(v4/v1) #la réduction de variance n'est pas flagrante, il faut prendre n plus grand pour avoir une meilleure précision ------------------------------------------------------------- # EXERCICE 3.2 # Question 2 n=1000 s=0 for (i in 1:n) { x=rnorm(2,0,1) s=s+(sqrt(abs(x[1]))-sqrt(abs(x[2])))^2 } print(s/(2*n)) # Question 4 s=0 for (i in 1:n) { x=rnorm(2,0,1) s=s+(abs(x[1])-sqrt(abs(x[1]))-abs(x[2])+sqrt(abs(x[2])))^2 } print(s/(2*n)) ------------------------------------------------------------- # EXERCICE 3.3 # Question 1 indic<-function(x) { r=0 if (x>l) { if (xl) { if (xl) { if (x