牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method)。它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。


牛顿迭代法与一道经典编程问题


       既然牛顿迭代法能够用来求解方程的根,那么最好还是以方程 为例,来试着求解它的根。

为此。


       首先随便找一个初始值

以此类推。以这种方式得到的
推断
经过

当中。

令切线方程等于


继续化简



基于上述迭代公式,我们其实给出了一个求平方根的算法。其实,这也的确是非常多语言中内置的开平方函数的实现方法。




Leetcode上也有一道经典面试题目涉及到开平方函数的实现。例如以下

牛顿迭代法与一道经典编程问题


基于我们已经给出的牛顿迭代法,以下就可来编程解决该问题了。演示样例代码例如以下

class Solution {
public:
    int mySqrt(int x) {
        if (x ==0)  
        return 0;  
        double pre;  
        double cur = 1;  
        do  
        {  
        pre = cur;  
        cur = x / (2 * pre) + pre / 2.0;  
        } while (abs(cur - pre) > 0.00001);  
        return int(cur);  
    }
};

相关文章:

  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-14
  • 2022-12-23
  • 2021-08-24
相关资源
相似解决方案