R代码中的牛顿法平方根(SCIP示例1.1.7)

时间:2019-07-12 01:57:55

标签: r sicp

我想通过RStudio中的迭代将牛顿法应用于平方根,但是我总是遇到错误

  

“错误:C堆栈使用率7969204太接近限制了”

当我在'g'中输入错误的sqrt时。相反,当我直接输入正确的数字时,代码可以正常工作(例如:sqriter(2,4)-> 2)

下面是我为此编写的代码。

感谢您的帮助!

sqriter <- function(g,x){
  ifelse(goodguess(g,x), g, sqriter(improve(g,x), x))
}

goodguess <- function(g,x){
  abs(g*g-x)<0.001
}

average <- function(g,x){
  ((g+x)/2)
}

improve <- function(g,x){
  average(g, (g/x))
}

0 个答案:

没有答案