【发布时间】:2025-12-08 08:45:01
【问题描述】:
我在尝试实现用于查找平方根值的牛顿法的代码(使用迭代)时遇到问题。一旦达到一定的准确性,我试图让函数停止打印值,但我似乎无法让它工作。下面是我的代码。
MySqrt <- function (x, eps = 1e-6, itmax = 100, verbose = TRUE){
i <- 1
myvector <- integer(0)
GUESS <- readline(prompt="Enter your guess: ")
GUESS <- as.integer(GUESS)
while(i <= itmax){
GUESS <- (GUESS + (x/GUESS)) * 0.5
myvector <- c(myvector, GUESS)
if (abs(GUESS-x) < eps) break
i <- i + 1
}
myvector
为什么 if 语句不起作用?
【问题讨论】:
-
改成
abs(GUESS^2-x) -
@user2884679 您应该真正将获取用户输入 (
readline) 的任务与进行计算的任务分开。函数应该完成一项任务,否则您的代码会变得混乱。 -
为什么要将
GUESS转换为int?无论如何,它只是通过循环回到第一次的两倍。
标签: r newtons-method