1

我想使用 Newton Raphson 方法从 beta 分布中模拟 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)])
}

当我尝试调用函数时,它说找不到函数。

4

0 回答 0