Определить квадрат root двойника с сериями - PullRequest
0 голосов
/ 09 февраля 2020

Проблема:

Используя следующую приближенную формулу, напишите функцию или метод, который возвращает квадрат root действительного числа! Используйте последовательность x [k + 1] = 1/2 * (x [k] + a / x [k]), которая сходится к квадрату root действительного параметра «a», если x1 = 1.

Мое решение похоже, но оно не использует эту формулу:

public static double squareRoot(double a) {

    double k; 
    double root = a / 2;
    do {
        k = root;
        root = 0.5*(k+ (a / k));
    } while ((k - root) != 0);

    return root;`
}

1 Ответ

1 голос
/ 09 февраля 2020

Этот алгоритм известен как Вавилонский метод . Он сходится для любого положительного начального значения, поэтому ваш код верен.

Однако вы должны вернуться, как только абсолютная разница между последовательными значениями станет меньше малого значения (скажем, 1e-10), чтобы убедиться, что код заканчивается. В противном случае существует риск бесконечного l oop.

...