Propagação de Erros

35
Gabriel Cremona Parma – Teoría y propagación de errores 30 / 64 CAPITULO 3 – PROPAGAÇÃO DE ERROS 10 Representação de Números nos Computadores Usualmente ao realizar a análise matemática de um problema, supõe-se que se esta desenvolvendo o problema no domínio dos números reais, pelo que se trabalha sobre certos supostos ou características deste conjunto de números: - É infinito em ambos os extremos do conjunto; - É contínuo em todo o domínio; - Cada número pode ser representado por uma quantidade ilimitada de cifras significativas; - Os números podem representar magnitudes tão grandes ou tão pequenas como é necessário. Em geral, pode-se indicar que quando se trabalha no domínio dos números reais, se esta desenvolvendo o trabalho no âmbito da aritmética infinita, onde a representação dos números não é um problema. Este paradigma de solução só é possível no âmbito das resoluções teórica dos problemas, o qual geralmente permite chegar a um resultado prático, simples e aplicável ao mundo real. Mas revistam existir problemas que não podem ser resolvidos analiticamente de maneira exata, devendo-se aplicar procedimentos numéricos auxiliados por computadores ou calculadores; mesmo que ao precisar obter o resultado numérico final de qualquer expressão matemática exata. Mas ao trabalhar com estes dispositivos de cálculos, deve-se trabalhar com um subconjunto dos números reais que apresentam características especiais como: - É finito em ambos os extremos do conjunto - Não é contínuo em nenhum ponto do domínio - Cada número pode ser representado por uma quantidade limitada de cifras significativas - Os números não podem representar magnitudes tão grandes ou tão pequenas como é necessário Estas características do conjunto de números que um dispositivo de cálculo pode trabalhar se deve à forma de representação e armazenamento dos números nele: um computador armazena os números em sistema binário 1 utilizando um determinado número de byte 2 dependendo do tipo de dado e do tipo de computador que se empreguem. Isto faz que se limite o intervalo dos números a representar e que se realiza o trabalho sobre um conjunto discreto de números. Por isso, resulta inevitável que se produzam erros nas 1 Representando todos los números por ceros y unos debido a ser un sistema digital-electrónico donde los estados básicos de todo circuito es encendido (1) o apagado (0) 2 byte o carácter es la mínima representación en un computador, compuesto por n bits, por ejemplo, 7 u 8 bits conforman un carácter cualquiera de los presentes en un computador: 7 bits dan lugar a 128 caracteres y 8 bits permiten representar 256 caracteres.

description

Propagação de Erros

Transcript of Propagação de Erros

  • 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

    +

    ++

    +

    ++

    +

    +

    ==