我正在努力解决R中的蒙特卡罗积分问题。
y = x ^ 2 + cos(x);对于x = [0,2]
我应该使用 HitMiss< - function(T,S,method =" halton")来解决这个问题。 T是S中每个样本大小运行的路径数。 S是样本点数
该函数应返回T * | S |矩阵,| S |是S的长度。
请帮帮我,给我一些解决这个问题的线索。 非常感谢!!!
答案 0 :(得分:0)
一些提示:
(1)你见过这个包吗?有一些Halton方法:https://cran.r-project.org/web/packages/randtoolbox/randtoolbox.pdf
(2)你想用Halton方法解决它吗?对于这个简单的例子,一个简单的解决方案就是这个:
set.seed(1)
N = 10000
f = function(x) x^2 + cos(x)
points(runif(N, 0, 2), runif(N, 0, 4), pch = 20)
curve(f(x), 0,2, ylim=c(0, 4), col='white', lwd = 2, add=TRUE)
sum(f(runif(N, 0, 2)) > runif(N, 0, 4))/N * 2*4
#[1] 3.5592