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)
}

何が間違っているのかよくわかりませんが、 Error:no function to return from, jumping to top level を受け取ります

そして、それはプロットしません。コードを修正するための提案はありますか?

ありがとう!

4

0 に答える 0