如何在 if 构造中使用 runif 值?

问题描述 投票:0回答:1

我尝试解决一个问题,计算哪些点落在

描述的区域中

4(2x−1)^4+8(2y−1)^8< 1 + 2((2y − 1)^3)*(3x − 2)^2.

我还用 runif [0:1] 在 r 中生成一些随机数作为计数器,告诉该区域中有哪些点,但我不知道如何像这样选择它们

x = u(i)
y = u(i+1)

其中“u”是随机数

如何使用一些随机值生成 runif 作为向量

r random montecarlo
1个回答
0
投票

创建一个函数

f
来检查点是否在该区域内。该函数将返回一个逻辑向量。然后使用
runif
生成两个长度为
n
的向量并调用该函数。在下面的示例中,我通过管道连接到
mean
,以获取面积的估计值。

f <- function(x, y) 4*(2*x - 1)^4 + 8*(2*y - 1)^8 < 1 + 2*((2*y - 1)^3)*(3*x - 2)^2

n <- 1e3

set.seed(2024)
x <- runif(n)
y <- runif(n)
f(x, y) |> mean()
#> [1] 0.551

创建于 2024 年 10 月 10 日,使用 reprex v2.1.1

© www.soinside.com 2019 - 2024. All rights reserved.