我正在尝试使用 R 从自定义 pdf 生成随机样本。我的 pdf 是:
我生成了统一的样本,然后尝试将其转换为我的自定义分布。我通过找到我的发行版的 cdf 来做到这一点() 并将其设置为均匀样本 () 并求解.
生成具有上述分布的随机样本,得到一个均匀的样本并解决在
我实现了它,R
但没有得到预期的分布。谁能指出我理解中的缺陷?
nsamples <- 1000;
x <- runif(nsamples);
f <- function(x, u) {
return(3/2*(x-x^3/3) - u);
}
z <- c();
for (i in 1:nsamples) {
# find the root within (0,1)
r <- uniroot(f, c(0,1), tol = 0.0001, u = x[i])$root;
z <- c(z, r);
}