如下所述:
cdf 的反函数分别是x=(2u)^1/2 u是小于1/2的, x=2-(2-2u)^1/2 u是大于等于1/2的
我的方法是先产生n个[0,1]均匀分布,再判断每一个u的大小,然后带到不同式子里,最后产生这个CDF的随机样本
程序如下
simfx=function(n)
{
output=0
x=0
t=0
u=runif(n)
for(i in 1:n)
while(t<n)
{
if(u[i]<(1/2))
{
x=(2*u)^(1/2)
t=t+1
output[t]=x
}
else((1/2)<=u[i])
{
x=2-(2-2*u)^(1/ 2)
t=t+1
output[t]=x
}
t
}
output
}
程序如上,不知道 为什么总是运行不了,求高人解答,实在太感谢了。


雷达卡



京公网安备 11010802022788号







