0

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

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

y0是从到的正态分布(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)
}

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

它没有情节。有什么建议可以修复我的代码吗?

谢谢!

4

0 回答 0