DSP

牛顿迭代法

2019-07-13 12:47发布

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛。 设相邻两个迭代点:x_(k+1), x_{k}, 最优值点 x*,若存在实数 q>0,满足: 牛顿迭代法迭代法最常见的应用是求取平方根 class Solution { public int mySqrt(int x){ if(x==0){ return 0; } return (int)myFloatSqrt((double)x/2,x); } private double myFloatSqrt(double y,int x){ double y1 = y - (y*y-x)/(2*y); double diff = Math.abs(y1-y); double down = y1 - Math.floor(y1); double up = Math.floor(y1) + 1 -y1; System.out.println(up+" "+down+" "+y1+" "+y+" "+diff); if(up>diff && down>=diff){ return y1; } return myFloatSqrt(y1,x); } }

热门文章