|
|
||||
É 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: Texas Instruments obtivemos –1.10-10. Ora, mas sendo x R, x não nulo, é sempre verdade 2) Numa HP-15C da Hewlett-Packard, pusemo-nos a calcular o valor da expressão parcela com 2a., à qual somamos a 3a. e assim por diante. O resultado foi 1,291284720. Para conferir, repetimos o cálculo, agora somando, antes as duas últimas parcelas e depois a anterior e assim até somarmos a 1a. quando obtivemos o resultado 1,291284721. Em outras palavras, a associatividade da adição não funcionou. Onde está o erro? 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 [s,S]. Sejam m1 e m2 números consecutivos em M tais que m1 x m2, ou seja, m1 é a melhor aproximação por falta de x em M e m2 é a melhor por excesso. No caso em que x = m1 ou x = m2, o próprio x pode ser representado em C e não haverá problemas. No caso, entretanto, em que m1 < x < m2, há dois procedimentos possíveis de arredondamento: a1) C escolhe m1 para representar x (arredondamento assimétrico) (arredondamento simé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 y = z. De fato, do que vimos acima, se a,b são números reais distintos mas representados em C pelo mesmo m M, operando em C obtemos: m + a = m + b (=2 m) donde poderíamos concluir que a = b. 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.
|