Sei sulla pagina 1di 6

ERROS

Deseja-se obter respostas confiveis para os problemas porm nem sempre acontece. Isso justificado pela ocorrncia de erros provenientes de vrias fontes, alguns deles provenientes da fase de modelagem e outros da fase de obteno da soluo numericamente. Nesta ltima fase podem ocorrer erros na preciso dos dados de entrada, na forma de armazenamento dos dados, nas operaes numricas efetuadas e erros de truncamento (troca de uma srie infinita por uma finita). O Clculo Numrico tratar somente dos erros que decorrem das operaes numricas efetuadas e do truncamento. Quando se resolvem problemas com mtodos numricos no incomum encontrar resultados finais distantes do que se esperava obter, mesmo que todas as fases de resoluo tenham sido realizadas corretamente. Tais resultados dependem, da preciso dos dados de entrada, da forma como estes dados so representados no computador e das operaes numricas efetuadas. Imprecises nos dados iniciais decorrem dos equipamentos utilizados em sua coleta e sua magnitude no pode ser medida numa disciplina de Clculo Numrico, portanto nos fixaremos na anlise das ultimas fontes de erros.

Representao de Nmeros
A representao de um nmero depende da base numrica escolhida ou disponvel na mquina em uso e do nmero mximo de dgitos usados na sua representao. O nmero , por exemplo, no pode ser representado por um nmero finito de dgitos decimais e assim, dependendo do nmero de dgitos utilizados, podem ser obtidas respostas diferentes para um mesmo problema (calcule por exemplo o comprimento da circunferncia de raio 100m, utilizando = 3.14 , = 3.1416 e = 3.141592654 . Alm disto, um nmero pode ter representao finita numa base e no-finita em outras bases. A base 10 a mais utilizada atualmente e um computador opera normalmente no sistema binrio. Observe o que em geral acontece quando voc utiliza o computador. Ao entrar com os dados no sistema decimal todos so convertidos para o sistema binrio para que as operaes sejam efetuadas neste sistema. Finalmente os resultados sero convertidos para o sistema decimal e transmitidos a voc. Todo esse processo de converso uma fonte de erros que afeta os resultados finais. Uma breve introduo de como feita a mudana da representao de um nmero de uma determinada base numrica para outra: 1) Converso de nmeros inteiros do sistema binrio para o decimal: Um nmero na base

, ( a j a j 1 ...a 2 a1 a0 ) , 0 a k 1,
j j 1

k = 1,..., j ,

pode ser escrito na forma polinomial: a j + a j 1

+ ... + a 2 2 + a1 + a0 0

Com esta representao um nmero facilmente convertido do sistema binrio para o decimal. Exemplo:

(101101) 2 = 1x 25 + 0x 2 4 + 1x 23 + 1x 2 2 + 0x 21 + 1x 2 0 = 32 + 8 + 4 + 1 = 45
Processo Prtico: Considere o nmero ( a j a j 1 ...a 2 a1 a0 ) 2 . sucessivamente, o algarismo
2

Colocando,

a j 2 + a j 1 2
j

j 1

em evidncia na representao + ... + a 2 2 + a1 2 + a0 2 possvel se chegar ao processo


0

prtico a seguir para determinar a representao, 10:

b0 , deste nmero na base

bj = a j b j 1 = a j 1 + 2b j b j 2 = a j 2 + 2b j 1 . . . b0 = a0 + 2b1
Exerccio: Utilize o processo prtico para obter a representao de (101101) 2 na base decimal . 2) Converso de nmeros inteiros do sistema decimal para o binrio: Se N um nmero inteiro na base 10, sua representao binria (a j a j 1 ...a2 a1a0 ) 2 pode ser obtida com o algoritmo que segue: Passo 0

k =0

Nk = N
Passo 1 Obtenha q k e rk tais que:

N k = 2 xq k + rk Faa a k = rk

Caso contrrio, faa N k +1 = q k Faa k = k + 1 e volte para o passo 1.

Passo 2: Se q k = 0 , pare.

Exerccio: Encontrar a representao do nmero 17, na base binria. 3) Converso de nmeros fracionrios do sistema decimal para o binrio: Se r um nmero fracionrio entre 0 e 1 na base 10, os dgitos binrios de sua representao binria (0.d1d 2 ...d j ...) 2 podem ser obtidos atravs do algoritmo: Passo 0

r1 = r , k = 1.

Passo 1 Calcule 2rk

Caso contrrio faa d k = 0 Passo 2: Faa rk +1 = 2rk d k Se rk +1 = 0 pare. Caso contrrio:

Se 2rk 1, faa d k = 1

Passo 3: Faa k = k + 1 e volte para o passo 1. Exerccio: Utilizar o algoritmo para encontrar a representao binria dos nmeros a) 0.125 b) 0.1 Os exemplos apresentados no exerccio mostram que um nmero real entre 0 e 1, com representao decimal finita, pode ter sua representao no sistema binrio, finita ou no. O fato de um nmero no ter representao finita no sistema binrio pode acarretar erros, aparentemente inexplicveis, em clculos efetuados em sistemas computacionais binrios. No deixe de confirmar, resolvendo o exerccio!!!

4) Converso de nmeros fracionrios do sistema binrio para o decimal: De r = (0.d1 d 2 ...d j ...) 2 para (0.b1b2 ...b j ...)10 Algoritmo: Passo 0

r1 = r , k = 1.

Passo 1 Calcule wk = (1010 ) 2 xrk

Seja z k a parte inteira de wk

bk a converso de z k para a base 10.


Passo 2: Faa rk +1 = wk z k

Se rk +1 = 0 pare. Caso contrrio:

Passo 3: Faa k = k + 1 e volte para o passo 1.

Obs. As operaes devem ser feitas no sistema binrio. Exerccio: Determinar a representao decimal de ( 0.000111 )2

Aritmtica de Ponto Flutuante


Um computador ou calculadora representa um nmero real no sistema denominado aritmtica de ponto flutuante. Neste sistema, um nmero r ser e onde representado na forma (.d1d 2 ...d t ) x a base em que a mquina opera; t o nmero de dgitos na mantissa; 0 d j 1,

j = 1,..., t , d1 0 ;

e o expoente no intervalo [l , u ] ;
Portanto, em qualquer mquina, apenas um subconjunto dos nmeros reais representado exatamente. Exemplo: Considere uma mquina que opera no sistema: = 5 ; t = 4 ; e [6,6] . Neste sistema os nmeros sero representados por (.d1d 2 d 3 d 4 ) x 5
e

com

0 d j 4, j = 1,...,4 , d1 0 e e [6,6] ;

O menor nmero, em valor absoluto, representado nessa mquina m = 0.1000x5-6 e o maior M = 0.4444x56 . Observaes: 1) Quando o resultado de uma operao superior ao maior nmero representado pela mquina esta retornar a mensagem: Overflow 2) Quando o resultado de uma operao inferior ao menor nmero representado pela mquina esta retornar a mensagem: Underflow 3) Algumas linguagens de programao permitem que as variveis sejam declaradas em preciso dupla. Neste caso a varivel ser representada

no sistema de aritmtica de ponto flutuante da mquina, mas com aproximadamente o dobro de dgitos disponveis na mantissa.

Arredondamento e Truncamento
Quando um nmero representado na base decimal possui a quantidade de dgitos maior que a permitida, para a adequao pode ser utilizado: a) Truncamento: que simplesmente despreza os dgitos extras. Ex: Se o nmero total de dgitos na mantissa quatro, o nmero 0.234567 ser interpretado como 0.2345; b) Arredondamento: caso o primeiro dgito extra menor que 5, desprezasse todos os dgitos extras na mantissa (como no truncamento). Noutro caso, o dgito anterior a este acrescido de 1 e todos os dgitos extras so desprezados. Ex. Se o nmero total de dgitos na mantissa quatro, o nmero 0.234567 ser interpretado como 0.2346 enquanto que o nmero 0.43564 ser interpretado como 0.4356;

Erro Absoluto: diferena entre o valor exato de um nmero x e seu valor aproximado x : EAx = x x
Em geral, apenas o valor de x conhecido. Neste caso impossvel calcular o valor exato do erro absoluto. O que se faz obter um limitante superior ou uma estimativa para o mdulo do erro absoluto. Por exemplo, sabendo que (3.14,3.15) , escolhe-se para um valor, , dentro deste intervalo e ento

< 0.01.
xx x

Erro Relativo: erro absoluto dividido pelo valor aproximado: ERx = Exemplo

Considere os nmeros x = 2522.9 e y = 4.7 com EAx = 0.1 = EAy , isto

x (2522.8, 2523) e y (4.6, 4.8) . lgico que embora os erros absolutos


para ambos os nmeros coincide, no podemos considerar que estes esto sendo representados com a mesma preciso ( 0.1 tem significados diferentes em nmero com a magnitude de x = 2522.9 ou a magnitude de y = 4.7 ). Os erros relativos sero

EAy 0.1 EAx 0.1 ER y = < 0.02 , < 3.96x10 5 e 4.7 2552.9 y x confirmando que o nmero x est representado com maior preciso que o nmero y .
ER x =

Anlise do Erro nas Operaes Aritmticas de Pontos Flutuantes


seqncia de operaes, como, por exemplo, s = [( x + y ) u t ] + z , importante se ter a noo de como o erro propagase ao longo das operaes. Nos exemplos a seguir , usaremos aritmtica de pontos de 4 dgitos , na base 10. Exemplo. Dados x = 0,858x10 a) x + y . Utilizando arredondamento, Utilizando truncamento,
4

Dada

uma

e y = 0,1382 x10

obter

x + y = 0,858x10 4 + 0,0014 x10 4 = 0,8594 x10 4


x + y = 0,858 x10 4 + 0,0013x10 4 = 0,8593x10 4
b) x. y Utilizando arredondamento ou truncamento:

x. y = 0,858 x10 4 x 0,1382 x10 2 = 0,1186 x10 6


Utilizando truncamento,

x + y = 0,858x10 4 x 0,1382 x10 2 = 0,1185 x10 6


c) [ x . x + ( x + y ) xy Utilizando arredondamento ou truncamento:

[ x.x + ( x + y )] xy = [0,7362 x108 + 0,8594 x10 4 ] 0,1186 x10 6 = = [0,7362 x108 + 0,0001x108 ] 0,1186 x10 6 = = 0,7363x108 0,0012 x108 = 0,7351x108
Utilizando truncamento,

[ x.x + ( x + y )] xy = [0,7361x108 + 0,8593x10 4 ] 0,1185x10 6 = = [0,7361x108 + 0,0000 x108 ] 0,1185x10 6 = = 0,7361x108 0,0011x108 = 0,7350 x108

Potrebbero piacerti anche