我现在自己构造了一个密度函数,想生成随机数,因为这个密度函数写不出来,所以我想这么做,密度基本都集中在(-5,5)之间,我想生成均匀(-5,5)上的随机数,比如1000个,带入密度函数的积分F(x),然后和我在unif(0,1)上生成的随机数(比如说是0.4),进行比较,比如大于0.4的有300个,小于0.4的有700个,那么我近似看这个随机数为[-5+(3/10)*10]
问题1:如果说我对于累积分布函数来说,是(0,X)上f(x)的积分,如果我抽(0,1)上的随机数,然后反解x就能够做出随机数,不知道有什么办法能解,积分的方程
问题2:我在把F(x)和0.4比较的时候好像不能比,也就是说积分出来的值,和一般的值还不能比来比去,说是什么不是倍数,不知道有没有高手能帮我想想,怎么把积分的值,做的能和一般的数据做比较
程序
F<-function(x)
{
return(integrate(fh,-Inf,x,stop.on.error='F'))
}
a<-runif(100,-4,4)
b<-numeric(100)
for(i in 1:100)
{
b<-F(a)
}
这里F(a)根本不能赋值到b上,怎么解决?或者怎么直接比较