数算(Python)——牛顿迭代法(巴比伦算法)求解平方根

计算 x \sqrt{x} x 的方法

巴比伦算法:

  1. 猜测一个大于0近似值。 x 0 x_{0} x0
  2. 使用被开方数除以近似值。 x x 0 \frac{x}{x_{0}} x0x
  3. 计算前两步的数的平均值。 x 1 = 1 2 ( x 0 + x x 0 ) x_{1}=\frac{1}{2}(x_{0}+\frac{x}{x_{0}}) x1=21(x0+x0x)
  4. 令该平均值为新的近似值,回到步骤2,循环计算。

下面的算法就是在使用了巴比伦算法进行迭代计算 x \sqrt{x} x

def square_root(n):
    root = n / 2
    for k in range(20):
        root = (1 / 2) * (root + (n / root))
    return root


print(square_root(6))

巴比伦算法 针对开平方进行计算,牛顿迭代法 的面向更广的范围。

牛顿迭代公式: x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_{n}-\frac{f(x_{n})}{f\prime(x_{n})} xn+1=xnf(xn)f(xn)

你可能感兴趣的:(数算,Python_算法,算法,迭代)