Java中求立方根需要了解牛顿迭代法,具体证明过程可以自行百度,这里只需要记住最终推导得出的公式即可。
牛顿迭代法。设, 求f(x)=0时的解x,即为y的立方根。 根据牛顿迭代思想,
即
;
/*
功能: 计算一个数字的立方根
输入:double input 待求解参数
返回值:double 输入参数的立方根
*/
public static double getCubeRoot(double input) {
/*在这里实现功能*/
if (input == 0) {
return 0;
}
double x0, x1;
x0 = input;
x1 = (2*x0 + input/x0/x0)/3;//利用迭代法求解
while (Math.abs(x1 - x0) > 0.000001) {
x0 = x1;
x1 = (2*x0 + input/x0/x0)/3;
}
return x1;
}
又比如求x的四次开方根
/*
功能: 计算一个数字的四次方根
输入:double input 待求解参数
返回值:double 输入参数的四次方根
*/
public static double getFour(double input) {
/*在这里实现功能*/
if (input == 0) {
return 0;
}
double x0, x1;
x0 = input;
x1 = (3*x0 + input/x0/x0/x0) / 4;
while (Math.abs(x1 - x0) > 0.000001) {
x0 = x1;
x1 = (3*x0 + input/x0/x0/x0) / 4;
}
return x1;
}