logo资料库

统计计算-随机模拟法(R语言).docx

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
#-------------积分真值------------------ I.true<-exp(1)-exp(-1) #-------------随机投点法------------------ set.seed(1) N <- 10000 phat <- mean(runif(N) <= exp(runif(N,-1,1)-1)) I1 <- phat*2*exp(1) #-------------平均值法------------------ set.seed(1) N <- 10000 eta <- exp(runif(N,-1,1)) I2 <- mean( 2*eta ) #-------------重要抽样法------------------ set.seed(1) N <- 10000 Ginv <- function(y) sqrt(1 + 3*y)-1 X <- Ginv(runif(N,-1/3,1)) eta <- exp(X) / (2/3*(1 + X)) I3 <- mean( eta ) #-------------分层抽样法------------------ N <- 10000 h <- function(x) ifelse(x <= 0, exp(x), exp(x)) set.seed(1) eta1 <- h(runif(N/2, -1, 0)) a <- mean(eta1) eta2 <- h(runif(N/2, 0, 1)) b <- mean(eta2) I4 <- a+b #-------------测试四种方法与真值--------------- I.true I1 I2 I3 I4 #积分真值 #随机投点法 #平均值法 #重要抽样法 #分层抽样法
因为重要抽样法中试投密度 g(x)的选取在区间[-1,0]上与 h(x)并不接近,导致所求出的积 分估计值与真值之间的误差很大。
分享到:
收藏