propagação de erros
DESCRIPTION
Propagação de ErrosTRANSCRIPT
-
Gabriel Cremona Parma Teora y propagacin de errores
30 / 64
CAPITULO 3 PROPAGAO DE ERROS
10 Representao de Nmeros nos Computadores
Usualmente ao realizar a anlise matemtica de um problema, supe-se que se esta desenvolvendo o
problema no domnio dos nmeros reais, pelo que se trabalha sobre certos supostos ou caractersticas deste
conjunto de nmeros:
- infinito em ambos os extremos do conjunto;
- contnuo em todo o domnio;
- Cada nmero pode ser representado por uma quantidade ilimitada de cifras significativas;
- Os nmeros podem representar magnitudes to grandes ou to pequenas como necessrio.
Em geral, pode-se indicar que quando se trabalha no domnio dos nmeros reais, se esta desenvolvendo o trabalho no mbito da aritmtica infinita, onde a representao dos nmeros no um problema.
Este paradigma de soluo s possvel no mbito das resolues terica dos problemas, o qual
geralmente permite chegar a um resultado prtico, simples e aplicvel ao mundo real. Mas revistam existir
problemas que no podem ser resolvidos analiticamente de maneira exata, devendo-se aplicar procedimentos
numricos auxiliados por computadores ou calculadores; mesmo que ao precisar obter o resultado numrico
final de qualquer expresso matemtica exata. Mas ao trabalhar com estes dispositivos de clculos, deve-se
trabalhar com um subconjunto dos nmeros reais que apresentam caractersticas especiais como:
- finito em ambos os extremos do conjunto
- No contnuo em nenhum ponto do domnio
- Cada nmero pode ser representado por uma quantidade limitada de cifras significativas
- Os nmeros no podem representar magnitudes to grandes ou to pequenas como
necessrio
Estas caractersticas do conjunto de nmeros que um dispositivo de clculo pode trabalhar se deve
forma de representao e armazenamento dos nmeros nele: um computador armazena os nmeros em
sistema binrio1 utilizando um determinado nmero de byte 2 dependendo do tipo de dado e do tipo de
computador que se empreguem. Isto faz que se limite o intervalo dos nmeros a representar e que se realiza o
trabalho sobre um conjunto discreto de nmeros. Por isso, resulta inevitvel que se produzam erros nas
1 Representando todos los nmeros por ceros y unos debido a ser un sistema digital-electrnico donde los estados bsicos de
todo circuito es encendido (1) o apagado (0)
2 byte o carcter es la mnima representacin en un computador, compuesto por n bits, por ejemplo, 7 u 8 bits conforman un
carcter cualquiera de los presentes en un computador: 7 bits dan lugar a 128 caracteres y 8 bits permiten representar 256
caracteres.
-
Gabriel Cremona Parma Teora y propagacin de errores
31 / 64
operaes numricas realizadas nestes dispositivos de clculos.
Estes erros numricos inerentes ao prprio sistema computacional podem ocorrer por:
- Converter os nmeros do sistema decimal ao sistema binrio tanto ao momento de ingress-os
ou de process-os.
- Ao ter que visualizar em algum dispositivo o resultado ou sada de um processo.
- Por ultrapassar a capacidade de representao de um nmero pequeno, caso em que o valor
resulta aproximado de zero.
- Por ultrapassar a capacidade de representao de um nmero grande, acionando um erro por
aproximao ao maior valor que pode representar o computador ou, no podendo continuar o
processo de clculo, dando uma mensagem de erro como resultado.
Isto termina ocasionando que se deva trabalhar com a aritmtica de dgitos finitos o que pode causar
que certos feitos tomados como certos, no o sejam [LEYVA&SILVA, 2002]. Nesta ordem de coisas, a
aritmtica de dgitos finitos leva em geral a resultados aceitveis, mas existem casos em que no assim;
virtualmente qualquer operao pode ter seus casos problemticos, mais os mas usuais so os seguintes:
- Diviso de nmeros prximos a zero
Como exemplo, considere-a funo e = 1/x, a que no est definida para o valor de x = 0,
mas sim quando x0. medida que se calcula com valores mas prximos a zero, o
resultado da funo vai crescendo, at que em algum momento, os 8 dgitos da calculadora
no sejam suficiente para sua representao, superando ento a capacidade de clculo e
representao de nmeros grandes da calculadora, computador ou baco.
- Multiplicao por nmeros grandes:
Este caso basicamente similar ao caso anterior pelas mesmas razes.
- Soma de nmeros de distinta ordem de magnitude:
Por exemplo, suma-se naturalmente 1 a 109 e se obter 1.000.000.001, mas ao realizar este
clculo com uma calculadora, o resultado ser 109; o que acontece pois o resultado tem
mais cifras do que a calculadora pode dirigir, e resolve desta forma pois um valor resulta
insignificante frente ao outro. Para resolver isto, deve-se primeiro somar os nmeros de
ordem semelhante pois assim pode se estar aproximando da ordem de magnitude do nmero
maior.
- Subtrao de nmeros quase iguais:
Isto ocasiona problemas pois o resultado muito prximo a zero e as calculadoras tm uma
capacidade limitada para representar nmeros pequenos, usualmente, de 10-99, Quando o
resultado menor a este valor. Arredonda-se a zero, entretanto o valor verdadeiro pode ser
distinto a zero e constar de vrias cifras e ainda representar seu resultado como nulo.
A perda de cifras significativas devido ao erro de arredondamento do instrumento de clculo pode
evitar-se ou minimizar-se reformulando o problema para evitar estas situaes.
-
Gabriel Cremona Parma Teora y propagacin de errores
32 / 64
10.1 Aritmtica Finita
J foi indicado que a aritmtica finita sozinho uma forma de representar os nmeros em um dispositivo eletrnico de clculo e simular sua aritmtica. Para isso, utilizam um subconjunto finito, relativamente pequeno, dos nmeros reais para representar o domnio completo deles. Este conjunto, que solo contm nmeros racionais [ASMAR, 1999] chamado conjuntos de nmeros de ponto flutuante ou conjunto de nmeros de mquina em ponto flutuante ou simplesmente conjunto de ponto flutuante. Tambm existe outro conjunto de nmeros para o computador, o conjunto dos nmeros inteiros, que no esto sendo considerados aqui por no ser til para o clculo com nmeros reais.
Assim definido, segundo ASMAR [1999], cada nmero neste conjunto de ponto flutuante representado mediante um nmero finito de dgitos (aritmtica finita) e que se pode representar da seguinte forma:
( ) etaaaN = .... 21 Aonde:
- N: o nmero a representar;
- : signo do nmero;
Pelo qual s apresenta dois valores possveis: =+1 =-1; - : o inteiro que indica a base do sistema numrico utilizado;
Em geral pode ser 2 (binrio), 8 (sistema octal), 10 (sistema decimal) o 16 (sistema hexadecimal);
- ai, com i = 1,2,3,....t: um inteiro positivo ou zero: 0 ai -1;
Estes inteiros positivos (0,1,2, -1) so chamadas dgitos na base . Dever-se- assegurar que a1 0 para uma escritura padronizada do nmero;
- (,a1,a2, at) : indica a mantissa o frao do nmero do ponto flutuante;
A mantissa expressa-se pela suma: ttaaa ...2
211 ++
Pode se indicar tambm a mantissa como: m = (,a1,a2, at); - O inteiro positivo t indica o nmero de dgitos na base que se usam para representar o
nmero de ponto flutuante, e chamado de preciso da mquina;
Em geral, para = 10, t pode ser 6 o 7 (simples preciso) para a representao de bytes de 7 u 8 bits; o 14 o 15 (dupla preciso do computador), podendo ser tambm
outros valores;
A representao em simples ou dupla preciso, depende da eletrnica do prprio computador e da linguagem de programao do mesmo;
- e um inteiro chamado expoente, que para certos valores L y U dependentes do computador-
resulta: L e U. comum que seja: L = -U L = -U 1.
-
Gabriel Cremona Parma Teora y propagacin de errores
33 / 64
Ou esta relacionada com a quantidade de bits que o processador pode dirigir para suas operaes (8, 16, 32, 64,128 bits como os mas usuais)
Um caso freqente nos computadores : L = -63 e, Ou = 64 para um total de 128 possveis expoentes (128 = 64+63+1 ; 27 = 128)
Estes distintos expoentes do lugar aos distintos nmeros do conjunto de nmeros de pontos flutuante valente se esteja trabalhando.
Em definitiva, e em apie ao expresso anteriormente, um nmero em ponto flutuante fica
caracterizado pelos parmetros:
- A base
- A preciso t (quantidade de dgitos representveis pelo computador)
- Os inteiros L e Ou e conseqentemente, o expoente e:
Que deve cumprir com a desigualdade: L e U, e A quantidade de expoentes e se pode calcular como: U L + 1
Tambm segundo ASMAR [1999], qualquer sejam os parmetros escolhidos, os conjuntos de ponto flutuante correspondentes compartilham as mesmas caractersticas qualitativas e a carncia de algumas das propriedades dos nmeros reais.
No conjunto de ponto flutuante, a quantidade de elementos ou nmeros diferentes que tem o conjunto
de valores se pode calcular segundo a expresso [ASMAR, 1999]:
( ) ( ) 1112 1 ++= LUV tF Quer dizer, que se dever utilizar uma quantidade VF valores de ponto flutuante (finito) para
representar todo o conjunto de valores do conjunto de nmeros reais infinito por definio- o que indica que
muitos nmeros reais estaro representados pelo mesmo valor do conjunto do ponto flutuante.
Por exemplo, para um conjunto de ponto flutuante F de base =2, preciso t = 3 (3 dgitos
significativos em notao padronizada) e, L = -1, U = 2, se ter:
( ) ( )[ ] 331112122 12 =++= FV Quer dizer, 33 nmeros diferentes (incluindo o zero) para representar todos os nmeros com 3 dgitos
de preciso em sistema binrio.
Neste conjunto, os nmeros que conformam o conjunto de ponto flutuante so da forma:
( ) etaaaN 2, 2321 = Sendo o sistema binrio composto por zeros e uns, resulta ento que os possveis valores das 3
-
Gabriel Cremona Parma Teora y propagacin de errores
34 / 64
posies da mantissa so:
- a1 = 1 (deve ser diferente de zero, por definio)
- a2 = {0,1}
- a3 = {0,1}
- e = {-1,0,1,2}
Pelo que as fraes positivas resultam:
- (,100)2 = (08/16)10
- (,101)2 = (10/16)10
- (,110)2 = (12/16)10
- (,111)2 = (14/16)10
Por combinao destes quatro nmeros bsicos e os expoentes, obtm-se o resto dos 32 valores, que
somado ao zero resultam nos 33 valores calculados inicialmente, que se representam na Figura 10. Estes
valores representados na figura so os seguintes:
1656;
1648;
1640;
1632;
1628;
1624;
1620;
1616;
1614;
1612;
1610;
168;
167;
166;
165;
164;0
Figura 10 Representao positiva, includo o zero, dos nmeros F
Adaptado: ASMAR, 1999
Alguns feitos observveis no conjunto dos nmeros de ponto flutuante F so:
- Todo nmero real x que ingressado no computador ou que resulta de um calculo,
substitudo, de ser possvel, por um nmero de ponto flutuante FL(x) (Figura. 10);
Existem regras para escolher tal nmero, que so as regras de arredondamento, pelo general o nmero mas prximo ao valor original x;
A diferencia |x fl(x)| o erro (absoluto) de arredondamento por ponto flutuante; - A distribuio dos nmeros de ponto flutuante no so uniformemente distribudos sobre a
reta real, pelo que o erro de arredondamento vai depender do valor de grandeza do nmero a
arredondar;
No exemplo, o valor mais pequeno FL = 1/4 e o mais grande FU = 7/2; Podem-se calcular estes extremos com as expresses:
FL = L-1 e, FU = (1 - t ) U
-
Gabriel Cremona Parma Teora y propagacin de errores
35 / 64
- Regio de underflow o sub-fluxo: ]0 ; FL [
- Regio de owerflow o sobre-fluxo: ]FU ; + [
- Intervalo do conjunto de nmeros de ponto flutuante: ]FL ; FU [
Por sua vez, devem-se definir as operaes aritmticas de soma (r), subtrao (t),multiplicao (q) e diviso (t) no conjunto de nmeros de ponto flutuante, ou simplesmente operaes de ponto flutuante, para poder simular as operaes aritmticas tradicionais, pois devido aos prprios problemas e efeitos da
aproximao pelas caractersticas deste conjunto de nmeros, algumas das propriedades conhecidas no so
aplicveis neste caso. Assim, sortes operaes se definem da seguinte forma:
- x r y = fl(fl(x) + fl(y)) - x s y = fl(fl(x) - fl(y)) - x q y = fl(fl(x) x fl(y)) - x s y = fl(fl(x) / fl(y))
Aonde +, -, x, / So as operaes aritmticas normais e fl(x) a representao de x no conjunto de
nmeros de ponto flutuante.
Cabe esclarecer caractersticas dos processos de arredondamentos so os mesmos aos j indicados previamente e que no todas as propriedades usuais das operaes aritmticas se cumprem no conjunto dos nmeros de pontos flutuante. Alm disso, a operao entre dois elementos do conjunto F de ponto flutuante pode dar um elemento no pertencente ao mesmo, devendo-se por isto gerar como resultado o valor mais prximo e do lugar aos erros de arredondamento por aritmtica de ponto flutuante.
Por sua vez, as propriedades da aritmtica infinita que no se cumprem na aritmtica de ponto
flutuante so:
- u r (v s w) (u r v) s w A propriedade associativa da soma no se cumpre;
- u q (v q w) (u q v) q w A propriedade associativa da multiplicao no se cumpre;
- u q (v s w) (u q v) s (u q w) A propriedade distributiva da multiplicao em relao soma no se cumpre.
Esta no aplicabilidade de algumas propriedades usuais na aritmtica clssica por causa dos
diferentes arredondamentos que se provocam em cada operao de ponto flutuante.
10.2 Erros de Arredondamento
J se indico que um nmero real no nulo, pode escrever-se na forma decimal normalizada da seguinte
forma:
-
Gabriel Cremona Parma Teora y propagacin de errores
36 / 64
( ) ettaaaax 10....... 121 = + , sendo e algum inteiro. Para simplificar o desenvolvimento deste tema que, supor-se que o conjunto de pontos flutuante F
de t-dgitos (preciso t) em base 10 (sistema decimal). Neste caso [ASMAR, 1999] a forma de ponto
flutuante do valor x, indicada como FL(x), obtm-se finalizando a mantissa de x depois de t-dgitos; ao que
pode ser desenvolvida de duas formas diferentes:
- Cortando ou truncando o nmero x, para o que neste caso:
( ) ( ) etaaaxfl 10.... 21 = , sem importar que represente ...1+ta - Arredondando o nmero x segundo regras fixas de arredondamento j conhecidas:
( ) ( )( ) ( ) 5:,100.110....50:,10....
11
21
121
>=
-
Gabriel Cremona Parma Teora y propagacin de errores
37 / 64
( ) ( )( )
( )( )
( )( )
tter
t
tt
tte
tt
tett
r
ett
et
ett
r
E
aaaaaa
aaaa
aaE
aaaa
aaaaaaaE
+
++
+
++
+
+
==