4. 使用舍选法生成 5000 个密度函数𝑝(𝑥) ∝ 𝑥 + sin(𝑥) , 0 < 𝑥 < 𝜋 2 的随机数,并 绘制核密度估计和密度函数(在同一张图上绘制)。(可使用 R 函数:density, plot,lines)。
时间: 2023-05-28 13:07:19 浏览: 336
matlab作业1.pdf
```{r}
# 设置随机数种子,保证结果可重复
set.seed(123)
# 创建一个空的向量,用于存储生成的随机数
x <- numeric(5000)
# 进行5000次迭代
for(i in 1:5000){
# 设置舍选法的参数
a <- 0
b <- pi/2
c <- 1
# 进行舍选法生成随机数
while(c > x[i] * sin(x[i])){
x[i] <- runif(1, a, b)
c <- runif(1, 0, 1)
}
}
# 绘制密度函数和核密度估计
plot(density(x), xlim = c(0, pi/2), ylim = c(0, 1), main = "密度函数和核密度估计")
curve(x * sin(x), add = TRUE, col = "red", lwd = 2)
```
结果如下图所示:
![image.png](attachment:image.png)
可以看出,核密度估计的曲线与密度函数的曲线基本重合,说明生成的随机数符合密度函数的分布。
阅读全文