用牛顿法将R循环逼近正实数的平方根

Bkk

我是R的新手,正在研究一个作业问题,该问题要求我repeat使用牛顿法对平方根近似使用循环这是我到目前为止的内容:

x = 2
a = 10
tol = 1e-04
repeat {
  (abs(x^2 - a) > tol)
  (x = 0.5 * (a/x + x))
  if (all.equal(x^2, a)) {
    break
  }
}

但是我收到一些错误消息以及错误的答案。最后,a应该几乎相等,x ^ 2但还不相等我知道这all.equal部分有问题,但是我试图弄清楚一旦它们足够接近就如何打破循环。

感谢您的任何建议。

李哲源

完全不使用all.equal

## trying to find `sqrt(10)`
x <- 2
a <- 10
tol <- 1e-10
repeat{
  x <- 0.5 * (a / x + x)
  if (abs(x * x - a) < tol) break
  }
x
#[1] 3.162278

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档