在统计学中,存在拒绝方法来生成随机变量。 (但这不是主要问题)
我完成了采样,并希望在一个屏幕上绘制图形。
我认为这是一个' add = TRUE'选项,我进行了设置。
但它给我看了一个新的屏幕。
我不知道出了什么问题。
我很抱歉发布一个微不足道的问题,但我没有其他地方可以问。
nsample=10000
fx = function(x){2*exp(-(x^2)/2)/sqrt(2*pi)}
gx = function(x){exp(-x)}
fxdivgx = function(x){(2*exp(-(x^2)/2)/sqrt(2*pi)/exp(-x))}
grid=seq(0.0,5.0, length.out =1000)
which(fxdivgx(grid)==max(fxdivgx(grid)))
grid[201] #x valuable which fx/gx has maximum value
const = fxdivgx(grid[201])
const
fn = function(x){((2*exp(-(x^2)/2)/sqrt(2*pi))/(exp(-x)*const))}
result2 = list()
result2$candi=rexp(nsample)
result2$targetDen=fn(result2$candi)
result2$keep=ifelse(runif(nsample)<result2$targetDen, TRUE, FALSE)
hist(result2$candi[result2$keep], freq=F, breaks=100)
curve(2*exp(-(x^2)/2)/sqrt(2*pi), add='TRUE', col='red')
这是我的代码。
当我运行此代码时,结果将打印在不同的屏幕上。
如何在一个屏幕上打印两张图片?
hist(result$candi[result$keep], breaks=100)
curve((2*exp(-(x^2)/2)/sqrt(2*pi)), add=TRUE, col='red')