牛顿迭代法之开平方根
leetcode有一道求开平方根的算法题,于是我想用牛顿迭代法来求解。
牛顿迭代法的简单介绍
设r是f(x) = 0的根,现在选取x0 作为r的初始近似值,过点(x0, f(x0))做曲线y = f(x)的切线L,L : y=f(x0f’(x0)(x-x0)) ,则L与X轴交点的横坐标X1 = x0 - f(x0/f’(x0)),称x1为r的一次近似值。过点(x1, f(x1))做曲线y=f(x)的切线,并求该切线与x轴交点的横坐标x2 = x1 - f(x1/f’(x1)),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中xn+1 = xn - f(xn/f’(xn))称为r的n+1次近似值,这就是牛顿迭代公式。
现在我们来看下算法题:
Compute and return the square root of x, where x is guaranteed to be a non-negative integer.
Since the return type is an