我正在尝试在R中进行巴比伦算法,并且无法弄清楚我错在哪里。基本上,我试图使用巴比伦算法计算x
的平方根。它包括猜测x
的根, - (让我们称之为r
)。让我们说猜测是r = x/2
。我们将r
替换为r
和x/r
的平均值,直至|r^2 - x| < 10^-6
。我还希望返回根以及它所需的迭代次数。
这是我的代码,但我得到了一个无限循环。
root = function(x, t = 10^{-6}
r = x/2
i = 0
while(abs(r^2 - x) > t{
r = (x + x/r)/2
i = i + 1
}
return(list("sqrt.x" = r, "n.iter" = i))
}