图1 牛顿迭代法计算平方根过程
推导过程:
因为
所以
// 牛顿迭代法计算平方根
public static double sqrt(double c){
if (c<0) return Double.NaN;
double err = 1e-15;
double t = c;
while(Math.abs(t-c/t)>err*t)//也就是1-c/(t^2)=err
t = (c/t + t)/2.0;
return t;
}
图1 牛顿迭代法计算平方根过程
推导过程:
因为
所以
// 牛顿迭代法计算平方根
public static double sqrt(double c){
if (c<0) return Double.NaN;
double err = 1e-15;
double t = c;
while(Math.abs(t-c/t)>err*t)//也就是1-c/(t^2)=err
t = (c/t + t)/2.0;
return t;
}