использовать метод отклонения под Монте-Карло, чтобы решить inetgral в R - PullRequest
1 голос
/ 24 апреля 2020

Я пытаюсь использовать метод отклонения в Монте-Карло в R, чтобы решить значение интеграции функции:

f <- function(x){
      abs((cos(x))/x)*exp(log(x)-3)^3
    }

Пределы интеграции [0,Inf]

I Я использую следующие коды:

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

Однако я понял, что мое решение, по-видимому, неверно. Пожалуйста, помогите мне исправить это.

Основная проблема заключается в использовании метода отклонения при Монте-Карло для решения числового значения интеграла между 0 и Inf. Я был бы признателен, если бы решение включало вычисление площади под кривой, используя точки.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...