题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位。
* 二分法
* 牛顿迭代法:
梯度下降法(最速下降法),泰勒公式展开等
/**
* @param num 计算数值
* @param epsilon 误差
* @return
*/
public static double sqrt2(double num, double epsilon) {
double low = 0;
double high = num;
double mid = (low + high) / 2;
while (high - low > epsilon) {
System.out.println(mid);
if (mid * mid > num) {
high = mid;
} else {
low = mid;
}
mid = (high + low) / 2;
}
return mid;
}