''' 牛顿法很多人写了一大通感觉非常的高大上,其实想法很简单,我们目标就是找函数的零点 比如你选了一个起始点x = a , y = f(a) 这个点相比于零点假如说是有距离的。 那么你会发现在这个x = a 点处求一个切线方程,这个切线方程的截距距离零点更近。 ok, 于是l(x) = f(a) + f'(a)(x - a) ---> x = a - f(a) / f'(a) 目的是求’截距‘ ''' # 我们求解 f(x) = x2的函数的零点值 初始点我们选x = 4, 这是一个迭代算法哦 x = 4 for i in range(50): x = x - x**2 / (2 * x) print('x={}, f(x) = {}'.format(x, x**2)) # 很多时候我们不知道一个函数在某个点的导数是多少, 比如上面的2 * x =f'(x) ''' 我们用导数的定义求f'(x) ''' x = 4 for i in range(50): x = x - x**2 / (((x+0.00001) **2 - x**2) / 0.00001) print('x={}, f(x) = {}'.format(x, x ** 2))
牛顿迭代法的简单实现(python)
最新推荐文章于 2022-11-02 17:59:08 发布