牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程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);
}
}
本文介绍牛顿迭代法的基本原理及其在求解方程根的应用,特别是求平方根的实现过程。通过迭代更新估计值,该方法能快速逼近方程的精确解。
1万+

被折叠的 条评论
为什么被折叠?



