iteration - 使用 x1 = (x0 - a/x0)/2 的平方根迭代

标签 iteration

这是我目前所拥有的:

Public static double Sqrt (double a){
     double xOld = a / 2;
     double xNew = 0;
     while (Math.abs(xOld - xNew) >= 0.0001 {
              xNew = (xOld + a / xOld) / 2;
              xNew = xOld;
    }
}

我需要使用算法 x1 = (x0 - a/x0)/2 求一个数的近似平方根。 a 是原始数字,x0 从值 a/2 开始。当我运行此代码时,我得到 12.5(即 a/2)。我需要帮助的是要初始化的 xNew 值和 while 循环的最后一行。感谢您的帮助

最佳答案

试穿这件尺码:

Public static double Sqrt(double a) throws IllegalArgumentException {

     if (a < 0.0) throw new IllegalArgumentException();

     double aSqrt = a / 2.0;
     while (Math.abs(a - aSqrt*aSqrt) >= 0.0001) {  // I'd use a smaller tolerance
          double aSqrtPrev = aSqrt;
          aSqrt = (aSqrtPrev + a / aSqrtPrev) / 2.0;
     }

     return aSqrt ;
}

关于iteration - 使用 x1 = (x0 - a/x0)/2 的平方根迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180931/

相关文章:

c - 如何将我的 `winnerCheck` 函数转换为递归工作? - C

python - 设置迭代顺序因运行而异

python - 矩阵中列的排列

Java For循环使用单个变量迭代100 64 36 16 4 0 4 16 36 64 100

Python:修改列表时的内存使用和优化

python - 在文本文件上一次迭代两行,同时在 python 中一次递增一行

c++ - 使用迭代和递归计算阶乘时的不同答案

c++ - 我应该如何以相反的顺序遍历 C++ 容器的元素?

python - 如何在不迭代的情况下读取行

python - 在 Python 中检索特定的集合元素