我也在这里问过这个问题。但是,我的理论理解可能有问题,因此我在这里问,因为它更相关。请不要在没有先看的情况下diss。
我已经提到了这些链接—— 这里和这里。后一个链接是我的问题,但事实证明,答案并不完全正确。
因此,我正在创建一个问题,并尝试回答这个问题。
- 我有以下积分
要使用重要性采样 MC 积分解决此问题,需要选择与函数大致相同的重要性 pdf阴谋
我解决相同问题的 R 代码是这样的:
#function 1 - importance sampling
w <- function(x) dunif(x,0.01,1)/dbeta(x,0.7,1)
f <- function(x) x^(-0.5)
X <- rbeta(1000,0.7,1)
Y <- w(X)*f(X)
c(mean(Y),var(Y))
真正的整数值- 1.8
使用上面的重要性采样代码- 1.82(我的重要性 PDF 是Beta(0.7,1)
这很好,所以我假设代码是正确的。
- 现在我有这个积分
我的代码是:
#function 2
w <- function(x) dunif(x,0.01,1)/dnorm(x,0.5,0.25)
f <- function(x) (1+sinh(2*x)*log(x))^(-1)
X <- rnorm(1000,0.5,0.25)
Y <- w(X)*f(X)
Y <- Y[!is.na(Y)]
c(mean(Y),var(Y))
真积分值 ~0.7014
执行上述代码的值〜3.25(我的重要性PDF是正常的(0.5,sd = 0.25)
我究竟做错了什么?
1) 取函数为 f(x)。
2) 从间隔之间截断的重要性 PDF g(x) 生成样本。
3) 得到积分的均值(f(x)/g(x))。