如何通过计算 javascript 上的下一个 Xi 项来找到平方根 n

How find square root n by computing the next Xi term on javascript

使用下一个数值方法编写函数 sqrt(A) 计算正实数的平方根 xi+1 = (1/2) * (xi +(A/xi))。其中A——输入的里亚号; 在零次迭代中,下一个语句被采用:x0 = A; 误差至少应为 10^-6

看来您的要求不仅仅是求一个数的平方根。如果有任何机会这是您的要求,请使用 Math.sqrt.

如果您的要求是为了教育目的实现一个求平方根的函数,您需要编写一个递归函数,如下所示。根据需要修改代码以支持 error at 10^-6

function sqrt(A, i = 0) {
  if (i === 0)
    return A;

  let prev = sqrt(A, i - 1);
  return 0.5 * (prev + (A / prev));
}

console.log(sqrt(2,1000));
console.log(sqrt(3,1000));
console.log(sqrt(9,1000));
console.log(sqrt(25,1000));

您可以取最后一个值 xi-1 并将其与新值 xi 进行比较,而不是使用循环计数器.

function sqrt(a, x = 1) {    // take 1 for x(0) as start value for recursion
    var y = (x + a / x) / 2; // prepare next value x(i+1)

    if (x === y) {           // exit condition
        return x;
    }
    return sqrt(a, y);       // tail call optimization 
}                            // 

console.log(sqrt(2));
console.log(sqrt(10));
console.log(sqrt(9));
console.log(sqrt(25));