Вопрос: почему трансцендентное число
так хорошо приближается рациональным числом
(абсолютная ошибка
)?
Немного теории:Вот допустим, что кто-то взял два целых числа, поделил одно на другое и дал вам результат в виде числа с плавающей точкой. Как найти эти два целых?
Или число с плавающей точкой было получено в результате сложных вычислений (например моделирование Монте-Карло) и хотелось бы проверить, не рациональное ли это число?
Классический ответ тут -
цепные дроби. Раскладываем наше число с плавающей точкой в цепную дробь и смотрим, получился ли текущий остаток очень близким к целому или нет. Если он очень близок к целому, то хвост можно отбросить и получить хорошее приближение в виде дроби.
Другой вопрос. Вот получили мы оценку для нашего
в виде
. Насколько эта оценка хороша?
Можно посчитать ошибку оценки
. Но тут понятно, что чем больше
, тем меньше будет ошибка.
А тогда насколько хороша наша оценка среди дробей, где
?
Можно посмотреть на расстояние между двумя дробями. Минимальное будет около
.
Т.е. можно ожидать наименьшую ошибку около
.
Тогда определим качество приближения, как
.
Как известно из теории, алгебраические числа хуже приближаются рациональными, чем трансцендентные.
Самое плохое тут - это
золотое сечение .
Если его попробовать приблизить, то получим:
Код:
1/1, err=0.381966, q=0.381966
1/2, err=-0.118034, q=-0.472136
2/3, err=0.0486327, q=0.437694
3/5, err=-0.018034, q=-0.45085
5/8, err=0.00696601, q=0.445825
8/13, err=-0.00264937, q=-0.447744
13/21, err=0.00101363, q=0.447011
21/34, err=-0.00038693, q=-0.447291
34/55, err=0.000147829, q=0.447184
Видно, что абсолютная величина качества приближения стремится к константе примерно 0.477 и это качество везде не высоко.
Посмотрим на трансцендентное число
:
Код:
3/1, err=0.281718, q=0.281718
8/3, err=-0.0516152, q=-0.464536
11/4, err=0.0317182, q=0.507491
19/7, err=-0.00399611, q=-0.19581
87/32, err=0.000468172, q=0.479408
106/39, err=-0.000333111, q=-0.506661
193/71, err=2.80307e-05, q=0.141303
1264/465, err=-2.25857e-06, q=-0.488359
1457/536, err=1.75363e-06, q=0.503811
Лучшее качество было 0.141 для дроби
.
А теперь посмотрим на трансцендентное число
:
Код:
22/7, err=0.00126449, q=0.06196
333/106, err=-8.32196e-05, q=-0.935056
355/113, err=2.66764e-07, q=0.00340631
103993/33102, err=-5.77891e-10, q=-0.633219
104348/33215, err=3.31628e-10, q=0.365864
208341/66317, err=-1.22356e-10, q=-0.538116
312689/99532, err=2.91434e-11, q=0.288712
833719/265381, err=-8.71525e-12, q=-0.61379
1146408/364913, err=1.61071e-12, q=0.214485
Дробь
имеет аномально высокое качество 0.0034.
Есть ли на то какая-то причина?
PS: Да, вполне возможно, что это просто случайность и никакой причины тут нет. Просьба к этому аспекту в этой ветке не возвращатся. Хотелось бы увидеть гипотезу, почему оно так. Например потому что такой-то вписанный или описанный многоугольник имеет такие-то свойства. Или что имеется такая-то быстро сходящаяся к
последовательность, которая выдаёт приближение в виде этой дроби.
-- 02.11.2021, 07:09 --Есть некоторая связь с темой
"Почти целые" числа.
Так
.