Как им это удалось?
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 1 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 1](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi.jpeg)
Расшифровка таблички
Для начала расшифруем саму табличку. Она маркирована как YBC 7289 (сокращённо от «7289-й предмет из Вавилонской коллекции Йеля, Yale Babylonian Collection»). На табличке показан квадрат, его диагональ, а рядом написаны числа. Вот её стилизованная версия из книги Episodes from the Early History of Mathematics Асгера Обое.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 2 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 2](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-2.png)
Как следует из теоремы Пифагора, длина диагонали единичного квадрата равна √2. Давайте разберёмся с символами!
На табличке указаны числа, записанные в виде вавилонских клинописных нумералов. Они означают 1, 24, 51 и 10.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 3 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 3](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-3.png)
Так как вавилоняне использовали систему счисления по основанию 60 (также называющуюся шестидесятеричной), число 1,24 51 10 в десятичной системе означает 1,41421296296.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 4 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 4](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-4.png)
Это совпадает со значением √2 до шестого знака после запятой, то есть соответствует точности в 99,9999%!
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 5 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 5](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-5.png)
Точность вычислений поражает. Попробуйте воссоздать её без калькулятора, на бумаге, это не так уж просто!
И мы расскажем, как им это удалось.
Вавилонский алгоритм вычисления квадратного корня
Сейчас я буду изображать фокусника: сначала покажу алгоритм, а затем отдёрну занавес и объясню его.
Мы начинаем с выбора числа x₀ между 1 и √2. Я знаю, это кажется случайным, но не будем торопиться. Например, таким числом может быть 1,2, что станет нашей первой аппроксимацией.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 6 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 6](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-6.png)
Исходя из этого, 2/x₀ больше √2.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 7 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 7](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-7.png)
Следовательно, интервал [x₀, 2/x₀] включает в себя √2.
Из этого следует, что средняя точка интервала [x₀, 2/x₀] является более точной аппроксимацией значения √2. Как видно на рисунке ниже, она существенно лучше!
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 8 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 8](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-8.png)
Давайте определим из этого x₁.
Развивая эту тему, мы можем определить последовательность аппроксимации, беря средние точки таких интервалов.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 9 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 9](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-9.png)
Вот несколько первых членов последовательности. Даже третий член уже является на удивление хорошей аппроксимацией.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 10 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 10](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-10.png)
Если мы нанесём эти числа на диаграмму рассеяния, то спустя несколько шагов нам уже практически понадобится микроскоп, чтобы увидеть отличия от √2.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 11 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 11](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-11.png)
Как видите, это сходится к √2 чрезвычайно быстро.
Но насколько быстро?
Погрешность вавилонской аппроксимации
Погрешность между этой аппроксимацией и значением √2 определяется просто как расстояние между ними, замеренное по абсолютному значению их разности. Например, погрешность нашего первого предположения e₀ задаётся следующим образом:
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 12 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 12](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-12.png)
Каким бы малым или большим ни было e₀, мы можем использовать её для оценки последующих погрешностей.
Давайте займёмся алгеброй и посмотрим, как e₀ относится к e₁! Сначала выразим e₁ в виде дроби.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 13 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 13](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-13.png)
Тогда поскольку мы выбрали x₀ больше единицы, то можем выразить его в членах e₁. Так как числитель e₀ возведён в квадрат, наша задача проста.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 14 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 14](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-14.png)
Повторяя эти рассуждения, мы получаем, что сходимость очень быстра, даже быстрее экспоненциальной!
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 15 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 15](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-15.png)
Повезло ли вавилонянам, или они угодили в самую точку?
На самом деле, второе. Настало время поднять занавес!
Метод Ньютона-Рафсона
Давайте перефразируем задачу аппроксимации квадратного корня из двух. Вместо того, чтобы вычислять функцию f(x) = √x в заданной точке, попробуем найти корень (положительный) f(x) = x² — 2. (Который, как оказывается, тоже равен √2.)
Существует ли обобщённый метод решения такой задачи? Да, это метод Ньютона-Рафсона. Чтобы показать, как он работает, давайте приблизим корень f(x).
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 16 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 16](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-16.png)
График f(x) = x² — 2
Как мы можем переместиться от нашей первоначальной догадки x₀ к корню?
Например, можно следовать по направлению касательной и посмотреть, где она пересекает ось X. Поскольку угол касательной определяет производная, это пересечение можно сразу вычислить. Я покажу, как это сделать.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 17 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 17](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-17.png)
Уравнение касательной задаётся следующим образом.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 18 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 18](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-18.png)
Приравняв его к нулю и решив, мы получим точку, в которой касательная пересекает ось X.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 19 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 19](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-19.png)
Таким образом, выбрав следующую догадку x₁ в качестве этой точки пересечения, мы получим более точную (надеемся) аппроксимацию.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 20 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 20](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-20.png)
Вот и всё! На основании этой идеи мы можем определить рекурсивную последовательность.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 21 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 21](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-21.png)
Это называется методом Ньютона-Рафсона. Вот следующий шаг. Как видите, третий шаг находится почти в √2.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 22 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 22](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-22.png)
Остаётся один важный вопрос: такой ли способ применили вавилоняне? Да, и вот почему.
Метод Ньютона-Рафсона и вавилонский алгоритм
В предыдущем примере мы решили найти корень f(x) = x² — 2. Давайте найдём явную формулу рекурсивной последовательности, заданной методом Ньютона-Рафсона. Её производную легко вычислить, так что мы готовы.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 23 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 23](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-23.png)
Применив немного алгебры, мы можем прийти к не особо удивительному выводу.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 24 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 24](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-24.png)
Следовательно, вавилонский алгоритм — это частный случай метода Ньютона-Рафсона!
Мы помним, что сходимость в этом конкретном случае крайне быстрая. Справедливо ли это в общем случае? Если нам повезёт.
Скорость сходимости
Если не вдаваться в подробности, сходимость и её скорость зависят от локального поведения функции.
Например, если f(x) дважды дифференцируема, то член погрешности для n-ного элемента может быть описан членами производных и квадратом (n-1)-ной погрешности.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 25 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 25](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-25.png)
(Если вам интересны подробности, то доказательство есть в Википедии.)
В частности, если производные «ведут себя хорошо» (то есть первая производная отделена от нуля, а вторая производная ограничена), то скорость сходимости квадратичная.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 26 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 26](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-26.png)
Если функция «ведёт себя хорошо»
Квадратичная сходимость истинна не только для поиска квадратного корня двух аппроксимацией положительного корня f(x) = x² — 2, но и для широкого спектра функций.
Недостатки
К сожалению не всё так идеально. Метод Ньютона-Рафсона может давать серьёзные сбои в довольно часто встречающихся случаях, к тому же имеет множество недостатков.
Например, если функция рядом с корнем «плоская», то сходимость будет мучительно медленной. Один из таких случаев показан ниже.
![Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 27 Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 27](https://www.pvsm.ru/images/2023/03/07/kak-vavilonyanam-udalos-vychislit-√2-s-tochnostyu-do-shesti-znakov-posle-zapyatoi-27.png)
Это происходит, когда корень имеет большую повышенную неоднозначность, то есть производные тоже равны нулю. Кстати о производных, в отличие от случая с квадратным корнем вавилонян, их может быть сложно вычислить, из-за чего этот метод оказывается неприменимым.
Более того, весь процесс сильно зависит от первоначальной догадки: итерация может сойтись к неверному корню или даже разойтись.
Вывод
То, что древние вавилоняне смогли вычислить √2 до шестого знака после запятой, достаточно удивительно. Эта точность вызывает большое уважение, особенно учитывая, что она была достигнута почти четыре тысячи лет назад и вычисления выполнялись вручную.
Как оказалось, им не просто повезло; они обнаружили особый случай мощного метода, способного аппроксимировать корень широкого спектра функций. Он стал известен под названием «метод Ньютона-Рафсона».
Принцип прост:
- Предполагаем первоначальное значение x₀
- Временно заменяем функцию касательной к ней в x₀
- Определяем, где касательная пересекает ось X
- Используем это пересечение x₁ в качестве новой начальной точки процесса.
Если функция ведёт себя достаточно хорошо (то есть её производная локально отделена от нуля, а вторая производная ограничена), то сходимость происходит чрезвычайно быстро: именно поэтому вавилоняне смогли достичь «наивысшей в древнем мире вычислительной точности».
Автор:
digitalsibur