r语言用重要抽样法进行蒙特卡罗积分估计(x^2/(2*pi)^0.5)*e^(-x^2/2)在[1,+∞]上的积分的代码
时间: 2024-06-04 16:11:44 浏览: 100
蒙特卡罗方法在积分计算中的应用
# 定义被积函数f(x)
f <- function(x) {
x^2/(2*pi)^0.5 * exp(-x^2/2)
}
# 定义重要抽样函数g(x)
g <- function(x) {
exp(-x)
}
# 定义重要抽样函数的反函数g_inv(y)
g_inv <- function(y) {
-log(y)
}
# 设置模拟次数
N <- 100000
# 进行重要抽样蒙特卡罗积分估计
set.seed(123)
x <- g_inv(runif(N))
w <- f(x)/g(x)
integral <- mean(w)
integral
# 结果为1.419914,可以与精确值进行比较
阅读全文