ニュートン ラフソン法を使用して、ベータ分布から 100 個の観測値をシミュレートしたいと考えています。ここで、停止規則は |xi − xi−1| です。< .05 で、アルゴリズムの開始点は 0.5 であり、観測値が受け入れられるまで平均で何回の反復が必要かを調べたい
shape1 = 3
とを使用してサンプルをシミュレートする R コードshape2 = 5
:
x <- rbeta(n=100, tol=1e-7, shape1=3, shape2=5)
foo<-function(x,tol=1e-7, x0=0.5,N=100)
{
x1=x0
h=1e-7
i=0.5;
p<-numeric(N)
while(i<=N)
{ df.dx=(x(x0+h)-x(x0))/h
x1=(x0-(x(x0)/df.dx))
p[i]=x1
i=i+1
if(abs(x1 - x0) < tol) break
x0=x1}
return (p[1:(i-1)])
}
関数を呼び出そうとすると、関数が見つかりませんと表示されます。