牛顿迭代法求平方根
2017-11-28 10:39
218 查看
部分转自http://www.jianshu.com/p/f1d4a1a8efd2
牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。
![](https://img-blog.csdn.net/20171128102816057?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3huNzA0NDE0NzM2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
首先取x0,如果x0不是解,做一个经过(x0,f(x0))这个点的切线,与x轴的交点为x1。
同样的道理,如果x1不是解,做一个经过(x1,f(x1))这个点的切线,与x轴的交点为x2。
以此类推。
以这样的方式得到的xi会无限趋近于f(x)=0的解。
![](https://img-blog.csdn.net/20171128103426116)
int mySqrt(int x)
{
if (x <= 1) return x;
double x1 = 0, x2 = 1;
while (Math.abs(x1 - x2) > 0.000001)
{
x1 = x2;
x2 = x1 / 2 + (double)x / (2 * x1);
}
return (int)x1;
}
牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。
首先取x0,如果x0不是解,做一个经过(x0,f(x0))这个点的切线,与x轴的交点为x1。
同样的道理,如果x1不是解,做一个经过(x1,f(x1))这个点的切线,与x轴的交点为x2。
以此类推。
以这样的方式得到的xi会无限趋近于f(x)=0的解。
int mySqrt(int x)
{
if (x <= 1) return x;
double x1 = 0, x2 = 1;
while (Math.abs(x1 - x2) > 0.000001)
{
x1 = x2;
x2 = x1 / 2 + (double)x / (2 * x1);
}
return (int)x1;
}
相关文章推荐
- 牛顿迭代法快速寻找平方根
- 利用牛顿迭代法求平方根
- 利用牛顿迭代法求平方根
- 算法1.1 最大公约数(欧几里得)&判定素数&计算平方根(牛顿迭代法)
- 利用牛顿迭代法求平方根
- 牛顿迭代法,求实数的平方根
- 【算法王道】二分法和牛顿迭代法求平方根
- [读书笔记]使用牛顿迭代法计算平方根(Quake III)
- 二分法和牛顿迭代法求平方根(Python实现)
- 牛顿迭代法求平方根
- 利用牛顿迭代法求平方根
- 牛顿迭代法求平方根
- 牛顿迭代法求解平方根
- 牛顿迭代法之求浮点数的平方根
- C语言之基本算法11—牛顿迭代法求平方根
- 牛顿迭代法快速寻找平方根
- 牛顿迭代法快速寻找平方根
- C语言之基本算法11—牛顿迭代法求平方根
- 使用牛顿迭代法求平方根
- 牛顿迭代法求解——平方根