R中的蒙特卡洛整合

时间:2012-11-15 15:21:25

标签: r

我需要将Monte Carlo积分应用于使用R的函数。我能够绘制方程,但我不知道如何在其上绘制随机点。

非常感谢有关如何做到这一点的任何见解。

我用来绘制的函数是基本的plot()函数,其中x为期望范围,y为等式。

谢谢。

3 个答案:

答案 0 :(得分:7)

绘制曲线的最佳方法是使用curve函数:

f = function(x) x^2 + 1   
curve(f(x), -2,2, ylim=c(0, 5))

然后,您可以通过points函数将点添加到图中:

points(runif(100, -2, 2), runif(100, 0, 6))

并使用比较计算蒙特卡洛估计值:

N = 100000
sum(f(runif(N, -2, 2)) > runif(N, 0, 6))/N * (4*6)

enter image description here

答案 1 :(得分:1)

您可以使用

生成随机点
xx <- runif(100,min=0,max=1)
yy <- runif(100,min=0,max=1)

并使用

将它们添加到现有的地块中
points(xx,yy)

有关帮助页面,请参阅?points

答案 2 :(得分:1)

这是我的解决方案版本,因为我理解正确。

基本代码:

    x<-seq(-4,4,0.1)
    y<-2*x^2-3*x
    plot(x,y)
    points(x, rnorm(length(x), 20, 10), col="red")

这会将红色的随机点添加到现有功能中。

Visual