牛顿迭代法
2019-04-16 本文已影响0人
Yankee_13
如何用牛顿迭代法求一个数的平方根(立方根)
对于
对于该方程的求解,可以用牛顿迭代法求近似解
设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;
}