РАЗНОСТНАЯ МАШИНА

Казалось бы, судьба уготовила Чарлзу Бэббиджу жизнь легкую и счастливую: он достиг определенных успехов на научном поприще, был счастлив в семейной жизни, хорошо обеспечен материально. Многочисленным друзьям нравится его остроумие, общительность, широ­кие познания, умение поддержать разговор на самые разнообразные темы. Таким мы видим Бэббиджа в зна­менательном для него 1820 году, когда 28-летний ученый начал активно работать над осуществлением самого вы­дающегося своего изобретения-— вычислительной маши­ны. Идея создания такой машины стала для Бэббиджа манией, которая преследовала его всю оставшуюся часть жизни, предметом его гордости и источником глубочай­ших разочарований.

В автобиографической книге «Страницы жизни фи­лософа» (1864). Бэббидж пишет': «...однажды вечером я сидел в одной из комнат Аналитического общества в Кембридже, подремывая над открытой таблицей лога­рифмов, которая лежала передо мной. Один из членов общества вошел в комнату и, видя, что я почти сплю, воскликнул: «О чем ты мечтаешь, Бэббидж?»—'на что я ответил: «Я думаю,- что все эти таблицы могли бы быть вычислены с помощью машины... Это событие, должно быть, произошло в 1812-м или 1813 году...»

Итак, с 1812 года Чарлз Бэббидж начинает размыш­лять о возможных способах машинного вычисления таб­лиц. Почему именно к таблицам как объекту вычисле­ний обратился Бэббидж?

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


HQCfa землемеров, архитекторов, каменщиков, корабле­строителей, банковских клерков, инженеров и т. д.

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

Первое издание календаря готовилось с тщательно­стью, которую не знала еще вычислительная практика тех лет. И тем не менее в нем содержалось множество ошибок — результат недостаточно точных исходных дан­ных, просчетов в вычислениях (а они, естественно, про­изводились вручную) прописок при переписывании. К че­му приводили эти ошибки? Интересный пример мы на­ходим в истории Астрономического общества.

...В начале прошлого столетия после длительной анг­ло-испанской войны наступил, наконец, -долгожданный мир. Однако недавние враги относились друг к другу еще подозрительно, ожидая всяческих подвохов и вспы­шек вражды. В это время английский военный корабль под командованием некого капитана Смита баражировал в Средиземном море. В гости к капитану с визитом веж­ливости приехал его испанский коллега и в память о своем посещении преподнес Смиту серебряный поднос. Смит не остался в долгу и одарил испанца навигацион­ными таблицами, составленными великим физиком Тома­сом Юнгом. Прекрасно изданные и заключенные в ко­жаный переплет таблицы были, однако, совершенно не­верными, поскольку не учитывали високосных годов. Испанский капитан, с благодарностью принявший этого «троянского коня», не знал его истинных «достоинств». Он отплыл... и больше о нем никогда никто не слыхал;

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

Описывая этот эпизод, английский историк полушут­ливо-полусерьезно классифицирует его как одну из наи­более хитроумных операций королевского флота...


«Морской календарь» выходил ежегодно, и каждое издание требовало огромного труда множества вычис­лителей.

Сотни и даже тысячи ошибок содержали самые, по­жалуй, распространенные таблицы — логарифмические. Издатели таблиц вынуждены были содержать специаль­ный штат корректоров, что, впрочем, все равно не спа­сало от ошибок.

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

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

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

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

Пусть такая таблица уже вычислена — см. колонки (1) — (2). Вычтем из каждого последующего значения предыдущее. Мы получим последовательные значения

• Впервые идея разностной машины была высказана в 1786 году Иоганном Гельфрайхом Мюллером. Но он даже не приступал к ее постройке, и, видимо, Бэббидж ничего не знал о предложении Мюл

лера.


первых разностей Д, колонка (3). Проделав ту же опе­рацию с первыми разностями, получим вторые разности А2, колонка (4), третьи Л3, колонка (5) и, наконец, чет­вертые Д4, колонка (6).

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

(1)   '2)   {3)   l4)   ,5)   (6)  
~ 1            
          .24  
           
           
          •••  
               
    . 1695              
    ...              

 

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

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

156 + 24 = 180, 590 + 180 = 770, 1695+770=2465, 4096+2465 ==6561.

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

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


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

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

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

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

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


Ввиду необходимости последовательного просмотра всех разрядов время на перенос может оказаться значитель­но большим, чем на первую фазу — сложение. В даль­нейшем Бэббидж разработал другую схему переноса, о которой будет идти речь ниже.

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

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

ХРОНИКА «ГЛАВНОГО ДЕЛА ЖИЗНИ» БЭББИДЖА