求m的根号,首先任意指定一个x
递推公式:
Xn+1 = (X+m/X)/2
package Newton;
/**
* 返回根号n,精确度小于0.000001
* @author guoyujie
*
*/
public class Main {
public static void main(String[] args) {
System.out.println(new Newton().sqrt(25));
}
}
//牛顿迭代法
class Newton{
public double sqrt(int n) {
double x = n/2; //设置初值
for(int i = 0;i<1000;i++) {
double y = (x+n/x)/2; //迭代公式
if(Math.abs(x-y)<0.000001) {
return y;
}
x = y;
}
return x;
}
}