Методы вычисления квадратных корней — это вычислительные алгоритмы для вычисления приближённых значений главных (или неотрицательных) квадратных корней (обычно обозначаемых как , или ) вещественного числа. Арифметически это означает, что если дано число , процедура находит число, которое при умножении на себя даёт . Алгебраически это означает процедуру нахождения неотрицательного корня уравнения . Геометрически это означает построение стороны квадрата с заданной площадью.
Любое положительное вещественное число имеет два корня. Главное значение квадратного корня большинства положительных вещественных чисел является иррациональным числом с бесконечной последовательностью десятичных цифр. Как результат, десятичное представление любого такого квадратного корня может быть вычислено только приближённо с конечной точностью (знаков после запятой). Однако, даже если мы берём корень от полного квадрата целого числа, так что результат имеет конечное представление, некоторые процедуры, используемые для вычисления корня, могут вернуть лишь ряд приближений с возрастающей точностью.
Представление вещественного числа в виде цепной дроби может быть использовано вместо десятичного или двоичного разложения и это представление имеет свойство, что квадратный корень любого рационального числа (который не является полным квадратом) имеет период, то есть периодическое разложение, похожее на то, как рациональные числа имеют повторяющееся разложения десятичной системе счисления.
Большинство общепризнанных аналитических методов являются итеративными и состоят из двух шагов: нахождения подходящего начального значения с последующим итеративным уточнением пока не будет достигнут определённый критерий остановки. Начальным значением может быть любое число, но если оно ближе к конечному значению, число требуемых итераций потребуется меньше. Наиболее известным таким методом, да ещё и удобным для программирования, является метод Ньютона, который основывается на вычислении производной. Несколько методов, такие как обычное деление вручную по схеме Горнера или разложение в ряд, не требуют задание начального значения. В некоторых приложениях требуется найти целочисленный квадратный корень, который является квадратным корнем, округлённым до ближайшего целого (в этом случае может быть использована модифицированная процедура).
Используемый метод зависит от того, как результат будет использован (то есть, насколько точен должен быть результат) и какие средства есть под рукой. Методы можно грубо разбить на те, которые можно выполнить в уме, которые требуют карандаша и листа бумаги, или те, которые реализуются в виде программы и выполняются на компьютерах или других вычислительных устройствах. Могут приниматься в расчёт скорость сходимости (сколько итераций потребуется для достижения заданной точности), вычислительной сложности отдельных операций (таких как деление) или итераций, и распределение ошибок (точность результата).
Процедуры поиска квадратных корней (в частности, корня из 2) известны по меньшей мере со времён древнего Вавилона (XVII век до нашей эры). Метод Герона из Египта первого века был первым проверяемым алгоритмом для вычисления квадратного корня. Современные аналитические методы начались разрабатываться после принятия арабских цифр в Западной Европе в Раннем Ренессансе. В настоящие дни почти все вычислительные устройства имеют функцию быстрого и точного вычисления квадратного корня в виде встроенной конструкции языка программирования, библиотечной функции или аппаратного оператора, которые основываются на описанных ниже процедурах.
Начальная оценка Многие итеративные алгоритмы вычисления квадратного корня требуют задания начального случайного значения. Это значение должно быть ненулевым положительным числом. Оно должно быть между 1 и , числом, квадратным корень которого мы ищем, поскольку квадратный корень должен быть в этих пределах. Если начальное значение очень далеко от корня, алгоритму потребуется больше итераций. Если начать с (или с ), будет отработано лишних примерно итераций просто для получения порядка корня. Поэтому полезно иметь грубую оценку корня, которая может иметь слабую точность, но зато легко вычисляется. В общем случае чем точнее оценка, тем быстрее сходимость. Для метода Ньютона (называемого также вавилонским или методом Герона), начальное значение несколько большее корня даёт более быструю сходимость, по сравнению с начальным значением, меньшим корня.
Вообще говоря, оценка рассматривается на произвольном интервале, в котором известно, что в нём содержится корень (таком как ). Получение лучшей оценки вовлекает либо получение более узких границ интервала, либо лучшего функционального приближения к Последнее обычно означает использование для аппроксимации многочленов более высокого порядка, хотя не все аппроксимации используют многочлены. Общие методы оценки бывают скалярные, линейные, гиперболические и логарифмические. Десятичная система счисления обычно используется для оценки в уме или на бумаге. Двоичная система счисления более пригодна для компьютерных оценок. При оценке экспонента и мантисса обычно обрабатываются отдельно.
Десятичная оценка Обычно число выражается в экспоненциальном виде как , где , а n — целое число, тогда оценкой возможного квадратного корня может быть , где .
Скалярные оценки Скалярные методы делят весь диапазон на интервалы и оценка в каждом интервале представлена одним числом. Если диапазон рассматривается как один интервал, то арифметическое среднее (5,5) или геометрическое среднее ( являются приемлемыми оценками. Абсолютная и относительная оценка для этих оценок будет отличаться. В общем случае отдельное число будет очень неточно. Более точные оценки разбивают диапазон на два и более интервалов, но скалярная оценка продолжает оставаться очень грубой.
Для двух интервалов, разбитых геометрически, квадратный корень можно оценить как.
Эта оценка имеет максимальную абсолютную погрешность в точке = 100 и максимальную относительную ошибку в 100 % в точке = 1.
Например, для с разложением , оценка будет . , с абсолютной ошибкой 246 и относительной ошибкой почти 70 %.
Линейная оценка Лучшей оценкой и стандартным методом является линейное приближение функции на малой дуге. Если, как и выше, степень выделена из числа , а интервал сокращён до , можно использовать секущую или касательную где-то вдоль дуги для аппроксимации, но прямая регрессии метода наименьших квадратов будет более точной.
Прямая, получающаяся методом наименьших квадратов, минимизирует среднее расстояние между оценкой и значением функции. Её уравнение — . После преобразования и округления коэффициентов для упрощения вычислений получим
Это лучшая оценка в среднем, которую можно получить одной попыткой линейной аппроксимации функции в интервале . Оценка имеет максимальную абсолютную ошибку 1,2 в точке a=100 и максимальную относительную ошибку в 30 % в точках S=1 и 10.
Чтобы разделить на 10, вычитаем единицу из показателя степени или, образно говоря, передвигаем десятичную запятую на одну позицию влево. Для этой формулы любая добавленная константа, равная 1 плюс маленькое приращение, даёт удовлетворительную оценку, так что запоминать точное число нет необходимости. Аппроксимация (округлённая или не округлённая) с помощью одной прямой, стягивающей область по точности даёт не более одного верного знака. Относительная ошибка более чем 1/22, так что даёт менее 2 битов информации. Точность сильно ограничена, поскольку область охватывает два порядка, что достаточно большая величина для такого рода оценок.
Существенно лучшую оценку можно получить при помощи кусочно-линейной аппроксимации, то есть с помощью нескольких отрезков, которые приближают поддугу исходной дуги. Чем больше отрезков используется, тем лучше приближение. Наиболее употребительно применение касательных. Критичным моментом является как делить дугу и где располагать точки касания. Действенным методом деления дуги от y=1 до y=100 является геометрический — для двух интервалов границей интервалов является квадратный корень исходного интервала, 1*100, то есть и . Для трёх интервалов будут кубические корни — , и , и так далее. Для двух интервалов является очень удобным числом. Легко получить касательные прямые в точках касания и . Их уравнения: и . Обращая уравнения, получим, что квадратные корни равны и . Тогда для :
Максимальные абсолютные значения оказываются в правых границах интервалов, в точках a=10 и 100, и равны 0,54 и 1,7 соответственно. Максимальные относительные ошибки появляются на концах интервалов, в точках a=1, 10 и 100, и равны 17 %. 17 % или 0,17. Они больше, чем 1/10, так что метод даёт точность менее одной значащей цифры.
Гиперболическая оценка В некоторых случаях может оказаться действенной гиперболическая оценка, поскольку гипербола также является выпуклой кривой и может лежать вдоль дуги Y = x2 лучше, чем прямая. Гиперболическая оценка вычислительно более сложная, поскольку для неё нужно деление на число с плавающей запятой. Почти оптимальной гиперболической аппроксимацией к x2 на интервале является . После преобразования получим . Тогда для :
Деление с плавающей запятой должно быть с точностью до одного десятичного знака, поскольку вся оценка даёт такую точность, и такое деление можно выполнить в уме. Гиперболическая оценка в среднем лучше, чем скалярная или линейная оценка. Её максимальная абсолютная ошибка составляет 1,58 в точке 100, а максимальная относительная ошибка составляет 16,0 % в точке 10. Для худшего случая a=10 оценка равна 3,67. Если начать с 10 и применять итерации Нютона-Рафсона напрямую, требуется две итерации, которые дают 3,66, прежде чем достичь точности гиперболической оценки. Для более типичного случая наподобие 75 гиперболическая оценка даёт 8,00 и требуется 5 итераций Ньютона-Рафсона с начальным значением 75, чтобы получить более точный результат.
Арифметическая оценка Метод, аналогичный кусочно-линейной аппроксимации, но использующий лишь арифметические операции вместо алгебраических уравнений, использует таблицу умножения в обратную сторону — квадратный корень чисел между 1 и 100 где-то между 1 и 10, так что, поскольку мы знаем, что 25 является точным квадратом (5 × 5) и 36 является точным квадратом (6 × 6), то квадратный корень из числа, которое больше 25, но меньше 36, начинается с цифры 5. Аналогично для чисел между другими квадратами. Этот метод даёт правильный первый знак, но точность его всего одна цифра — первая цифра квадратного корня из 35, например, равна 5, но сам корень из 35 почти равен 6.
Лучше делить интервал между двумя квадратами пополам. Так что корень любого числа между 25 и половины пути до 36 (что есть 30,5) оценивается как 5, остальные числа, большие 30,5 вплоть до 36 оцениваются как 6. Процедура требует очень мало арифметики для нахождения середины двух произведений из таблицы. Вот таблица таких чисел:
nearest square est.1 to 2,51 (= 12)12,5 to 6,54 (= 22)26,5 to 12,59 (= 32)312,5 to 20,516 (= 42)420,5 to 30,525 (= 52)530,5 to 42,536 (= 62)642,5 to 56,549 (= 72)756,5 to 72,564 (= 82)872,5 to 90,581 (= 92)990,5 to 100100 (= 102)10
Конечной операцией будет умножение оценки на степень десятки, делённой пополам, так что для ,
Метод даёт точность в одну значащую цифру, поскольку он округляет до лучшей первой цифры.
Метод можно распространить до 3 значащих цифр в большинстве случаев, интерполируя между ближайшими квадратами. Если , то примерно равен k плюс дробь, равная разности и , делённой на разность между двумя квадратами:
где
Конечной операцией, как и выше, служит умножение результата на степень десятки, делённой пополам
Число есть десятичная цифра, а есть дробь, которую следует превратить в десятичную. Дробь имеет обычно одну цифру в числителе и одну или две цифры в знаменателе, так что преобразование в десятичную дробь можно провести в уме.