Смекни!
smekni.com

А. Б. Верёвкин г. Симбирск, УлГУ (стр. 5 из 9)

Луна +0,033863191±12×10–9
Марс –0,001283210±15×10–9
Юпитер –0,002507004±5×10–9
Сатурн –0,002644865±5×10–9

Луна геоцентрически обгоняет Солнце, поэтому её скорость положительна, прочие планеты, наоборот, отстают, и поэтому их скорости получились отрицательными, что для нашей проблемы несущественно. Обращая полученные величины, найдём синодические периоды обращения планет (в днях на оборот):

Луна 29,53059±2×10–5
Марс 779,933±9×10–3
Юпитер 398,8825±9×10–4
Сатурн 378,0911±7×10–4

Предыдущую систему неравенств можно записать через средние угловые скорости, где V_=1/T_:

–E < D×Vл – Nл < E
–E < D×Vм – Nм < E
–E < D×Vю – Nю < E
–E < D×Vс – Nс < E

Величина D, которую мы ищем, ограничена 2 тысячами лет в днях, – посмотрим, какие погрешности мы можем получить, если пренебрежём поправками к скоростям:

15×109×360×2000×365,25 = 3,9447°

Таким образом, в орбе надо учитывать дополнительные 4° на ошибку округления. А скорости можно взять таковыми (в оборотах на день):

Vм = 0,001283210 (Марс)
Vю = 0,002507004 (Юпитер)
Vс = 0,002644865 (Сатурн)
Vл = 0,033863191 (Луна)

Ясно, что в 16 веке эту систему неравенств нельзя было решить перебором натуральных D, как мы можем себе позволить сделать это с помощью компьютера, и вряд ли можно было сделать это с помощью итерационных методов (как мы решали её поначалу, желая определить возможные области, где сосредоточены решения). Но если мы вспомним снова, что же мы ищем, окажется, что у математиков 16 века был инструмент для нахождения «Общих Кратных» и «Общих Делителей» – алгоритм Евклида, опирающийся на операцию деления с остатком. Считается, что этот алгоритм придуман для решения абстрактных арифметических задач, но мы теперь предполагаем, что создан он для решения именно таких проблем, которые мы разбираем. В следующей главе мы рассмотрим пример такого применения.

6. АЛГОРИТМ ЕВКЛИДА И НАХОЖДЕНИЕ МЕТОНОВА ЦИКЛА

Вспомним операцию деления с остатком числа A (делимого) на другое B (делитель), причём делитель должен быть отличным от нуля, и удобнее, чтобы он был положительным. При этих условиях существуют единственные числа Z – целое (неполное частное) и R (остаток от деления A÷B): 0 =< R < |B| такие, что

A = B×Z + R

Если A и B – целые, таково же и R; если B положительно, Z = [A/B] – целой части числа A/B. Можно, и иногда удобно, делить с остатком усовершенствованным способом, выбирая остаток в диапазоне от –|B|/2 до |B|/2, и тогда Z будет целым числом, ближайшим к A/B.

Деление с остатком – это шаг алгоритма Евклида нахождения «Наибольшего Общего Делителя» (НОД) двух чисел. Суть его в следующем (A и B не должны быть нулевыми одновременно):

1. Пусть B – ненулевое, тогда делим A на B с остатком: A = B×Z1 + R1, 0 =< R1 < |B|,
если R1 = 0, тогда по определению НОД(A, B) = |B|, иначе

2. Делим B на R1 с остатком: B = R1×Z2 + R2, 0 =< R2 < R1 < |B|, если R2 = 0, доказывается, что тогда НОД(A, B) = R1, иначе

3. Делим R1 на R2 с остатком: R1 = R2×Z3 + R3, 0 =< R3 < R2 < R1 < |B|, если R3 = 0, доказывается, что тогда НОД(A, B) = R2, иначе продолжаем аналогично.

Если R{i+1} – ненулевой, мы делим на него с остатком предыдущий остаток:

i+2. Ri = R{i+1}×Z{i+2} + R{i+2}, 0 =< R{i+2} < ... < R1 < |B|

Остатки убывают к нулю, а если A и B – целые, остаток обнуляется на некотором шаге:

j+1. R{j-1} = Rj×Z{j+1} + 0, где Rj ≠ 0

Оказывается, что в этом случае НОД(A, B) = Rj (то есть, Rj – наибольшее число из таких, что A/Rj и B/Rj – целые). Если A и B – рациональные числа, алгоритм Евклида также заканчивается за конечное число шагов, давая НОД.

Например, найдём НОД(1/4, 1/6):

1. 1/4 = (1/6)×1 + 1/12;

2. 1/6 = (1/12)×2 + 0.

НОД(1/4, 1/6) = 1/12: 1/4 = (1/12)×3, 1/6 = (1/12)×2.

Если же A/B иррационально, алгоритм Евклида продолжается бесконечно, а положительные остатки от деления A на B убывают к нулю. В качестве НОД'а в этом случае можно выбрать любой из них, задаваясь необходимой погрешностью. Это применяется в следующей теории – шаги алгоритма Евклида можно записать в виде «непрерывной» или «цепной» дроби, представляющей A/B:

A/B = Z1 + R1/B = Z1 + 1/(B/R1) = Z1 + 1/(Z2 + R2/R1) =
= Z1 + 1/(Z2 + 1/(Z3 + R3/R2)) = .... =
= Z1 + 1/(Z2 + 1/(Z3 + 1/(Z4 + ...))) = [Z1,Z2,Z3,Z4,...]

Если остаток Rk = 0, тогда цепная дробь заканчивается k «этажами» и получим

A/B = [Z1, Z2, Z3, ..., Zk] = Lk/Nk

– правильная дробь после упрощения. Если же Rk ≠ 0, тогда

[Z1, Z2, Z3, ..., Zk] = Lk/Nk

называется k-ой подходящей дробью для A/B – она наиболее близка к A/B среди всех дробей со знаменателем не большим Nk. То есть, A/B примерно равно Lk/Nk, причём:

A×Nk – B×Lk = (–1)k–1Rk,

и следовательно |A/B – Lk/Nk| = Rk/(B×Nk) – весьма мало, поскольку Rk убывают, а Nk – растут.

В предыдущем примере: (1/4)/(1/6) = [1,2] = 1 + 1/2 = 3/2

Итак, поскольку Rk убывают, можно найти такую подходящую дробь [Z1, Z2, Z3, ..., Zk] = Lk/Nk, что A×Nk с точностью до выбранной погрешности близко к B×Lk, и эту величину можно выбрать за «Наименьшее Общее Кратное» чисел A и B, НОК(A, B) – наименьшее неотрицательное число, нацело делящееся на A и B.

При натуральных A и B мы имеем НОК(A, B) = A×B / НОД(A, B), то же верно и для рациональных положительных чисел, а для прочих положительных это равенство можно считать определением НОК.

Применим эту теорию Евклида к длине синодического месяца и длине юлианского года (и то и другое – в днях): 29,53059 и 365,25. Напишем непрерывную дробь для их отношения:

29,53059/365,25 = [0, 12, 2, 1, 2, 2, 24, 1, 10, ...]

Разбираем подходящие дроби, их смысл и остатки:

  • [0] = 0/1, R1 = 29,53059 – означает всего лишь, что месяц короче года;
  • [0,12] = 1/12, R2 = 10,88292 – в году 12 месяцев и ещё около 11 дней;
  • [0,12,2] = 2/25, R3 = 7,76475 – на столько дней 25 месяцев длиннее 2-х лет;
  • [0,12,2,1] = 3/37, R4 = 3,11817 – разница 3-х лет и 37 месяцев;
  • [0,12,2,1,2] = 8/99, R5 = 1,52841 – разница 99 месяцев и 8 лет;
  • [0,12,2,1,2,2] = 19/235, R6 = 0,06135 – на столько дней 19 юлианских лет длиннее 235 лунных месяцев!

То есть, при первом остатке, меньшем суток, мы получаем метонов цикл, открытый, якобы, в 433 году до н.э., когда и длина юлианского года была неизвестной! При этом считается, что и Евклид жил на сто лет позже афинянина Метона.

Однако, наше значение для лунного месяца, возможно, чересчур точное для разбираемой эпохи, ведь величина в 29,53059 дней примерно равна 29 дней 12 часов 44 минуты 3 секунды. Легко убедиться, что та же «метонова» подходящая дробь, соответствующая первому остатку менее суток, получится при выборе длины месяца 29,53 или 29 дней 12 часов 40 минут, или 29 дней 12 часов 45 минут. Что из этого может следовать? Скорее всего, метонов цикл определён с помощью алгоритма Евклида. (Ведь не очень разумно принимать, как это делают традиционные историки, что метонов цикл обнаружен прямыми наблюдениями за 400 лет до изобретения Созигеном юлианского года. Тем более, что при более грубых значениях величин мы не получим метонова цикла, поскольку если допустить год длиной 365 суток, а месяц – 29,5 суток, то оптимальное соотношение между ними окажется 99/8: арифметическое расхождение, остаток, составит полсуток, а по наблюдениям за 8 лет – примерно 3,5 суток, что оптимальнее метоновой дроби 235/19 для такой длины года).

Эти соображения, видимо, весьма уместно добавить к рассуждениям Н.А. Морозова [13, стр. 154–155] и М.М. Постникова [14, стр. 257–260] о метоновом цикле.

7. ПОИСК ХРОНОЛОГИЧЕСКИХ СДВИГОВ АЛГОРИТМОМ ЕВКЛИДА

Алгоритм Евклида пригоден и для нахождения НОД'ов, НОК'ов наборов из более чем двух чисел. Процедура нахождения НОД(a1, a2, ..., ak) заключается в повторении такой процедуры: из набора чисел в качестве делителя выбирается ненулевое и не самое большое из них по абсолютному значению, затем все остальные числа заменяются остатками от деления на выбранный делитель. Процесс прекращается, когда осталось только одно отличное от нуля число в наборе – оно и является искомым НОД'ом.

Остановка алгоритма гарантирована только для наборов рациональных чисел. Для прочих же происходит постоянное уменьшение чисел из набора к нулю и искусственная остановка даёт нам «НОД» с некоторой погрешностью, зависящей от числа шагов. При этом сам алгоритм может развиваться в различных направлениях, подобно корневой системе дерева, что и отличает ситуацию более чем двух несоразмеримых чисел.

Но для решения нашей проблемы необходимо уметь находить Наименьшее Общее Кратное наборов чисел – синодических периодов оборота планет, а для более чем двух чисел формула, истинная для двух:

НОК(a, b) = a×b / НОД(a, b)

уже не имеет простого и разумного обобщения. Однако, воспользовавшись эквивалентностью равенств:

D = N×a <=> 1/a = N×(1/D),

мы получаем формулу для НОК'а, легко применимую в нашем случае:

НОК(a1, a2, ..., ak) = 1 / НОД(1/a1, 1/a2, ..., 1/ak)

Ещё удобнее в качестве величин, обратных к T_, выбирать не 1/T_, а 360×60×60/T_= 1296000/T_, означающее среднюю синодическую угловую скорость обращения планеты, измеренную в угловых секундах на один день, и тогда получим:

D = 1296000 / НОД(Vм, Vю, Vс, Vл), где

= 1661,68 ("/день) (Марс)
= 3249,08 ("/день) (Юпитер)
= 3427,75 ("/день) (Сатурн)
= 43886,70 ("/день) (Луна)

При таком округлении во втором знаке после запятой на интервале в 2 тысячи лет может накопиться ошибка порядка 10°. Полученный результат придётся корректировать исходя из этого допущения. Надо также понимать, что алгоритм Евклида весьма чувствителен к ошибкам округления. Продемонстрируем это на примере: