Корень n-ой степени
В разделе 1.3.3 мы видели, что попытка вычисления квадратных корней путем наивного поиска неподвижной точки
y → x/y
не сходится, и что это можно исправить путем торможения усреднением. Тот же самый метод работает для нахождения кубического корня как неподвижной точки
y → x/y²
, заторможенной усреднением. К сожалению, этот процесс не работает для корней четвертой степени — однажды примененного торможения усреднением недостаточно, чтобы заставить сходиться процесс поиска неподвижной точки
y → x/y³
. С другой стороны, если мы применим торможение усреднением дважды (т.е. применим торможение усреднением к результату торможения усреднением от
y → x/y³
), то поиск неподвижной точки начнет сходиться. Проделайте эксперименты, чтобы понять, сколько торможений усреднением нужно, чтобы вычислить корень
n
-ой степени как неподвижную точку на основе многократного торможения усреднением функции
y → x/yⁿ⁻¹
. Используя свои результаты для того, напишите простую процедуру вычисления корней
n
-ой степени с помощью процедур
fixed-point
,
average-damp
и
repeated
из упражнения
1.43
. Считайте, что все арифметические операции, какие Вам понадобятся, присутствуют в языке как примитивы.
Честно говоря, не совсем понимаю результаты экспериментов. Пробывал изменять значение лямбды (количество нулей после запятой), менял количество усреднений, менял входные данные (корень n степени и само значение x).
КАКИЕ-ТО ВЫВОДЫ При увеличении количеств усреднений, вроде как разходится алгоритм или вычисляет очень долго, что немогу дождаться. (скорее расходится) При увеличении лямбда и входных данных, увиличивается время, что логично.