Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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_Simulation_Montecarlo_Integral - Fatal编程技术网

R 蒙特卡罗模拟-什么';怎么了?

R 蒙特卡罗模拟-什么';怎么了?,r,simulation,montecarlo,integral,R,Simulation,Montecarlo,Integral,我想用蒙特卡罗模拟函数来计算曲线下的面积 。我想在区间[-2,2]上计算它 我目前的工作 # Define function f f <- function(x) x^2 + 1 # I want to close my function in rectangle (-2, 2) - x axis and (1, 5) y -axis n <- 10^6 # Randomize from x axis of rectangle x_n <- runif(n, min = -2

我想用蒙特卡罗模拟函数来计算曲线下的面积

。我想在区间[-2,2]上计算它

我目前的工作

# Define function f
f <- function(x) x^2 + 1

# I want to close my function in rectangle (-2, 2) - x axis and (1, 5) y -axis
n <- 10^6
# Randomize from x axis of rectangle
x_n <- runif(n, min = -2, max = 2)
# Randomize from y axis of rectangle
y_n <- runif(n, min = 1, max = 5)
# Calculate function values of randomized points
values <- f(x_n)

# Formula for are under the curve for monte carlo simulation is 
# Area of rectangle * (Points below curve) / (Total number of points)
#定义函数f

这里有一个图来显示你在使用什么。我希望它能帮助你更好地理解我在评论中写的内容:


您似乎忽略了y=1下面的矩形。面积(=4)是缺少的数量。因此,该代码用于计算非偏移量表达式x^2是正确的。更改为y_n这里有一个图,显示您正在使用的内容。我希望它能帮助你更好地理解我在评论中写的内容:


您似乎忽略了y=1下面的矩形。面积(=4)是缺少的数量。因此,该代码用于计算非偏移量表达式x^2是正确的。换成y_n我们可以这样尝试蒙特卡罗模拟

> n <- 1e6

> x <- runif(n, -2, 2)

> y <- runif(n, 0, 5)

> mean(x^2 + 1 - y >= 0) * 4 * 5
[1] 9.33014
>nxy平均值(x^2+1-y>=0)*4*5
[1] 9.33014

如果面积可以计算为曲线下的平均点数
x^2+1-y>=0

,我们可以这样尝试蒙特卡罗模拟

> n <- 1e6

> x <- runif(n, -2, 2)

> y <- runif(n, 0, 5)

> mean(x^2 + 1 - y >= 0) * 4 * 5
[1] 9.33014
>nxy平均值(x^2+1-y>=0)*4*5
[1] 9.33014

如果面积可以计算为曲线下方的平均点数
x^2+1-y>=0

,则似乎忽略了y=1下方的矩形。面积(=4)是缺少的数量。因此,该代码对于计算非偏移表达式
x^2
是正确的。更改为
y\n您似乎忽略了y=1下面的矩形。面积(=4)是缺少的数量。因此,该代码对于计算非偏移表达式
x^2
是正确的。更改为
y\n我知道结果更接近真实结果,但我为什么要扩大它?它背后的直觉是什么?我认为在矩形[1,5]中闭合这条曲线是很好的,因为[-2,2]上x^2+1的最小值和最大值是1和5。@Lucian当我们谈论曲线下的面积时,我们通常指曲线和x轴之间的面积。您所计算的是间隔x=[-2,2]上曲线y=x^2+1和y=1之间的面积。@AkselA:查看添加的绘图是否有助于理解问题。@AkselA。我道歉。我对评论的回答不正确。应该去卢西安。我很清楚,你理解并清楚地描述了这些问题。我知道结果更接近真实的结果,但我为什么要扩大它?它背后的直觉是什么?我认为在矩形[1,5]中闭合这条曲线是很好的,因为[-2,2]上x^2+1的最小值和最大值是1和5。@Lucian当我们谈论曲线下的面积时,我们通常指曲线和x轴之间的面积。您所计算的是间隔x=[-2,2]上曲线y=x^2+1和y=1之间的面积。@AkselA:查看添加的绘图是否有助于理解问题。@AkselA。我道歉。我对评论的回答不正确。应该去卢西安。我很清楚,你理解并清楚地描述了这些问题。
> n <- 1e6

> x <- runif(n, -2, 2)

> y <- runif(n, 0, 5)

> mean(x^2 + 1 - y >= 0) * 4 * 5
[1] 9.33014