使用双指数生成标准法线

时间:2013-11-13 23:18:40

标签: r statistics distribution

我正在尝试使用双指数分布编写用于生成标准法线的代码。换句话说,

x是一个双指数,我已经在这里正确编码了:

double.exponential.rv<-function(i)
{
  u<-runif(1)
  x<--log(1-u)
  v<-runif(1)
  if (v<.5) x<-(-x)
  return(x)
}

其中i=1

y是从0(sqrt(exp(1)/(2*pi)))*exp(-abs(x)))

的正态分布

到目前为止,我的代码是:

std.normal.rv<-function(i)
{
  while(1)
  {
    x<-double.exponential.rv(1)
    y<-runif(1)*(sqrt(exp(1)/(2*pi)))*exp(-abs(x))
    if (y<=(sqrt(exp(1)/(2*pi)))*exp(-abs(x))) return(x)
  }  
  hist(x,nclass=100,freq=FALSE)
}

我不太确定我做错了什么,但我收到了错误:没有返回的功能,跳到顶层

它没有阴谋。有任何修改我的代码的建议吗?

谢谢!

0 个答案:

没有答案