牛顿迭代法

如何用牛顿迭代法求一个数的平方根(立方根)

  对于
  对于该方程的求解,可以用牛顿迭代法求近似解

  设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为
  求出L与x轴交点的横坐标

  称x1为r的一次近似值。
  重复以上过程,得r的近似值序列,其中
  称为r的n+1次近似值,上式称为牛顿迭代公式。

  那么对于sqrt(n)函数,就可以通过这样的迭代公式来实现:

另外,附latex常用写法:
http://www.mohu.org/info/symbols/symbols.htm

代码

double sqrt(double n) { 
    double k=1.0; 
    while(abs(k*k-n)>1e-9) { 
        k=(k+n/k)/2; 
    } 
    return k; 
}

你可能感兴趣的:(牛顿迭代法)