Różnica silnika -Difference engine

Mechanizm różnicowy londyńskiego Muzeum Nauki , pierwszy faktycznie zbudowany na podstawie projektu Babbage'a. Projekt ma taką samą dokładność we wszystkich kolumnach, ale przy obliczaniu wielomianów dokładność kolumn wyższego rzędu może być niższa.

Silnik różnicowy jest automatycznym kalkulatorem mechanicznym przeznaczonym do tabelaryzowania funkcji wielomianowych . Został zaprojektowany w latach 20. XIX wieku, a po raz pierwszy został stworzony przez Charlesa Babbage'a . Nazwa, silnik różnicowy, pochodzi od metody różnic dzielonych , sposobu interpolacji lub tabelarycznej funkcji przy użyciu małego zestawu współczynników wielomianu . Niektóre z najpopularniejszych funkcji matematycznych stosowanych w inżynierii, nauce i nawigacji były i są nadal obliczalne przy użyciu zdolności silnika różnicowego do obliczania funkcji logarytmicznych i trygonometrycznych , które mogą byćprzybliżone za pomocą wielomianów, więc aparat różnicowy może obliczyć wiele przydatnych tabel liczb.

Historia

Zbliżenie na mechanizm różnicowy w londyńskim muzeum nauki, ukazujący niektóre koła numeryczne i koła zębate sektorowe między kolumnami. Koła tłokowe po lewej stronie bardzo wyraźnie pokazują podwójne wysokie zęby. Koła tłokowe na środku po prawej stronie są skierowane do tylnej strony silnika, ale pojedyncze wysokie zęby są wyraźnie widoczne. Zwróć uwagę, jak koła są lustrzane, odliczając w górę od lewej do prawej lub odliczając w dół od lewej do prawej. Zwróć także uwagę na metalową zakładkę między „6” a „7”. Ta zakładka wyzwala dźwignię przenoszenia z tyłu, gdy „9” przechodzi do „0” z przodu podczas dodawania kroków (krok 1 i krok 3).

Pojęcie mechanicznego kalkulatora dla funkcji matematycznych wywodzi się z mechanizmu z Antykithiry z II wieku p.n.e., podczas gdy wczesne współczesne przykłady przypisuje się Pascalowi i Leibnizowi w XVII wieku. W 1784 r. JH Müller , inżynier armii heskiej , wymyślił i zbudował maszynę sumującą i opisał podstawowe zasady maszyny różnicowej w książce opublikowanej w 1786 r. (pierwsza pisemna wzmianka o maszynie różnicowej pochodzi z 1784 r.), ale nie był w stanie uzyskać finansowania na realizację pomysłu.

Silniki różnicowe Charlesa Babbage'a

Charles Babbage zaczął konstruować mały silnik różnicowy w ok. roku. 1819 i ukończył ją do 1822 (Maszyna Różnicowa 0). Ogłosił swój wynalazek 14 czerwca 1822 r. w artykule dla Królewskiego Towarzystwa Astronomicznego , zatytułowanym „Uwaga na temat zastosowania maszyn do obliczeń tablic astronomicznych i matematycznych”. Ta maszyna używała systemu liczb dziesiętnych i była napędzana przez kręcenie korbką. Rząd brytyjski był zainteresowany, ponieważ produkcja stołów była czasochłonna i kosztowna i liczył na to, że różnica w silniku sprawi, że zadanie będzie bardziej ekonomiczne.

W 1823 roku rząd brytyjski dał Babbage 1700 funtów na rozpoczęcie prac nad projektem. Chociaż projekt Babbage'a był wykonalny, ówczesne techniki obróbki metali nie były w stanie ekonomicznie wytwarzać części o wymaganej precyzji i ilości. Wdrożenie okazało się więc znacznie droższe i wątpliwe w powodzenie niż wstępne szacunki rządu. W 1832 Babbage i Joseph Clement stworzyli mały działający model (jedna siódma sekcji obliczeniowej silnika różnicowego nr 1, który miał działać na liczbach 20-cyfrowych i różnicach szóstego rzędu), który operował na liczbach 6-cyfrowych i różnice drugiego rzędu. Lady Byron opisała widzenie działającego prototypu w 1833 r.: „Oboje poszliśmy zobaczyć maszynę myślącą (a przynajmniej tak się wydaje) w zeszły poniedziałek. Podniosła kilka liczb do drugiej i trzeciej potęgi i wydobyła pierwiastek z równania kwadratowego”. Prace nad większym silnikiem wstrzymano w 1833 roku.

Do czasu, gdy rząd porzucił projekt w 1842 roku, Babbage otrzymał i wydał ponad 17 000 funtów na rozwój, który wciąż nie był wystarczający do osiągnięcia działającego silnika. Rząd cenił jedynie wydajność maszyny (stoły wyprodukowane ekonomicznie), a nie rozwój (przy nieprzewidywalnych kosztach) samej maszyny. Babbage nie rozpoznał lub nie chciał rozpoznać tej sytuacji. W międzyczasie uwaga Babbage'a przeniosła się na opracowanie silnika analitycznego , co jeszcze bardziej podkopało zaufanie rządu do ostatecznego sukcesu silnika różnicowego. Udoskonalając koncepcję jako silnika analitycznego, Babbage sprawił, że koncepcja silnika różnicowego stała się przestarzała, a projekt jej wdrożenia okazał się kompletną porażką w opinii rządu.

Niekompletny silnik różnicowy nr 1 został zaprezentowany publiczności na Międzynarodowej Wystawie w 1862 roku w South Kensington w Londynie.

Babbage zaprojektował swój znacznie bardziej ogólny silnik analityczny, ale później stworzył ulepszony projekt „Silnik różnicowy nr 2” (31-cyfrowe liczby i różnice siódmego rzędu), w latach 1846-1849. Babbage był w stanie wykorzystać pomysły opracowany dla silnika analitycznego, aby nowy silnik różnicowy szybciej obliczał przy użyciu mniejszej liczby części.

Silnik obliczeniowy Scheutziana

Według trzeciego silnika różnicowego Georga Scheutza

Zainspirowany silnikiem różnicowym Babbage'a w 1834 roku, Per Georg Scheutz zbudował kilka modeli eksperymentalnych. W 1837 jego syn Edward zaproponował skonstruowanie modelu roboczego z metalu, aw 1840 ukończył część obliczeniową, zdolną do obliczania szeregów z pięciocyfrowymi liczbami i różnicami pierwszego rzędu, którą później rozszerzono do trzeciego rzędu (1842). W 1843 roku, po dodaniu części do druku, model został ukończony.

W 1851 roku, finansowana przez rząd, rozpoczęto budowę większej i ulepszonej (15-cyfrowe liczby i różnice czwartego rzędu) maszyny, a ukończono ją w 1853 roku. Maszyna została pokazana na Wystawie Światowej w Paryżu w 1855 roku, a następnie sprzedana w 1856 roku. do Obserwatorium Dudleya w Albany w stanie Nowy Jork . Dostarczony w 1857 roku był pierwszym sprzedanym kalkulatorem drukarskim. W 1857 roku rząd brytyjski zamówił następną maszynę różnicową Scheutza , którą zbudowano w 1859 roku. Miała ona taką samą podstawową konstrukcję jak poprzednia, ważyła około 10  cwt (1100  funtów ; 510  kg ).

Inni

Martin Wiberg ulepszył konstrukcję Scheutza (ok. 1859, jego maszyna ma taką samą wydajność jak Scheutz - 15-cyfrowy i czwartorzędowy), ale używał swojego urządzenia tylko do produkcji i publikacji drukowanych tabel (tabele odsetkowe w 1860 i logarytmiczne w 1875) .

Alfred Deacon z Londynu w ok. 1930 r. 1862 wyprodukował mały silnik różnicowy (20-cyfrowe liczby i różnice trzeciego rzędu).

Amerykanin George B. Grant rozpoczął pracę nad swoją maszyną liczącą w 1869 roku, nieświadomy prac Babbage i Scheutz (Schentz). Rok później (1870) dowiedział się o różnych silnikach i sam zaprojektował jeden, opisując swoją konstrukcję w 1871 roku. W 1874 roku Boston Czwartek Klub podniósł prenumeratę na budowę modelu na dużą skalę, który został zbudowany w 1876 roku. mógł być rozszerzony w celu zwiększenia precyzji i ważył około 2000 funtów (910 kg).

Christel Hamann zbudowała jedną maszynę (16-cyfrowe liczby i różnice drugiego rzędu) w 1909 roku dla „ Tabli Bauschingera i Petersa” („Tablice logarytmiczno-trygonometryczne z ośmioma miejscami po przecinku”), która została po raz pierwszy opublikowana w Lipsku w 1910 roku. ważył około 40 kilogramów (88 funtów).

Burroughs Corporation około 1912 roku zbudowała maszynę dla Biura Almanachu Morskiego, która była używana jako silnik różnicowy drugiego rzędu. Został później zastąpiony w 1929 roku przez Burroughs Class 11 (13-cyfrowe liczby i różnice drugiego rzędu lub 11-cyfrowe liczby i [przynajmniej do] różnice piątego rzędu).

Alexander John Thompson około 1927 zbudował maszynę całkującą i różnicującą (liczby 13-cyfrowe i różnice piątego rzędu) dla swojej tablicy logarytmów „Logarithmetica britannica”. Maszyna ta składała się z czterech zmodyfikowanych kalkulatorów Triumphator.

Leslie Comrie w 1928 r. opisał, jak używać maszyny liczącej Brunsviga -Dupla jako silnika różnicowego drugiego rzędu (15-cyfrowe liczby). Zauważył również w 1931, że National Accounting Machine Class 3000 może być używany jako silnik różnicowy szóstego rzędu.

Budowa dwóch pracujących silników różnicowych nr 2

W latach 80. Allan G. Bromley , profesor nadzwyczajny na Uniwersytecie Sydney w Australii , studiował oryginalne rysunki Babbage'a dla maszyn różnicowych i analitycznych w bibliotece Science Museum w Londynie. Ta praca doprowadziła Muzeum Nauki do skonstruowania działającej sekcji obliczeniowej silnika różnicowego nr 2 od 1985 do 1991 roku, pod kierownictwem Dorona Swade'a , ówczesnego kuratora informatyki. Miało to na celu uczczenie 200. rocznicy urodzin Babbage'a w 1991 roku. W 2002 roku ukończono również drukarkę , którą Babbage pierwotnie zaprojektował dla mechanizmu różnicowego. Konwersja oryginalnych rysunków projektowych na rysunki nadające się do wykorzystania przez inżynierów ujawniła pewne drobne błędy w projekcie Babbage'a (prawdopodobnie wprowadzone jako zabezpieczenie na wypadek kradzieży planów), które musiały zostać poprawione. Po zakończeniu zarówno silnik, jak i jego drukarka działały bezbłędnie i nadal działają. Silnik różnicowy i drukarka zostały skonstruowane z tolerancjami osiągalnymi dzięki XIX-wiecznej technologii, rozstrzygając długotrwałą debatę, czy projekt Babbage'a zadziała. (Jednym z wcześniej podawanych powodów nieukończenia silników Babbage'a było to, że metody inżynieryjne nie były wystarczająco rozwinięte pod koniec epoki gruzińskiej).

Podstawowym celem drukarni jest wytwarzanie stereotypowych płyt do użytku w prasach drukarskich, co robi poprzez wciskanie czcionki w miękki gips w celu utworzenia fałdy . Babbage zamierzał, aby wyniki Silnika były przenoszone bezpośrednio do druku masowego, uznając, że wiele błędów w poprzednich tabelach nie było wynikiem ludzkich błędów w obliczeniach, ale błędów w procesie ręcznego składu . Wydajność papieru drukarki jest głównie sposobem sprawdzania wydajności silnika.

Oprócz sfinansowania budowy mechanizmu wyjściowego dla silnika różnicowego Science Museum, Nathan Myhrvold zlecił budowę drugiego kompletnego silnika różnicowego nr 2, który był wystawiany w Computer History Museum w Mountain View w Kalifornii od 10 maja 2008 r. do 31 stycznia 2016. Od tego czasu został przeniesiony do Intellectual Ventures w Seattle , gdzie jest wystawiany na zewnątrz głównego lobby.

Operacja

Maszyna Mountain View w akcji

Aparat różnicowy składa się z kilku kolumn, ponumerowanych od 1 do N . Maszyna może przechowywać jedną liczbę dziesiętną w każdej kolumnie. Maszyna może tylko dodać wartość z kolumny n  +1 do kolumny n , aby uzyskać nową wartość n . Kolumna N może przechowywać tylko stałą , kolumna 1 wyświetla (i ewentualnie drukuje ) wartość obliczenia w bieżącej iteracji .

Silnik programuje się poprzez ustawienie początkowych wartości w kolumnach. Kolumna 1 jest ustawiona na wartość wielomianu na początku obliczeń. Kolumna 2 jest ustawiona na wartość pochodzącą z pierwszej i wyższych pochodnych wielomianu o tej samej wartości X . Każda z kolumn od 3 do N jest ustawiona na wartość wyprowadzoną z pierwszej i wyższych pochodnych wielomianu.

wyczucie czasu

W projekcie Babbage jedna iteracja (tj. jeden pełny zestaw operacji dodawania i przenoszenia ) ma miejsce na każdy obrót wału głównego. Kolumny nieparzyste i parzyste naprzemiennie wykonują dodawanie w jednym cyklu. Sekwencja operacji dla kolumny jest więc następująca:

  1. Odliczanie, odbieranie wartości z kolumny (krok dodawania)
  2. Wykonaj propagację przeniesienia na zliczonej wartości
  3. Odliczaj do zera, dodając do kolumny
  4. Zresetuj odliczoną wartość do pierwotnej wartości

Kroki 1,2,3,4 występują dla każdej kolumny nieparzystej, a kroki 3,4,1,2 występują dla każdej kolumny parzystej.

Podczas gdy oryginalny projekt Babbage'a umieścił korbę bezpośrednio na głównym wale, później zdano sobie sprawę, że siła potrzebna do wykręcenia maszyny byłaby zbyt duża, aby człowiek mógł wygodnie obsługiwać. Dlatego te dwa modele, które zostały zbudowane, zawierają przekładnię redukcyjną 4:1 na korbie, a do wykonania jednego pełnego cyklu wymagane są cztery obroty korby.

Kroki

Każda iteracja tworzy nowy wynik i jest wykonywana w czterech krokach odpowiadających czterem pełnym obrotom uchwytu pokazanego po prawej stronie na poniższym obrazku. Cztery kroki to:

  • Krok 1. Wszystkie kolumny o numerach parzystych (2,4,6,8) są dodawane jednocześnie do wszystkich kolumn o numerach nieparzystych (1,3,5,7). Wewnętrzne ramię zamiatające obraca każdą parzystą kolumnę, aby każda liczba na każdym kole odliczała do zera. Gdy koło obraca się do zera, przekazuje swoją wartość na koło zębate sektorowe znajdujące się pomiędzy nieparzystymi/parzystymi kolumnami. Te wartości są przenoszone do kolumny nieparzystej, powodując ich zliczanie. Każda nieparzysta wartość w kolumnie, która przechodzi od „9” do „0”, aktywuje dźwignię przenoszenia .
  • Krok 2. Propagacja przenoszenia odbywa się za pomocą zestawu spiralnych ramion z tyłu, które pochylają dźwignie przenoszenia w sposób spiralny, dzięki czemu przenoszenie na dowolnym poziomie może zwiększyć koło powyżej o jeden. To może stworzyć noszenie, dlatego ramiona poruszają się spiralnie. W tym samym czasie koła tłokowe wracają do swojego pierwotnego położenia, co powoduje, że przywracają one równe koła kolumnowe do ich pierwotnych wartości. Koła zębate tłokowe są z jednej strony podwójnie wysokie, dzięki czemu można je podnieść, aby odłączyć od nieparzystych kół kolumnowych, podczas gdy nadal stykają się z równymi kołami kolumnowymi.
  • Krok 3. To jest jak w Kroku 1, z tą różnicą, że kolumny nieparzyste (3,5,7) są dodawane do kolumn parzystych (2,4,6), a kolumna pierwsza ma swoje wartości przekazywane przez koło tłokowe do mechanizmu drukowania na lewy koniec silnika. Każda parzysta wartość kolumny, która przechodzi od „9” do „0”, aktywuje dźwignię przenoszenia. Wartość z kolumny 1, wynik wielomianu, jest wysyłana do dołączonego mechanizmu drukarki.
  • Krok 4. To jest jak krok 2, ale za wykonanie prowadzi kolumny parzyste i przywracanie kolumn nieparzystych do ich pierwotnych wartości.

Odejmowanie

Silnik reprezentuje liczby ujemne jako uzupełnienia do dziesięciu . Odejmowanie jest równoznaczne z dodaniem liczby ujemnej. Działa to w ten sam sposób, w jaki współczesne komputery wykonują odejmowanie, znane jako uzupełnienie do dwóch .

Metoda różnic

W pełni działający silnik różnicowy w Computer History Museum w Mountain View w Kalifornii

Zasadą silnika różnicowego jest metoda różnic dzielonych Newtona . Jeżeli początkowa wartość wielomianu (i jego różnic skończonych ) jest obliczona jakimś sposobem dla pewnej wartości X , aparat różnicowy może obliczyć dowolną liczbę pobliskich wartości, używając metody ogólnie znanej jako metoda różnic skończonych . Rozważmy na przykład wielomian kwadratowy

w celu zestawiania wartości p (0), p (1), p (2), p (3), p (4) i tak dalej. Poniższa tabela jest skonstruowana w następujący sposób: druga kolumna zawiera wartości wielomianu, trzecia kolumna zawiera różnice dwóch lewych sąsiadów w drugiej kolumnie, a czwarta kolumna zawiera różnice dwóch sąsiadów w trzeciej kolumnie:

x p ( x ) = 2 x 2 − 3 x + 2 diff1( x ) = (  p ( x  + 1) − p( x )) diff2( x ) = ( diff1( x  + 1) − diff1( x ))
0 2 -1 4
1 1 3 4
2 4 7 4
3 11 11
4 22

Liczby w trzeciej kolumnie wartości są stałe. W rzeczywistości, zaczynając od dowolnego wielomianu stopnia n , numer kolumny n  + 1 będzie zawsze stały. To jest kluczowy fakt, który stoi za sukcesem metody.

Ta tabela została zbudowana od lewej do prawej, ale możliwe jest dalsze budowanie jej od prawej do lewej w dół po przekątnej, aby obliczyć więcej wartości. Aby obliczyć p (5), użyj wartości z najniższej przekątnej. Zacznij od wartości stałej czwartej kolumny równej 4 i skopiuj ją w dół kolumny. Następnie kontynuuj trzecią kolumnę, dodając 4 do 11, aby otrzymać 15. Następnie kontynuuj drugą kolumnę, biorąc jej poprzednią wartość, 22 i dodając 15 z trzeciej kolumny. Zatem p (5) to 22 + 15 = 37. Aby obliczyć p (6), powtarzamy ten sam algorytm na wartościach p (5): weź 4 z czwartej kolumny, dodaj to do wartości 15 w trzeciej kolumnie, aby pobierz 19, a następnie dodaj to do wartości 37 w drugiej kolumnie, aby uzyskać 56, czyli p (6). Proces ten może być kontynuowany w nieskończoność . Wartości wielomianu są tworzone bez konieczności mnożenia. Silnik różnicowy musi tylko być w stanie dodać. Od jednej pętli do drugiej musi przechowywać 2 liczby — w tym przykładzie (ostatnie elementy w pierwszej i drugiej kolumnie). Aby zestawić wielomiany stopnia n , potrzebna jest pamięć wystarczająca do przechowywania n liczb.

Silnik różnicowy Babbage'a nr 2, ostatecznie zbudowany w 1991 roku, może pomieścić 8 liczb po 31 cyfr dziesiętnych każda, dzięki czemu może zestawiać wielomiany siódmego stopnia z taką dokładnością. Najlepsze maszyny firmy Scheutz mogą przechowywać 4 liczby po 15 cyfr każda.

Wartości początkowe

Początkowe wartości kolumn można obliczyć, najpierw ręcznie wyliczając N kolejnych wartości funkcji i wykonując backtracking , czyli obliczając wymagane różnice.

Col pobiera wartość funkcji na początku obliczeń . Col to różnica między a ...

Jeżeli obliczana funkcja jest funkcją wielomianową , wyrażoną jako

wartości początkowe można obliczyć bezpośrednio ze stałych współczynników a 0 , a 1 , a 2 , ..., an bez obliczania jakichkolwiek punktów danych . Początkowe wartości to zatem:

  • Kol = 0 _
  • Kol = a 1 + a 2 + a 3 + a 4 + ... + a n
  • Kol = 2 za 2 + 6 za 3 + 14 za 4 + 30 za 5 + ...
  • Kol = 6 za 3 + 36 za 4 + 150 za 5 + ...
  • Kol = 24 za 4 + 240 za 5 + ...
  • Kol = 120 a 5 + ...

Korzystanie z instrumentów pochodnych

Wiele powszechnie używanych funkcji to funkcje analityczne , które można wyrazić jako szereg potęgowy , na przykład jako szereg Taylora . Wartości początkowe można obliczyć z dowolnym stopniem dokładności; jeśli zrobisz to poprawnie, silnik poda dokładne wyniki dla pierwszych N kroków. Następnie silnik poda tylko przybliżoną funkcję.

Szereg Taylora wyraża funkcję jako sumę otrzymaną z jej pochodnych w jednym punkcie. Dla wielu funkcji wyższe pochodne są proste do uzyskania; na przykład funkcja sinus przy 0 ma wartości 0 lub dla wszystkich pochodnych. Ustawiając 0 jako początek obliczeń otrzymujemy uproszczony szereg Maclaurina

Można zastosować tę samą metodę obliczania wartości początkowych ze współczynników, jak dla funkcji wielomianowych. Współczynniki stałej wielomianu będą teraz miały wartość

Dopasowanie krzywej

Problem z metodami opisanymi powyżej polega na tym, że błędy będą się kumulować, a szeregi będą miały tendencję do odbiegania od prawdziwej funkcji. Rozwiązaniem gwarantującym stały maksymalny błąd jest zastosowanie dopasowania krzywej . Minimalna wartość N jest obliczana w równych odstępach wzdłuż zakresu żądanych obliczeń. Stosując technikę dopasowania krzywej, taką jak redukcja Gaussa , znaleziono interpolację wielomianu N -1 stopnia funkcji. Przy zoptymalizowanym wielomianu wartości początkowe można obliczyć jak powyżej.

Zobacz też

Bibliografia

Dalsze czytanie

Zewnętrzne linki