牛顿迭代法

2019-04-16  本文已影响0人  Yankee_13

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

  对于f(x)=a
  对于该方程的求解,可以用牛顿迭代法求近似解

  设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0)
  求出L与x轴交点的横坐标
x1 = x0-f(x0)/f'(x0)
  称x1为r的一次近似值。
  重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n))
  称为r的n+1次近似值,上式称为牛顿迭代公式。

  那么对于sqrt(n)函数,就可以通过这样的迭代公式来实现:X_{n+1}=X_n-\frac{X^2_n-a}{2X_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; 
}
上一篇下一篇

猜你喜欢

热点阅读