Этот алгоритм я открыл тоже в детстве, но наверное, чуть позже, лет в 14-15. Мне было интересно, как можно найти квадратный корень с помощью итерации, то есть, чтобы с каждой новой итерации точность увеличивалась.
Основное положение:
Во второй части я просто домножил обе части уравнения на квадрат, и получил слева квадрат "x", справа просто "y". Давайте теперь разделим обе части уравнения на "x":
Как мы понимаем, левая часть уравнения должна равняться правой, то есть, мы должны найти такой x, чтобы если "y" на него делился, в итоге получался "x".
Я долго думал над этой задачей. Я взял y=5, а x=1, и разделил, получил y=5; потом я разделил y/5 и получил 1. Значение x мечется туда-сюда, то принимает значение 5, то 1, и так далее. И тут меня озарило! А что, если брать такой , который будет посередине от и от ? Ведь нам нужно, в конце-концов, свести их вместе. И я сделал это формулой половинного деления отрезка:
Здесь берется предыдущее значение от "x" и вычисляется середина отрезка между и .
В итоге оказалось, что я просто открыл заново метод Ньютона, и что он довольно эффективен для итеративного расчета квадратного корня. Вот так вот...
Вот еще тут есть программа на ассемблере для этого другого способа вычислить квадратный корень.