Anda di halaman 1dari 7

1

AULA I ERROS EM OPERAES NUMRICAS O objetivo desta aula no aprofundar a teoria de erros e incertezas numricas que ocorrem ao se trabalhar em um computador, mas sim alertar sobre as dificuldades numricas que podem ocorrer no processamento de um programa. Por exemplo Utilizando o Maple para calcular a rea de uma circunferncia de raio igual a 100 m, obtemos os resultados a seguir, que dependem da aproximao considerada para o nmero irracional .
> Area:= Pi*100^2;

> evalf(Area,5);

> evalf(Area, 10);

> evalf(Area, 20);

A melhor aproximao evidentemente a ltima, embora essa rea nunca ser obtida exatamente uma vez que um irracional. INTERAO DO USURIO COM O COMPUTADOR

Dados enviados ao computador pelo usurio no sistema decimal

Informaes so convertidas para o sistema binrio e as operaes so efetuadas neste sistema

Os resultados finais so convertidos para o sistema decimal e transmitidos para o usurio

Este processo de converso numrica gera erros que afetam o resultado final do clculo uma vez que iremos representar nmeros reais por uma quantidade finita de digitos. CONVERSO DE NMEROS INTEIROS NOS SISTEMA DECIMAL E BINRIO Exemplo: O nmero 347 na base decimal e o nmero 10111 na base binria podem ser decompostos em potncias positivas de dez e dois respectivamente, nas formas a seguir: (347)10 = 3 x 102 + 4 x 101 + 7 x 100 (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = (23)10 De forma geral, um nmero na base , pode ser descrito como (aj, aj-1, ..., a2, a1, ao) = aj j + aj -1 j -1+ ....+ a2 2 + a1 1 + a0 0 sendo 0 ak - 1 Exerccio II: Converta (347)10 para a base binria. Procedimento: . observar se nmero a ser convertido para ou mpar. . fazer sucessivas divises por 2 at zerar o quociente. . armazenar os restos das divises. ALGORITMO DE CONVERSO DE INTEIRO NA BASE DECIMAL PARA A BASE BINRIA Passo 0: k = 0; Nk = N; Passo 1: Obtenha qk e rk tais que Nk = 2 x qk + rk Faa ak = rk Passo 2: Se qk = 0, pare. Caso contrrio, faa Nk + 1 = qk. Faa k = k + 1 e volte para o passo 1.

Exerccio II: Converta (10111)2 para a base decimal. (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = (23)10 CONVERSO DE UM NMERO REAL ENTRE 0 E 1 NA BASE DECIMAL PARA A BASE BINRIA Dado um nmero real r entre 0 e 1 na base decimal existem dgitos binrios: d1, d2, ..., dj, ... tais que (r)10 = (0.d1 d2....dj......)2

Neste caso, (r)10 = d1 x 2-1+ d2 x 2-2+ ...+ dj x 2-j +........... Podemos obter d1, d2, ..., dj, ... multiplicando-se sucessivamente o nmero (r)10 por 2 e comparando-se as partes inteiras e fracionrias dos nmeros obtidos. Exemplo 1: Represente (0.125)10 no sistema binrio 0.125 = d1 x 2-1+ d2 x 2-2+ ...+ dj x 2-j +........... Ento, 0.250 = d1 + d2 x 2-1+ ...+ dj x 2-j+1 +........... Logo, d1 = 0 0.500 = d2 + d3 x 2-1+ d4 x 2-2 ...+ dj x 2-j + 2 +........... Logo, d2 = 0 1 = d3 + d4 x 2-1 ...+ dj x 2-j +3 +........... Como a parte fracionria de 1 zero temos d3 = 1. Ento, (0.125)10 = (0.001)2 Exemplo 2: Represente (0.1)10 no sistema binrio e observe que neste sistema o nmero possui uma representao infinita.

Assim, existem nmeros reais entre 0 e 1 que possuem representao finita no sistema decimal, entretanto, possuem representao infinita no sistema binrio. ALGORITMO DE CONVERSO DE UM REAL ENTRE O E 1 DA BASE DECIMAL PARA A BASE BINRIA Passo 0 : r1= r; k:= 1; Passo 1: Calcule 2rk Se 2rk 1, faa dk = 1, Caso contrrio faa dk = 0 Passo 2: Faa rk + 1 = 2rk dk, Se rk = 0, pare. Caso contrrio: Passo 3: k = k + 1. Volte para o passo 1. Exerccio: Converta (0.000111)2 para a base decimal (0.000111)2 = 0 x 2-1+ 0 x 2-2+ 0 x 2-3 + 1 x 2-4 + 1 x 2-5 + 1 x 2-6 = > 2^(-4) + 2^(-5) + 2^(-6);

> evalf(%);

Observaes: Um computador que opera no sistema binrio opera com nmero fixo de posies para guardar os dgitos da mantissa (parte decimal do nmero), e esta aproximao ser usada para realizar clculos. Assim no se pode esperar preciso de resultados nos processos numricos, pois ocorrero truncamentos ou arredondamentos ao longo dos clculos;

O conjunto dos nmeros representveis em qualquer mquina finito; O erro de representao depende da capacidade de representao numrica da mquina disponvel.

REPRESENTAO DE NMEROS EM PONTO FLUTUANTE NORMALIZADO

Um computador ou uma calculadora representa um nmero real em um sistema denominado de aritmtica de ponto flutuante Dado um nmero real, x 0, este ser representado em ponto flutuante por:

(.d1 d2....dt) x e
onde : a base em que a mquina opera; t o nmero de dgitos da mantissa: 0 dj - 1; j = 1..t, d1 0; e o expoente que varia no intervalo [L, S]. Exemplo: Considere uma mquina cujo sistema de representao de nmeros definido por: = 10; t = 4; L= -5 e S = 5. (a) qual o menor e o maior nmero em mdulo representado nesta mquina. (b) como ser representado o nmero 73. 758 nesta mquina se for usado o arredondamento? E se for usado o truncamento? (c) Se a = 42450 e b= 3 qual o resultado de a + b. (a) Nessa mquina, os nmeros sero representados em aritmtica de ponto flutuante na forma:

(.d1 d2 d3 d4) x 10e com e [-5, 5]; 0 dj 9, d1 0


Ento o maior nmero que pode ser representado 0.9999 x 105 = 999990

O menor nmero em mdulo ser 0.1000 x 10-5 = 10-6 (b) 73.758 = 0.73758 x 102 Como so apenas 4 dgitos de mantissa ento Por arredondamento, o nmero ser representado por 0.7376 x 102 Por truncamento, o nmero ser representado por 0.7375 x 102 (c) a= 42450 = 0. 4245 x 105 e b= 3= 0. 00003 x 105 a + b = 0.42453 x 105 Nesta mquina, a + b = 0.4245 x 105 = 42450. Exerccio: Encontre a representao dos nmeros no sistema de aritmtica de ponto flutuante de trs dgitos, = 10 e L= -4 e S = 4. x 1.25 10.053 -238.15 2.71828... 0.000007 718235. 82 Representao por Representao arredondamento por truncamento

OBS: Preciso Dupla Algumas linguagens de programao permitem declarar variveis com preciso dupla. Ou seja, esta varivel no sistema de aritmtica de ponto flutuante desta mquina aparece com o dobro de dgitos de mantissa. Entretanto, com preciso dupla, o tempo de execuo e requerimentos de memria aumentaro muito significativamente.