Motor de diferença
Um motor de diferenças é uma calculadora mecânica automática projetada para tabular funções polinomiais. Foi projetado na década de 1820 e foi criado pela primeira vez por Charles Babbage. O nome, o mecanismo de diferença, é derivado do método de diferenças divididas, uma forma de interpolar ou tabular funções usando um pequeno conjunto de coeficientes polinomiais. Algumas das funções matemáticas mais comuns usadas em engenharia, ciência e navegação são construídas a partir de funções logarítmicas e trigonométricas, que podem ser aproximadas por polinômios, de modo que um mecanismo de diferença pode calcular muitas tabelas úteis de números.
História
A noção de uma calculadora mecânica para funções matemáticas pode ser rastreada até o mecanismo de Anticítera do século II aC, enquanto os primeiros exemplos modernos são atribuídos a Pascal e Leibniz no século XVII. Em 1784, J. H. Müller, um engenheiro do exército hessiano, projetou e construiu uma máquina de somar e descreveu os princípios básicos de uma máquina de diferença em um livro publicado em 1786 (a primeira referência escrita a uma máquina de diferença é datada de 1784), mas ele não conseguiu obter financiamento para levar a ideia adiante.
Os mecanismos de diferença de Charles Babbage
Charles Babbage começou a construir uma pequena máquina de diferença em c. 1819 e o completou em 1822 (Difference Engine 0). Ele anunciou sua invenção em 14 de junho de 1822, em um artigo para a Royal Astronomical Society, intitulado "Nota sobre a aplicação de máquinas para o cálculo de tabelas astronômicas e matemáticas". Esta máquina usava o sistema de numeração decimal e era acionada girando uma manivela. O governo britânico se interessou, pois produzir mesas era demorado e caro e eles esperavam que o motor diferencial tornasse a tarefa mais econômica.
Em 1823, o governo britânico deu a Babbage £ 1.700 para começar a trabalhar no projeto. Embora o projeto de Babbage fosse viável, as técnicas de usinagem da época não podiam produzir peças com a precisão e a quantidade necessárias de forma econômica. Assim, a implementação se mostrou muito mais cara e de sucesso duvidoso do que a estimativa inicial do governo. De acordo com o projeto de 1830, teria cerca de 25.000 peças e pesaria cerca de 4 toneladas. Em 1832, Babbage e Joseph Clement produziram um pequeno modelo de trabalho (um sétimo da seção de cálculo do Difference Engine No. 1, destinado a operar em números de 20 dígitos e diferenças de sexta ordem) que operava em números de 6 dígitos. e diferenças de segunda ordem. Lady Byron descreveu ter visto o protótipo funcional em 1833: “Nós dois fomos ver a máquina pensante (ou assim parece) na última segunda-feira. Ele elevou vários números à 2ª e 3ª potências e extraiu a raiz de uma equação quadrática." O trabalho no motor maior foi suspenso em 1833.
Na época em que o governo abandonou o projeto em 1842, Babbage havia recebido e gasto mais de £ 17.000 no desenvolvimento, o que ainda não era suficiente para conseguir um motor funcional. O governo valorizava apenas a produção da máquina (mesas produzidas economicamente), não o desenvolvimento (a um custo imprevisível) da própria máquina. Babbage não reconheceu ou não quis reconhecer essa situação. Enquanto isso, a atenção de Babbage se voltou para o desenvolvimento de um mecanismo analítico, minando ainda mais a confiança do governo no eventual sucesso do mecanismo de diferença. Ao melhorar o conceito como um mecanismo analítico, Babbage tornou obsoleto o conceito do mecanismo de diferença e o projeto para implementá-lo um fracasso total na visão do governo.
A Máquina de Diferenças nº 1 incompleta foi exibida ao público na Exposição Internacional de 1862 em South Kensington, Londres.
Babbage passou a projetar seu mecanismo analítico muito mais geral, mas depois produziu um "Difference Engine No. 2" design (números de 31 dígitos e diferenças de sétima ordem), entre 1846 e 1849. Babbage foi capaz de aproveitar as ideias desenvolvidas para o mecanismo analítico para fazer o novo mecanismo de diferença calcular mais rapidamente usando menos peças.
Mecanismo de cálculo Scheutziano
Inspirado na máquina de diferença de Babbage em 1834, Per Georg Scheutz construiu vários modelos experimentais. Em 1837 seu filho Edward propôs a construção de um modelo de trabalho em metal, e em 1840 terminou a parte de cálculo, capaz de calcular séries com números de 5 dígitos e diferenças de primeira ordem, que posteriormente foi estendida para terceira ordem (1842). Em 1843, após adicionar a parte de impressão, o modelo foi concluído.
Em 1851, financiada pelo governo, a construção da máquina maior e melhorada (números de 15 dígitos e diferenças de quarta ordem) começou e terminou em 1853. A máquina foi demonstrada na Feira Mundial de Paris, 1855 e depois vendido em 1856 para o Observatório Dudley em Albany, Nova York. Entregue em 1857, foi a primeira calculadora de impressão vendida. Em 1857, o governo britânico encomendou a próxima máquina de diferença de Scheutz, que foi construída em 1859. Tinha a mesma construção básica da anterior, pesando cerca de 10 cwt (1.100 lb; 510 kg).
Outros
Martin Wiberg melhorou a construção de Scheutz (c. 1859, sua máquina tem a mesma capacidade que a de Scheutz - 15 dígitos e quarta ordem), mas usou seu dispositivo apenas para produzir e publicar tabelas impressas (tabelas de juros em 1860 e tabelas logarítmicas em 1875).
Alfred Deacon de Londres em c. 1862 produziu um mecanismo de pequenas diferenças (números de 20 dígitos e diferenças de terceira ordem).
O americano George B. Grant começou a trabalhar em sua máquina de calcular em 1869, sem saber das obras de Babbage e Scheutz (Schentz). Um ano depois (1870) ele aprendeu sobre motores de diferença e começou a projetar um para si mesmo, descrevendo sua construção em 1871. Em 1874, o Boston Thursday Club fez uma assinatura para a construção de um modelo em grande escala, que foi construído em 1876. poderia ser expandido para aumentar a precisão e pesava cerca de 2.000 libras (910 kg).
Christel Hamann construiu uma máquina (números de 16 dígitos e diferenças de segunda ordem) em 1909 para as "Tabelas de Bauschinger e Peters" ("Tabelas logarítmicas-trigonométricas com oito casas decimais"), que foi publicado pela primeira vez em Leipzig em 1910. Pesava cerca de 40 kg (88 lb).
A Burroughs Corporation por volta de 1912 construiu uma máquina para o Nautical Almanac Office que foi usada como um motor diferencial de segunda ordem. Mais tarde, foi substituído em 1929 por um Burroughs Class 11 (números de 13 dígitos e diferenças de segunda ordem, ou números de 11 dígitos e [pelo menos até] diferenças de quinta ordem).
Alexander John Thompson construiu por volta de 1927 uma máquina de integração e diferenciação (números de 13 dígitos e diferenças de quinta ordem) para sua tabela de logaritmos "Logarithmetica britannica". Esta máquina era composta por quatro calculadoras Triumphator modificadas.
Leslie Comrie em 1928 descreveu como usar a máquina de calcular Brunsviga-Dupla como um mecanismo de diferenças de segunda ordem (números de 15 dígitos). Ele também observou em 1931 que a National Accounting Machine Class 3000 poderia ser usada como um mecanismo diferencial de sexta ordem.
Construção de dois motores diferenciais nº 2 em funcionamento
Durante a década de 1980, Allan G. Bromley, professor associado da Universidade de Sydney, na Austrália, estudou os desenhos originais de Babbage para as máquinas analíticas e de diferenças na biblioteca do Science Museum em Londres. Este trabalho levou o Science Museum a construir uma seção de cálculo funcional do mecanismo de diferença nº 2 de 1985 a 1991, sob Doron Swade, o então curador de computação. Isso foi para comemorar o 200º aniversário do nascimento de Babbage em 1991. Em 2002, a impressora que Babbage originalmente projetou para o mecanismo de diferença também foi concluída. A conversão dos desenhos de projeto originais em desenhos adequados para os fabricantes de engenharia. O uso revelou alguns pequenos erros no design de Babbage (possivelmente introduzidos como uma proteção caso os planos fossem roubados), que tiveram que ser corrigidos. Depois de concluídos, o mecanismo e a impressora funcionaram perfeitamente e ainda funcionam. O mecanismo de diferença e a impressora foram construídos com tolerâncias alcançáveis com a tecnologia do século XIX, resolvendo um debate de longa data sobre se o design de Babbage teria funcionado (uma das razões anteriormente avançadas para a não conclusão do projeto de Babbage).;s motores foi que os métodos de engenharia foram insuficientemente desenvolvidos no final da era georgiana). É composto por 8.000 peças e pesa cerca de 5 toneladas.
O objetivo principal da impressora é produzir placas estereotipadas para uso em impressoras, o que é feito pressionando o tipo em gesso macio para criar um flongo. Babbage pretendia que os resultados da Engine fossem transmitidos diretamente para a impressão em massa, tendo reconhecido que muitos erros nas tabelas anteriores não eram resultado de erros humanos de cálculo, mas de erros no processo manual de composição tipográfica. A saída de papel da impressora é principalmente um meio de verificar o desempenho do mecanismo.
Além de financiar a construção do mecanismo de saída para o mecanismo de diferenças do Science Museum, Nathan Myhrvold encomendou a construção de um segundo mecanismo de diferenças completo nº 2, que estava em exibição no Computer History Museum em Mountain View, Califórnia, de 10 de maio de 2008 a 31 de janeiro de 2016. Desde então, foi transferido para a Intellectual Ventures em Seattle, onde está em exibição do lado de fora do saguão principal.
Operação
O mecanismo de diferença consiste em várias colunas, numeradas de 1 a N. A máquina é capaz de armazenar um número decimal em cada coluna. A máquina só pode adicionar o valor de uma coluna n + 1 à coluna n para produzir o novo valor de n. A coluna N só pode armazenar uma constante, a coluna 1 exibe (e possivelmente imprime) o valor do cálculo na iteração atual.
O motor é programado definindo valores iniciais para as colunas. A coluna 1 é definida para o valor do polinômio no início da computação. A coluna 2 é definida como um valor derivado dos primeiros e maiores derivados do polinomial ao mesmo valor de X. Cada uma das colunas de 3 a N é definido como um valor derivado do (n- Sim. - Sim. 1)(n-1)} primeiros e maiores derivados do polinomial.
Tempo
No projeto Babbage, uma iteração (ou seja, um conjunto completo de operações de adição e transporte) acontece para cada rotação do eixo principal. Colunas ímpares e até mesmo alternadamente executam uma adição em um ciclo. A sequência de operações para coluna nNão. é assim:
- Contar acima, recebendo o valor da coluna n+1- Sim. (passo de adição)
- Execute a propagação do transporte no valor contado
- Conte até zero, adicionando à coluna n- Sim. - Sim. 1Não.
- Repor o valor contabilizado ao seu valor original
Os passos 1,2,3,4 ocorrem para cada coluna ímpar, enquanto os passos 3,4,1,2 ocorrem para cada coluna par.
Embora o projeto original de Babbage colocasse a manivela diretamente no eixo principal, mais tarde percebeu-se que a força necessária para acionar a máquina seria muito grande para um ser humano lidar confortavelmente. Portanto, os dois modelos construídos incorporam um redutor de 4:1 na manivela, sendo necessárias quatro rotações da manivela para realizar um ciclo completo.
Etapas
Cada iteração cria um novo resultado e é realizada em quatro etapas correspondentes a quatro voltas completas da alça mostrada na extrema direita da figura abaixo. As quatro etapas são:
- Passo 1. Todas as colunas numeradas (2,4,6,8) são adicionadas a todas as colunas numeradas ímpares (1,3,5,7) simultaneamente. Um braço de varredura interior gira cada coluna uniforme para causar qualquer número está em cada roda para contar até zero. À medida que uma roda gira para zero, ela transfere seu valor para uma engrenagem do setor localizada entre as colunas ímpares/even. Esses valores são transferidos para a coluna ímpar que os faz contar. Qualquer valor de coluna ímpar que passe de "9" para "0" ativa uma alavanca de transporte.
- Passo 2. Este é como o Passo 1, exceto que é colunas ímpares (3,5,7) adicionadas até mesmo colunas (2,4,6), e a coluna um tem seus valores transferidos por uma engrenagem do setor para o mecanismo de impressão na extremidade esquerda do motor. Qualquer valor de coluna que passe de "9" para "0" ativa uma alavanca de transporte. O valor da coluna 1, o resultado para o polinomial, é enviado para o mecanismo de impressora anexado.
- Passo 3. Isto é como o Passo 2, mas para fazer carrega até colunas, e retornando colunas ímpares aos seus valores originais.
Subtração
O mecanismo representa números negativos como complementos de dez. A subtração equivale à adição de um número negativo. Isso funciona da mesma maneira que os computadores modernos realizam a subtração, conhecida como complemento de dois.
Método de diferenças
O princípio de um mecanismo de diferenças é o método de diferenças divididas de Newton. Se o valor inicial de um polinômio (e de suas diferenças finitas) for calculado por algum meio para algum valor de X, o mecanismo de diferença pode calcular qualquer número de valores próximos, usando o método geralmente conhecido como método das diferenças finitas. Por exemplo, considere o polinômio quadrático
- p(x)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =2x2- Sim. - Sim. 3x+2{displaystyle p(x)=2x^{2}-3x+2,}
com o objetivo de tabular os valores p(0), p(1), p(2), p (3), p(4) e assim por diante. A tabela abaixo é construída da seguinte forma: a segunda coluna contém os valores do polinômio, a terceira coluna contém as diferenças dos dois vizinhos à esquerda na segunda coluna e a quarta coluna contém as diferenças dos dois vizinhos na terceira coluna:
x | p(x) = 2x2 - 3x + 2 | (em inglês)x) = (p(x+ 1) − p(x) | diff2(x) =x+ 1) - diff1(x) |
---|---|---|---|
0 | 2 | - Sim. | 4 |
1 | 1 | 3 | 4 |
2 | 4 | 7 | 4 |
3 | 11 | 11 | |
4 | 22 |
Os números na terceira coluna de valores são constantes. Na verdade, começando com qualquer polinômio de grau n, o número da coluna n + 1 será sempre constante. Este é o fato crucial por trás do sucesso do método.
Esta tabela foi construída da esquerda para a direita, mas é possível continuar a construí-la da direita para a esquerda na diagonal para calcular mais valores. Para calcular p(5) use os valores da diagonal mais baixa. Comece com o valor da constante da quarta coluna de 4 e copie-o para baixo na coluna. Em seguida, continue a terceira coluna adicionando 4 a 11 para obter 15. Em seguida, continue a segunda coluna tomando seu valor anterior, 22 e adicionando 15 da terceira coluna. Assim, p(5) é 22 + 15 = 37. Para calcular p(6), iteramos o mesmo algoritmo no p (5) valores: pegue 4 da quarta coluna, adicione-o ao valor 15 da terceira coluna para obter 19 e, em seguida, adicione-o ao valor 37 da segunda coluna para obter 56, que é p(6). Este processo pode ser continuado ad infinitum. Os valores do polinômio são produzidos sem nunca ter que se multiplicar. Um motor de diferença só precisa ser capaz de adicionar. De um loop para o próximo, ele precisa armazenar 2 números - neste exemplo (os últimos elementos na primeira e segunda colunas). Para tabular polinômios de grau n, é necessário armazenamento suficiente para armazenar n números.
O mecanismo de diferença nº 2 de Babbage, finalmente construído em 1991, pode conter 8 números de 31 dígitos decimais cada e pode, portanto, tabular polinômios de 7º grau com essa precisão. As melhores máquinas da Scheutz podiam armazenar 4 números com 15 dígitos cada.
Valores iniciais
Os valores iniciais das colunas podem ser calculados primeiro calculando manualmente N valores consecutivos da função e retrocedendo, ou seja, calculando as diferenças necessárias.
Col. 10Não. 1_{0}} recebe o valor da função no início da computação f(0)(0). Col. 20Não. 2_{0}} é a diferença entre f(1)Não. e f(0)(0)...
Se a função a ser calculada for uma função polinomial, expressa como
- f(x)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =umnxn+umn- Sim. - Sim. 1xn- Sim. - Sim. 1+⋯ ⋯ +um2x2+um1x+um0{displaystyle f(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+cdots +a_{2}x^{2}+a_{1}x+a_{0},}
os valores iniciais podem ser calculados diretamente dos coeficientes constantes a0, a1,a2,..., an sem calcular nenhum ponto de dados. Os valores iniciais são assim:
- Col. 10Não. 1_{0}} = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = um0
- Col. 20Não. 2_{0}} = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = um1 + um2 + um3 + um4 +... + umn
- Col. 30Não. 3_{0}} = 2um2 + 6um3 + 14um4 + 30um5 +...
- Col. 40Não. 4_{0}} = 6um3 + 36um4 + 150um5 +...
- Col. 50Não. 5_{0}} = 24um4 + 240um5 +...
- Col. 60Não. 6_{0}} = 120um5 +...
- ...Sim.
Uso de derivados
Muitas funções comumente usadas são funções analíticas, que podem ser expressas como séries de potência, por exemplo, como uma série de Taylor. Os valores iniciais podem ser calculados com qualquer grau de precisão; se feito corretamente, o mecanismo fornecerá resultados exatos para as primeiras N etapas. Depois disso, o motor dará apenas uma aproximação da função.
A série Taylor expressa a função como uma soma obtida de seus derivados em um ponto. Para muitas funções os derivados mais elevados são triviais para obter; por exemplo, a função sine em 0 tem valores de 0 ou ± ± 1{displaystyle pm 1} para todos os derivados. Definindo 0 como o início da computação, obtemos a série simplificada Maclaurin
- Gerenciamento Gerenciamento n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =0∞ ∞ f(n)(0)n!xn{displaystyle sum _{n=0}^{infty }{frac {f^{(n)}(0)}{n!}} x^{n}}
O mesmo método de cálculo dos valores iniciais dos coeficientes pode ser usado para funções polinomiais. Os coeficientes da constante polinomial terão agora o valor
- umn)) f(n)(0)n!{displaystyle a_{n}equiv {frac {f^{(n)}(0)}{n!}}}
Ajuste de curva
O problema com os métodos descritos acima é que os erros se acumularão e a série tenderá a divergir da função verdadeira. Uma solução que garante um erro máximo constante é usar o ajuste de curva. Um mínimo de N valores são calculados uniformemente espaçados ao longo do intervalo dos cálculos desejados. Usando uma técnica de ajuste de curva como a redução gaussiana, uma interpolação polinomial de grau N−1 da função é encontrada. Com o polinômio otimizado, os valores iniciais podem ser calculados como acima.
Contenido relacionado
Lista de projetos de inteligência artificial
Américo Vespúcio
Jahangir