牛顿法开根

作者: xbinng | 来源:发表于2018-01-21 21:58 被阅读12次

    牛顿迭代法(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.png

    相关文章

      网友评论

        本文标题:牛顿法开根

        本文链接:https://www.haomeiwen.com/subject/yynqaxtx.html