在这个问题中,我们将使用四种不同的方法来估计函数 f(x) = exp(x) 在指定区间上的积分。我们将使用以下四种方法:
- 随机投点法 (Monte Carlo method)
- 平均估计法 (Midpoint rule)
- 重要抽样法 (Importance Sampling)
- 分层抽样法 (Stratified Sampling)
我们将比较每种方法的误差,以了解它们的相对准确性。为了更好地比较结果,我们将使用相同的样本数量。
让我们逐步实现每种方法:
首先,我们定义函数 f(x) = exp(x) :
# 定义函数 f(x) = exp(x)
f <- function(x) {
return(exp(x))
}
接下来,我们实现随机投点法(Monte Carlo method):
# 随机投点法(Monte Carlo method)
monte_carlo <- function(n) {
x <- runif(n, 0, 1) # 在区间 [0, 1] 内生成 n 个随机点
y <- f(x) # 计算每个随机点的函数值
estimate <- mean(y) # 计算均值估计
return(estimate)
}
然后,我们实现平均估计法(Midpoint rule):
# 平均估计法(Midpoint rule)
midpoint_rule <