Чарльз Бэббидж и его изобретение

 

В 1812 года Чарльз Бэббидж начинает размышлять о возможных способах машинного вычисления таблиц.

Бэббидж (Babbage) Чарльз (26 декабря 1791, Лондон — 18 октября, 1871, там же), английский математик и изобретатель, иностранный член-корреспондент Петербургской АН (1832).

Он хорошо знал, что всевозможные математические таблицы широко используются в практической деятельности землемеров, архитекторов, каменщиков, кораблестроителей, банковских клерков, инженеров и т. д.

Широкое распространение в Европе конца XVIII — начала XIX века получили арифметические, тригонометрические и логарифмические таблицы; банки и ссудные конторы применяли таблицы процентов, а страховые компании — таблицы смертности, но совершенно исключительное значение для Англии — «великой морской державы» — имели астрономические и навигационные таблицы.

Интересный способ организации ручных вычислительных работ, повышающий надежность вычислений, был предложен в конце XVIII века во Франции. Инициатором этой работы был математик Гаепар Клэр Франсуа Риш маркиз де Прони (1755—1839).

Прони организовал вычисления как бы по «конвейерной системе». Он разбил вычислителей на 3 группы. В первой группе было 5 или 6 математиков (среди них М. Лежандр), которые выбирали наиболее пригодные методы и формулы и составляли схемы расчетов. Во вторую группу вошли 7 или 8 вычислителей, которые по выбранным формулам определяли численные значения функций с шагом 5 или 6 интервалов. В третьей группе было около 90 вычислителей низкой квалификации. Они должны были только уплотнять таблицу, то есть заполнять интервалы между вычисленными на предыдущем этапе значениями. Две группы вычислителей работали параллельно, сверяя полученные результаты.

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

Предложенная Бэббиджем машина предназначалась для табулирования многочленов по способу разностей, хорошо известному в численном анализе. Рассмотрим его на простом примере. Допустим, что требуется вычислить таблицу четвертых степеней членов натурального ряда, то есть табулировать функцию- N = n4 (n = 1,2, ...).

Вычтем из каждого последующего значения предыдущее. Мы получим последовательные значения первых разностей Δ, колонка (3). Проделав ту же операцию с первыми разностями, получим вторые разности Δ2, колонка (4), третьи Δ3, колонка (5) и, наконец, четвертые Δ4, колонка (6).

Как видно из Таблица 11.1, четвертые разности оказываются постоянными: колонка (6) состоит из одного и того же числа 24. И это не случайность, а следствие важной теоремы: если функция есть многочлен n-й степени, то в таблице с постоянным шагом ее п-е разности постоянны.

 

Таблица 11.1 - Разности

  (1)     (2)     (3)     (4)     (5)     (6)  

 

Теперь легко догадаться, что получить требуемую таблицу можно, исходя из первой строки, с помощью сложения.

Например, чтобы продлить составленную таблицу еще на одну строку, нужно выполнить сложения:

156+24=180,

590+180=770,

1695+770=2465,

4096+2465=6561

В разностной машинеБэббиджа применялись те же десятичные счетные колеса, что и у Паскаля. Для изображения числа использовались регистры, состоящие из набора таких колес (Рисунок 11.10).

Рисунок 11.10 - Разностная машина

 

Каждой колонке таблицы, кроме (1), содержащей значение аргумента, соответствовал свой регистр; всего в машине их было 7, поскольку предполагалось вычислять функции с постоянными шестыми разностями. Регистр состоял из 18 цифровых колес по числу разрядов изображаемого числа и нескольких дополнительных, используемых как счетчик числа оборотов и для других вспомогательных целей.

Если все регистры машины хранят значения, соответствующие последней строке таблицы, то для получения очередного значения функции необходимо последовательно выполнить число сложений, равное числу имеющихся разностей. Бэббидж предложил записывать разности нечетного порядка из предыдущей строки. Тогда половину сложений можно совместить по времени, и весь процесс получения нового значения функции можно уложить в два такта. На первом такте образуются новые значения разностей нечетного порядка, то есть к содержимому второго, четвертого и последующих регистров (Δ1, Δ3 и т. д.) прибавляется соответственно содержимое третьего, пятого и последующих (Δ2, Δ4 и т.д.). В течение второго такта получают новое значение функции и одновременно с ним следующие значения разностей четных порядков.

Таким образом, независимо от показателя степени многочлена и количества рассматриваемых разностей для получения очередного значения функции оказывается достаточным двойного времени сложения.

Само сложение в разностной машине Бэббиджа также происходит в два этапа. Регистры, содержащие слагаемые, сдвигаются так, чтобы произошло зацепление зубцов счетных колес. Затем колеса одного из регистров вращаются в обратном направлении, пока каждое из них не дойдет до нуля. Этот этап называют фазой сложения. По окончании этого этапа в каждом разряде второго регистра получится сумма цифр данного разряда, но пока еще без учета возможных переносов из разряда в разряд.

Перенос происходит на следующем этапе, который называется фазой переноса и выполняется так. При переходе каждого колеса в фазе сложения от 9 к 0 освобождается специальная защелка. В фазе переноса все защелки возвращаются на место специальными рычагами, которые одновременно поворачивают колесо следующего, старшего, разряда на один шаг.

Каждый такой поворот может, в свою очередь, вызвать переход от 9 к 0 и, значит, освобождение защелки, которую снова надо возвратить на место, сделав перенос в следующий разряд. Таким образом, возвращение защелок на место должно происходить последовательно, начиная с младшего разряда регистра. Такая система называется сложением с последовательным переносом.

Строго постоянными старшими разностями для своей области определения обладают только многочлены. При табулировании логарифмической, тригонометрических и других функций они приближаются многочленами, различными на разных участках. Переходя от одного участка к другому, необходимо вручную изменить значения разностей. Бэббидж предусмотрел такую возможность. Более того, чтобы вычислитель, работающий с машиной, не забыл о необходимости сменить значения разностей, машина была снабжена звонком, который звонил после выполнения определенного числа шагов вычислений.

Разностная машина Бэббиджа была снабжена печатающим механизмом, связанным с вычислительной частью машины кулачками, аналогичными кулачкам механизма боя часов. Результат вычислений передавался группе стальных пуансонов, запечатлевавших его на медной пластинке, причем процессы вычисления и печатания совмещались, то есть во время вычислений печатался предыдущий результат. Медная пластинка с выгравированными на ней результатами в дальнейшем использовалась для получения нужного числа оттисков.