Professional Documents
Culture Documents
UBERLNDIA, MG 2013
Trabalho interdisciplinar das disciplinas. Introduo informtica, Matemtica Discreta e Lgica de Programao. Prof. Fabio Henrique Prof. Dr. Andr Lemos Prof. Eliane Borela
UBERLNDIA, MG 2013
Sumrio
Conhecendo Charles Babbage ....................................................................................... 3 Trabalhos publicados ao longo de sua carreira como matemtico e cientista: . 5 Babbage e suas maquinas de computar ou calcular .................................................... 6 A mquina Diferencial ................................................................................................ 6 Componentes e Funcionamento ............................................................................. 7 E a Maquina diferencial de Babbage finalmente funciona! ................................ 8 A Mquina Analtica ................................................................................................ 10 Componentes e Funcionamento ............................................................................... 11 Um paralelo entre as maquinas de Babbage e os processadores atuais .................. 12 Explique o princpio matemtico de funcionamento da maquina diferencial de Charles Babbage. .......................................................................................................... 13 Desenvolver um programa que realize o funcionamento da maquina diferencial de Babbage em linguagem C++ ........................................................................................ 16 Referncias Bibliogrficas ........................................................................................... 20
Professorship of Mathematics) a mais famosa cadeira no meio acadmico do mundo, principalmente devido em grande parte aos antigos titulares da cadeira, o professor Stephen Hawking, que um famoso fsico, e Sir Isaac Newton, que foi o segundo titular da cadeira. Nessa cadeira j estiveram vrios homens que tiveram grandes influencias sobre as mentes do mundo todo, atravs de seu conhecimento e feitos na cincia e tecnologia 1 Babbage alm de ser uma importante figura na histria da computao com suas maquinas diferencial e analtica, tambm foi um polmata (aquele que tem conhecimento profundo de vrias cincias) que atuou em muitas reas da matemtica e fora dela. Sua atuao estendeu-se a criptoanalise, probabilidades, cincias atuarias, astronomia, economia e religio entre outras. Aps dez anos, Babbage saiu da Ctedra para dedicar-se integralmente a desenvolver pessoalmente suas maquinas. Mas apesar de todo o seu esforo, no teve sucesso na construo de suas maquinas, e grande parte desse fracasso deveu-se ao fato do governo no ter conseguido dar suporte ao seu trabalho. Em 1933, Babbage conheceu a aristocrata Ada Lovelace2, que ficou fascinada pelas suas maquinas. Com isso, Ada tornou-se uma competente estudante de matemtica, o que era incomum para uma mulher na poca. Ela traduziu artigos sobre as maquinas de Babbage para o primeiro ministro da Itlia, e sob a superviso atenta de Babbage, adicionou longas notas, o que constituem a melhor descrio contempornea das maquinas, das ideias de Babbage a respeito da sua capacidade de funcionamento. Ada pode ser considerada a primeira programadora do mundo, sendo uma das primeiras assistentes, logo aps os trs filhos de Babbage. Ela refez alguns clculos que Babbage havia realizado anos antes, que para Ada eram exerccios de estudante. O fracasso de sua empreitada fez com que no final de sua carreira, j em declnio, Babbage tornou-se um homem amargurado e desapontado. Ele faleceu em casa, na cidade de Londres, em 18 de outubro de 1871.
1 2
Aps sua morte, seu filho, Henry Prevost Babbage deu continuidade ao seu projeto da maquina analtica, que no foi finalizada, e apenas rodava alguns programas com erros embaraosamente bvios. Charles Babbage foi um individuo extraordinrio que Infelizmente, no foi reconhecido na sua poca. Trabalhos publicados ao longo de sua carreira como matemtico e cientista:
Lives (1826)
Table of Logarithms of the Natural Numbers from 1 to 108, 000 (1827) Reflections on the Decline of Science in England (1830) On the Economy of Machinery and Manufactures (1832) Ninth Bridgewater Treatise (1837) Passages from the Life of a Philosopher (1864)
A mquina Diferencial
Diversos inventores no sculo XIX estavam frustrados com os constantes erros encontrados nas tabelas de clculos matemticos realizados manualmente, e tentavam construir maquinas que fizessem esse trabalho corretamente. Mas Babbage foi um visionrio, e por no ter uma tecnologia a altura do seu invento ( a maquina diferencial), foi ridicularizado por aqueles que acreditavam ser uma tarefa impossvel, o que infelizmente se mostrou uma realidade na poca. Babbage no viveu para presenciar o amplo uso de sua impressora na navegao, engenharia, bancos e seguradoras.
A gravura acima retrata uma parte da maquina diferencial n1 construda em 1833, e atualmente exposta no Museu de Cincias de Londres. Na legenda original lse: Impresso de uma xilogravura de uma pequena parte da Maquina Diferencial n1 do Sr Babbage, de propriedade do governo, atualmente depositado no Museu em South Kensington. Foi iniciada em 1823, essa parte foi colocada em 1833. A construo foi abandonada em 1842. Essa placa foi impressa em junho de 1853. Essa parte foi a exposio de 1862.. Infelizmente restam poucas partes dos prottipos das maquinas de computao de Babbage, mas anos depois do fim de seu projeto, o sueco George Scheutz teve sucesso na construo de uma maquina impressora baseando-se nos projetos da Mquina Diferencial de Babbage de 1854. Essa maquina imprimia tabelas astronmicas, e atuariais matemticos com uma preciso sem precedentes, e foi usado pelos governos britnico e norte-americano.
Componentes e Funcionamento
A mquina diferencial foi construda a partir de trs colunas mecnicas, duas colunas de soma e uma coluna de transporte. Cada somador construdo a partir de uma parte traseira, dois somadores empilhados, e a parte de cima. Ambas as colunas so mecanicamente idnticas a do somador. A coluna de transporte semelhante em estrutura a uma coluna adicionadora, sendo composta da parte inferior por uma unidade de reteno, uma unidade completa de transporte e uma unidade superior. As unidades de transporte so essencialmente um adicionador simples, para suportar apenas a funo de transporte de entrada, permitindo assim, que a coluna de transporte seja mais estreita que a do somador. As colunas so ligadas umas as outras com onze pinos de conexo rpida, alm deles, as nicas ligaes entre colunas adjacentes a engrenagem de transporte de sada de uma coluna a direita da engrenagem de transporte de entrada de uma coluna a esquerda e uma parte de elo da cadeia. Quando os pinos so retirados, cada coluna separa facilmente a partir da coluna adjacente. Cada unidade em uma coluna repousa firmemente na unidade abaixo e mantida no lugar com quatro pinos de conexo rpida. Os pinos no so para carregar o rolamento enquanto a mquina est funcionando, mas so fortes o suficiente para manter as unidades 7
conectadas, enquanto a mquina levanta a parte de cima para o transporte. Excetuando-se os pinos de conexo rpida, a nica ligao entre unidades empilhadas o acoplamento da unidade e eixos de dgitos atravs de acopladores baseados em pinos que facilmente se elevam separados. Quando os pinos so retirados, cada unidade desconecta da unidade de baixo quando levantada. As colunas devem ser separadas umas das outras, antes de poderem ser divididas em unidades bsicas. A Maquina diferencial pode ser dividida em unidades bsicas, que podem ser reagrupadas em colunas
.
Documento de Babbage sobre os principios tericos da maquina para calcular tabelas
da construo iniciou-se em 1991, quando uma equipe de engenheiros utilizou os desenhos originais para construir um dispositivo de trs toneladas e 4.000 peas que funciona perfeitamente e foi batizado de maquina diferencial n2. Nove anos depois, construram a impressora, que pesa cerca de 2,5 toneladas e est em fase de testes finais.
impressora
tambm
composta
de
4.000
partes,
imprime
automaticamente os resultados de um calculo e pode ser programada pelo utilizador para apresentar a informao de formas diferentes. Esses resultados podem ser impressos em uma folha de papel ou em chapas para utilizao em uma prensa de impresso convencional.
A Mquina Analtica
Esta inveno de Babbage foi considerada um dos mais curiosos e importante inventos dos tempos modernos: se consideramos o engenho e habilidade exibida no arranjo das partes, ou a grande utilidade e importncia dos resultados. Seu efeito provvel sobre os ramos particulares da cincia, s pode ser comparado com essas melhorias rpidas se seguiram com o surgimento da mquina a vapor. A mquina analtica, consistia na formao e impresso de tabelas matemticas de todos os tipos, totalmente livre de erro em cada cpia individual: Os cientistas da poca no conseguiam ter uma ideia correta da forma e do arranjo da mquina, ou do seu modo de operao, apesar de ser extremamente simples na sua construo, e executaria todas as suas operaes com o auxlio de uma energia mecnica muito insignificante. Seu plano pode ser dividido em duas partes, a mecnica e a matemtica. A mquina idealizada por Babbage foi construda em 1842 e colocada em operao, juntamente com seus desenhos em uma exposio no Museu da Cincia em Londres.
10
Componentes e Funcionamento
Charles Babbage teve a inspirao para sua nova maquina ao observar o projeto de Joseph-Marie Jacquard, que revolucionou o trabalho manual com sua maquina de tear, que automatizava o processo de tecelagem para obter vrios padres de desenhos. De acordo com FONSECA FILHO (2010), A maquina analtica poderia realizar conjuntos mutveis de instrues, e portanto, servir a diferentes funes mais tarde isso ser chamado de software... Ele (Babbage) percebeu que para criar estas instrues precisaria de um tipo inteiramente novo de linguagem e a imaginou como nmeros, flechas e outros smbolos. Ela serviria para Babbage programar a maquina analtica, com uma longa srie de instrues condicionais, que lhe permitiriam modificar suas aes em resposta a diferentes situaes.4
Para realizar a funo de impressora, Babbage teve que colocar dispositivos de entrada e sada de dados. A entrada era feita atravs de trs tipos de cartes: cartes de nmeros, diretivos e de operao. Esses cartes tinham como funo respectivamente, o input de constantes de um problema, controles para o movimento dos nmeros e para a execuo das operaes.
As duas inovaes de maior impacto na maquina diferencial eram, primeiramente o conceito de transferncia de controle que permitia maquina comparar quantidades e, dependendo dos resultados da comparao, desviar para outra instruo ou sequencia de instrues. E a outra inovao consistia em possibilitar que os resultados dos clculos pudessem alterar outros nmeros e instrues colocadas na maquina, permitindo que o computador modificasse seu prprio programa..5
.
11
12
O clculo utilizado em todos os ramos das cincias fsicas, na cincia da computao, estatstica, engenharia, economia e todas as reas que o problema possa ser modelado matematicamente e uma soluo tima desejada. O exemplo mais evidente deste clculo 2 lei de Newton que usa a expresso taxa de variao que se refere a derivao do movimento de um corpo igual a fora resultante que age sobre ele na mesma direo.
Mtodo das Diferenas: Temos que conceituar as diferenas como sendo um f(x) de uma funo calculada com dois valores atribudos varivel x. Expresso da frmula: f(x) f(x1) - f(x2)
O clculo diferencial consiste em reduzir gradualmente os valores de x1 e x2 por uma pequena parte df(x). Assim, o diferencial uma pequena parte infinitesimal f(x) que vai gerar um mtodo de integrao de diferenas.
A verificao do clculo atravs de um polinmio do segundo grau. P(x) = 2x2 3x + 2 P(x) = 2x2 3x + 2
<0,1>,<0,2>,<0,3>,<0,4>
13
Para P(0,1) temos: P(0,1) = 2(0,12 ) (3*0,1) + 2 P(0,1) = 2(0,01) 0,3 + 2 P(0,1) = 0,2 + 1,70 P(0,1) = 1,72
Para P(0,2) temos: P(0,2) = 2(0,22 ) (3*0,2) + 2 P(0,2) = 2(0,04) 0,6 + 2 P(0,2) = 0,08 + 1,40 P(0,2) = 1,48
Para P(0,3) temos: P(0,3) = 2(0,32 ) (3*0,3) + 2 P(0,3) = 2(0,09) 0,9 + 2 P(0,3) = 0, + 1,70 P(0,1) = 1,72
Para P(0,4) temos: P(0,4) = 2(0,42 ) (3*0,4) + 2 P(0,4) = 2(0,16) 1,2 + 2 P(0,4) = 0,32 + 0,8 P(0,4) = 1,12 2 1,72 = 0,28
P(0)=
14
Agora, se pegarmos o valor da diferena entre os dois primeiros valores, teremos uma segunda coluna de resultados formados por esta diferena:
O ponto importante a ser observado que existe uma coluna que apresentar valores constantes para a srie. Assim, podemos afirmar que o valor do grau n do polinmio + 1, ter na coluna ( n+1) o valor constante da srie como ilustrado abaixo:
A coluna PROVA foi gerada a partir da soma dos valores da coluna 2 com os valores da coluna 1.
15
Desenvolver um programa que realize o funcionamento da maquina diferencial de Babbage em linguagem C++
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { int grau, x, contador1, contador2, soma, coeficientes[256], resultados[256], par[256], impar[256]; printf("--------------------------------------------------------------\n"); printf("Programa que calcula polinomios usando o metodo das diferencas\n"); printf("Simulacao da Maquina Diferencial de Babbage\n"); printf("Jean de Sa, Louise Carmo, Magno de Oliveira Paz\n"); printf("Primeiro Periodo de Licenciatura em Computacao\n"); printf("--------------------------------------------------------------\n"); printf("Digite o grau do polinomio: "); scanf ("%d", &grau); printf("\nEntre com o valor de x: "); scanf ("%d", &x); for (contador1=grau; contador1>=0; contador1--) { printf ("\nDigite o coeficiente para x^%d: ",contador1); scanf ("%d", &coeficientes[contador1]); } printf("\nTeremos entao o seguinte polinomio:"); printf (" \nF(x) = "); for (contador1=grau; contador1>0; contador1--) { printf ("%d",coeficientes[contador1]); printf ("x^%d", contador1); printf (" + "); } printf ("%d", coeficientes[0]); printf ("\n"); for (contador1=0; contador1<=x; contador1++) {
16
soma = coeficientes[0]; for (contador2=1; contador2<=grau; contador2++) { soma += coeficientes[contador2] * (pow(contador1,contador2)); } resultados[contador1] = soma; } printf("\n\nx\t y \n\n"); for (contador1=0; contador1<=grau; contador1++) { if (contador1%2==0) { for (contador2=0; contador2<=contador1+1; contador2++) { if (contador2==0) { printf ("%d", contador1); printf ("\t"); } if (contador2==1) { printf ("%d", resultados[contador1]); printf ("\t"); impar[contador2] = resultados[contador1]; } if (contador2>1) { printf ( "%d", impar[contador2-1] - par[contador2-1]); printf ("\t"); impar[contador2] = impar[contador2-1] - par[contador2-1]; } } printf("\n"); } if (contador1%2==1) { for (contador2=0; contador2<=contador1+1; contador2++) { if (contador2==0) { printf ("%d", contador1); printf ("\t"); } if (contador2==1) {
17
printf ("%d", resultados[contador1]); printf ("\t"); par[contador2] = resultados[contador1]; } if (contador2>1) { printf ("%d", par[contador2-1] - impar[contador2-1]); printf ("\t"); par[contador2] = par[contador2-1] - impar[contador2-1]; } } printf ("\n"); } } for (contador1=grau+1; contador1<=x; contador1++) { if (contador1%2==0) { for (contador2=0; contador2<=grau+1; contador2++) { if (contador2==0) { printf ("%d", contador1); printf ("\t"); } if (contador2==1) { printf ("%d", resultados[contador1]); printf ("\t"); impar[contador2] = resultados[contador1]; } if (contador2>1) { printf ( "%d", impar[contador2-1] - par[contador2-1]); printf ("\t"); impar[contador2] = impar[contador2-1] - par[contador2-1]; } } printf("\n"); } if (contador1%2==1) {
18
for (contador2=0; contador2<=grau+1; contador2++) { if (contador2==0) { printf ("%d", contador1); printf ("\t"); } if (contador2==1) { printf ("%d", resultados[contador1]); printf ("\t"); par[contador2] = resultados[contador1]; } if (contador2>1) { printf ("%d", par[contador2-1] - impar[contador2-1]); printf ("\t"); par[contador2] = par[contador2-1] - impar[contador2-1]; } } printf ("\n"); } } system ("pause"); }
19
Referncias Bibliogrficas
Who was Charles Babbage? Disponvel em: <http://www.cbi.umn.edu/about/babbage.html> Acesso em: 20/06/2013.
Babbage, Charles. Babbage's Calculating Engines. 1889. Disponvel em: <http://ebooks.cambridge.org/ebook.jsf?bid=CBO9780511694721>. Acesso em 20/06/2013.
Filho, Cluzio Fonseca. Histria da computao: O Caminho do Pensamento e da Tecnologia.. Porto Alegre: EDIPUCRS, 2007.
Hyman, Anthony. Charles Babbage: Pioneer Of The Computer. Princeton: Princeton University Press, 1982. Disponvel em <http://books.google.com.br/books?id=YCddaWqWK2cC&printsec=frontcover&hl=ptBR&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false>. Acesso em: 20/06/2013.
Palfreman, Jon. Swade, Doron. The dream machine: exploring the computer age. BBC Books, 1991.
Park, Edwards. What a difference the Difference Engine made: from Charles Babbage's calculator emerged today's computer. Disponvel em: <http://www.smithsonianmag.com/historyarchaeology/object_feb96.html#ixzz2YMt3cYmx>. 1996. Acesso em: 20/06/2013. Schaffer, Simon. Babbages Intelligence: Calculating Engines and the Factory System. Disponvel em: <http://www.jstor.org/discover/10.2307/1343892?uid=3737664&uid=2&uid=4&sid=21 102512394447>. Acesso em 20/06/2013
.Acesso em 20/06/2013
20
A Difference Engine Built With LEGO Pieces - A working hand-cranked Difference Engine made using LEGO pieces. Disponvel em: acarol.woz.org/difference_engine.html. Acesso em 18/06/2013
A Brief History of The Lucasian Professorship of Mathematics at Cambridge University. Robert Bruen Boston College May 1995. Disponivel em:
http://www.lucasianchair.org/papers/brief.html. Acesso em 10/07/2013
The BABBAGE Pages Augusta Ada Lovelace (ne Byron), 1815-1852. Disponvel em: http://projects.exeter.ac.uk/babbage/ada.html. Acesso em 10/07/2013
21