R循环用牛顿法近似正实数的平方根
R loop to approximate square root of a positive real number with Newton's method
我是 R 的新手,我正在做一个家庭作业问题,要求我使用 Newton's method for square root approximation 使用 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
我是 R 的新手,我正在做一个家庭作业问题,要求我使用 Newton's method for square root approximation 使用 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