牛顿法开根

牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method)。

求解f(x)=x^2-a=0的根,对于该f(x)二阶可导,解x0的周围存在一个区域,只要初始点位于该区域内,那么牛顿法必定收敛。

对于f(x)来说,该方法必然收敛到真正的解周围。

牛顿法本质上先任取一点x0计算切线代替该点处的曲线,计算零点x1,x1比x0更加接近真实的平方根,不断迭代下去。经过推导得到

x(n+1)=x(n)-f(x(n))/f'(x(n))

将f(x)代入得到,X(n+1)=[X(n)+n/Xn]/2

def sqrt_newton(n,epsilon=1e-9):
    '''
    牛顿迭代法开根
    :param n:
    :param epsilon: 误差范围
    :return:
    '''
    k=2
    while abs(k**2-n)>epsilon:
        k=(k+n/k)/2
    return k

函数迭代过程:


牛顿法开根_第1张图片
1.png

你可能感兴趣的:(牛顿法开根)