Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用蒙特卡罗下的拒识法求解R_R - Fatal编程技术网

用蒙特卡罗下的拒识法求解R

用蒙特卡罗下的拒识法求解R,r,R,我尝试在R中使用蒙特卡罗下的拒绝法来求解函数的积分值: f <- function(x){ abs((cos(x))/x)*exp(log(x)-3)^3 } 然而,我意识到我的解决方案显然是错误的。 请帮我改正一下 主要问题是使用蒙特卡罗下的拒绝法来求解0和Inf之间的积分数值。如果解决方案涉及使用点计算曲线下的面积,我将不胜感激 问候 set.seed(1234) sampled_x = runif(1000,0,1) accept = c() for(i in

我尝试在R中使用蒙特卡罗下的拒绝法来求解函数的积分值:

f <- function(x){
      abs((cos(x))/x)*exp(log(x)-3)^3
    }
然而,我意识到我的解决方案显然是错误的。 请帮我改正一下

主要问题是使用蒙特卡罗下的拒绝法来求解
0
Inf之间的积分数值。
如果解决方案涉及使用点计算曲线下的面积,我将不胜感激

问候

set.seed(1234)
sampled_x = runif(1000,0,1)
accept = c()
for(i in 1:length(sampled_x)){
  U = runif(1, 0, 1)
  if(dunif(sampled_x[i], 0, 1)*3*U <= dbeta(sampled_x[i], 6, 3)) {

    accept[i] = 'Yes'
  }
  else if(dunif(sampled_x[i],0,1)*2*U > dbeta(sampled_x[i], 6, 3)) {
    accept[i] = 'No'
  }
}
T = data.frame(sampled_x, accept = factor(accept, levels= c('Yes','No')))
n<-length(T)
for (i in 1:n) {
x<-runif(n)
I<-sum(f(x))
}
I