Я только начал с Java, и в качестве первого проекта я пишу программу, которая находит корни (корень куба в данном случае) заданного числа. В настоящее время я пытаюсь Ньютона-Ральпсона добиться этого. Вот код
import java.util.Scanner;
import static java.lang.Math.abs;
public class newClass {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Number whose cube root u wanna find:");
        Double number = input.nextDouble();
        Double epsilon = 0.0001;
        Double ans = number/2.00;
        while (abs((abs(number) - abs(Math.pow(ans,3))))>epsilon){
            System.out.println("in loop");
            ans = ans - ((Math.pow(ans,3) - number)/(3*Math.pow(ans,2)));
            System.out.println(ans);
            if ((number - ans)<=epsilon){
                System.out.println(ans);
            }
        }
        //System.out.println(Math.pow(number,1.0/3.0));
    }
}
это работает только до 11-значных чисел, после чего он становится слишком большим для обработки IDE. Но если я просто использую Math.pow(number,1.0/3.0), он работает для гораздо больших чисел и вычисляет его в кратчайшие сроки.
Итак, каков алгоритм, который использует Math.pow(), который дает мгновенный ответ?
Я понимаю, что мой метод основан на угадывании, и я полагаю, что Math.pow() может фактически вычислять ответ, но как?
