![]() |
|
|
|||
![]() |
É de admirar o quanto o advento dos computadores tem influído em nosso cotidiano. Suas múltiplas aplicações, desde uma simples conta telefônica aos diagnósticos clínicos, chegam, por vezes, a nos assustar. Urge, portanto, conhecê-los um pouco melhor. Neste artigo, propômo-nos a apresentar, de modo informal, algumas surpresas que nos pode causar a Aritmética dos Computadores. Estas observações aplicam-se às diversas máquinas de cálculo, desde a mais elementar calculadora de bolso ao mais sofisticado computador, ressalvadas as devidas proporções. Comecemos por alguns exemplos:
2)
Numa HP-15C da Hewlett-Packard, pusemo-nos a calcular o valor da
expressão
Estes e outros exemplos análogos trazem à tona algumas das limitações dos computadores. Para melhor entendê-las, façamos algumas considerações preliminares. Suponhamos,
por exemplo, que vamos calcular a soma x + y de dois números dados.
Teremos que entrar com os dados x e y na máquina, que os reterá (de
alguma forma que não é objeto do nosso estudo no momento) em sua memória
para com eles poder operar. Ora, sendo finita a memória da máquina, será
impossível armazenar aí números com representação infinita. Assim é
que o conjunto M dos números m que podem ser representados em uma
determinada máquina C é um subconjunto finito de números racionais
(Ivan de Queiroz Barros, Introdução ao Cálculo Numérico, Editora
Edgard Blücher, 1972, pág.6). Daí surge a questão: como trabalhar na máquina
C com um número real qualquer? Já um primeiro problema seria o da limitação:
sendo M um conjunto finito, ele admite um mínimo s e um máximo S, isto
é, s é o menor dado aceito por C e S é o maior. Respeitemos,
entretanto, esta primeira restrição e tomemos um número real x dentro
destes limites, isto é, x
a1) C escolhe m1 para representar x (arredondamento assimétrico)
Cabem, aqui, algumas observações:
Estas opções que a máquina deve fazer, ao representar o resultado de cada uma das operações nas diversas etapas do cálculo nos dois exemplos dados de início, são as responsáveis pelas distorções nos resultados encontrados. Pode-se, ainda, argumentar que em ambos os exemplos os erros são tão pequenos que certamente não acarretariam maiores problemas. Vejamos, então, um outro exemplo que ilustra como um pequeno erro pode provocar erros bem maiores:
quando a=b=1,00000001 admite a única solução x=1, y=0. Suponha, entretanto, que no cálculo do coeficiente a se tenha cometido um erro da ordem de 1.10-8 e que o sistema obtido fosse, então: A solução (única) deste novo sistema é x = y = 0,5 bem distante do resultado anterior! 4)
Salientamos que na máquina C não valem algumas das regras da
Aritmética, como por exemplo, a lei do cancelamento aditivo: x + y = x +
z
De
fato, do que vimos acima, se a,b são números reais distintos mas
representados em C pelo mesmo m Outras propriedades deixam de valer como, por exemplo, a associatividade da multiplicação e distributividade da multiplicação em relação à adição. Na realidade, M nem é fechado com respeito à operação de adição! Observamos finalmente que, para atenuar o efeito destes arredondamentos, algumas calculadoras operam internamente com um número de casas maior do que aquelas que elas apresentam. Estas máquinas utilizam os procedimentos a1 ou a2 de arredondamento uma ou duas ou mais casas adiante da última que nos é fornecida.
|