Фундаментальная работа, потребовавшая долгого и напряженного труда большого коллектива, — «Кадастр таблиц», как ее назвал Прони, — никогда не была опубликована. Причин было несколько. Одна из них заключалась в том, что деление окружности на 400 частей, а не на 360° имело существенный недостаток, так как 400 имеет меньше делителей чем 360.
Кроме того, с переходом к метрической системе потребовалось бы наряду с перерасчетом громадного числа таблиц (синусов, косинусов и др.) перепечатать тысячи томов математической литературы. В конечном счете дело ограничилось созданием двух экземпляров таблиц, каждый из семнадцати больших рукописных томов. В дальнейшем отдельные таблицы часто использовались в качестве контрольных. Ими пользовался впоследствии и Бэбидж, который для этой цели ездил в Парижскую обсерваторию, где хранились таблицы.
После окончания работ в Париже по составлению таблиц английское правительство обратилось к французскому с предложением напечатать эти таблицы обеими странами с равным распределением затрат. Хотя это предложение и не завершилось изданием таблиц, но в связи с переговорами по этому поводу в Париже была выпущена небольшая брошюра с описанием процесса вычисления таблиц.
После ознакомления с этой брошюрой Бэбидж решил применить метод Прони при создании своей машины. Точнее говоря, машина должна была заменить третью группу вычислителей, на которую в основном падала вся счетная работа.
В основу работы машины Бэбидж решил положить известное свойство многочленов, состоящее в том, что их конечные разности соответствующих порядков (зависящие от степени многочлена) равны нулю. Машину, работающую на этом принципе, он назвал разностной [1 Впервые идея разностной машины была высказана в 1786 г. немецким военным инженером из Гессена И. Мюллером. Но это было чисто теоретическое предложение, которое никто не пытался осуществить.].
Бэбидж отмечал, что на вопрос о принципе работы машины, он мог бы ответить четырьмя словами: здесь используется метод разностей. При этом он добавлял, что нa этот вопрос можно было бы ответить и шестью знаками: Δn Ux = 0, но такой ответ был бы непонятен спрашивающему, — саркастически замечал он [2 Δn Ux = 0 означает, что для многочлена n—1 степени Ux = а + bx + cx2 + ... + kxn-1 n-е разности равны 0.] [85, с. 51].
Для иллюстрации метода разностей приведем следующий простой пример: табулирование функции у=х3 + х + 1. В таблице 1 наряду со значениями функции у приведены значения конечных разностей: Δ1 (первые разности, или разности первого порядка), Δ2 (вторые разности) и Δ3 (третьи разности). Как видно из таблицы, первые разности получены вычитанием из каждого следующего значения функции ее предшествующего значения. С помощью аналогичной операции над первыми разностями получены вторые разности и т. д. При этом третьи разности данной функции (представляющей собой многочлен третьей степени) имеют одно и то же значение[3 Если функция представляет собой многочлен степени n, то при табулировании с постоянным шагом n-е разности постоянны.]. Далее, легко заметить, что суммируя по диагонали таблицы 1 конечные разности и соответствующее значение функции можно получить следующее значение данной функции. Например, 6+24+62+131=223. Именно это обстоятельство (возможность получения новых значений функции путем суммирования вычисленных ранее данных) Бэбидж решил использовать для механизации процессов составления таблиц с помощью специального устройства (разностной машины).
X | Y | Конечные разности | ||
Δ1 | Δ2 | Δ3 | ||
0 | 1 | 2 | 6 | 6 |
1 | 3 | 8 | 12 | 6 |
2 | 11 | 20 | 18 | 6 |
3 | 31 | 38 | 24 | 6 |
4 | 69 | 62 | 30 | |
5 | 131 | 92 | ||
6 | 223 |
В качестве основного элемента разностной машины Бэбидж выбрал зубчатое счетное колесо, применявшееся в цифровых вычислительных устройствах с XVII в. Каждое колесо предназначено для запоминания одного разряда десятичного числа. Поскольку Бэбидж проектировал машину, оперирующую с 18-разрядными числами, регистр (устройство для хранения одного числа) состоял из 18 счетных колес. Количество регистров на единицу больше степени полинома, представляющего вычисляемую функцию (один регистр предназначен для хранения значения функции, другие — для запоминания конечных разностей). Машина, создаваемая Бэбиджем, предназначалась для расчета полиномов шестой степени и соответственно должна была иметь семь регистров.
Для выполнения операции сложения наряду со счетными колесами регистров в машине должны были использоваться зубчатые колеса трех различных конструкций (по три колеса на каждое колесо регистра) и так называемые установочные пальцы на специальных осях [1 Подробное описание конструкции деталей разностной машины на русском языке дано в статье [96].]. Конструктивно вычислительный блок разностей машины представляет собой три ряда вертикально расположенных осей с зубчатыми колесами и установочными пальцами. Первый ряд составляют оси со счетными колесами регистров, второй ряд — оси с зубчатыми колесами для суммирования и третий ряд — оси с установочными пальцами для подготовки к работе колес второго ряда. Диаметр счетного колеса регистра 12,7 см. Вычислительный блок машины должен был иметь 3 м в длину и 1,5 м в ширину. Наряду с вычислительным блоком в состав машины должно было входить печатающее устройство.
На рис. 1 дан внешний вид экспериментальной модели разностной машины. Она содержит три регистра (т. е. предназначена для расчета полиномов второй степени) и может оперировать с 5-разрядными десятичными числами (в каждом регистре — пять счетных колес).
При проектировании разностной машины Бэбидж предложил и частично реализовал ряд интересных технических идей. Так, он разделил выполнение операций переноса десятков при сложении на два такта: подготовительный (выполняется во время операции сложения) и собственно перенос. Это новшество, впоследствии широко применявшееся в механических вычислительных устройствах, позволило существенно снизить нагрузки на рабочие элементы машины. Проектируя связь между вычислительным блоком и печатающим устройством, Бэбидж предусмотрел возможность совмещения во времени процессов вычислений и печатания результатов.
Рис. 1. Разностная машина (1822)
Основное назначение разностной машины Бэбидж видел в составлении таблиц. Машина позволяла также проверять таблицы, составленные ранее. Для этого операции должны были производиться в обратном порядке, т. е. от полинома к конечным разностям. К примеру, если в табл. 2 при х=4 ошибочно рассчитан y (получилось 70 вместо 69), то вместо постоянных конечных разностей Δ3=6 получится массив не равных друг другу разностей, и ошибка может быть легко замечена.
Операция проверки таблиц могла быть выполнена и другим путем. Бэбидж писал: «Если соответствующие числа размещены на выходе машины, и она завершила расчет одной страницы таблицы любого типа, то следует провести сравнение последнего табличного числа страницы с заранее рассчитанными. Если различие существует, то наиболее эффективное решение заключается в пересчете целой страницы, т. е. потере всего лишь нескольких часов работы» [83, с. 125].
В общем случае область применения разностной машины Бэбиджа сводилась к вычислению значений функций вида
y = a + bx + cx2+ ... + mxn-1.
Если требовалось рассчитать сумму сходящегося бесконечного ряда, то брали только первые п членов. При достаточно большом п функция, выраженная рядом, могла воспроизводиться достаточно точно и степень этой точности была известна.
X | Y | Конечные разности | ||
Δ1 | Δ2 | Δ3 | ||
0 | 1 | 2 | 6 | 6 |
1 | 3 | 8 | 12 | 7 |
2 | И | 20 | 19 | 3 |
3 | 31 | 39 | 22 | 9 |
4 | 70 | 61 | 31 | |
5 | 131 | 92 | ||
6 | 223 |
X | Y | Δ1 | Δ2 |
0 | 2 | 0 | 2 |
1 | 2 | 2 | 4 |
2 | 4 | 6 | б |
3 | 10 | 6 | 6 |
4 | 16 | 12 | 8 |
5 | 28 | 20 | 8 |
6 | 48 | 28 | |
7 | 76 |
Принцип, положенный в основу разностной машины, мог быть использован для расчета, например кубов чисел, логарифмических и тригонометрических таблиц и т. п. При этом во многих случаях приходилось брать большое число разностей, прежде чем достигалось постоянное значение, а это, в свою очередь, означало, что на машине нужно было произвести довольно много действий, чтобы получить табличное значение функции.