Java实现牛顿迭代法求平方根
突然发现牛顿迭代法求解求根好快啊,好方便啊(好吧,我承认我只会这一种解方程的方式)
附上我试着写的求根代码,求方程涉及大量判断,代码就不贴了,大佬就看着玩一下就行了,别吐槽,我知道这技术含量很低,真的,别喷我了。
import java.util.Scanner;
public class Hello
{
final static double esp = 0.000005;
public static double sol(double x, double n) {
x = x / 2.0 + n / (2.0 * x);
return x;
}
public static double root(double n) {
double x = n/2.0;
while (true) {
if ( Math.abs(n - x * x) < esp)
return x;
else x = sol(x, n);
}
}
public static void main(String[] args) {
double x;
Scanner s = new Scanner(System.in);
x = s.nextDouble();
System.out.println("result is " + root(x));
System.out.println("test "+ (root(x) * root(x)));
}
}