___ I. - Representação de Números e ____
Erros de Arredondamento

Uma vez que a Análise Numérica se interessa especialmente no estudo da aproximação de problemas, existem erros associados a essa aproximação, que podemos classificar em diferentes tipos:

  • ERROS INERENTES
    São os erros resultantes dos dados. Ao resolvermos um problema, se os dados que possuímos estiverem afectados de erros, esses erros transmitem-se aos resultados que obtemos.

  • ERROS do MÉTODO
    Um outro tipo de erros, que deriva da utilização de um determinado método, que aproxima o problema.

  • ERROS COMPUTACIONAIS
    São os erros específicos resultantes da utilização de uma máquina finita. Ainda que os dados sejam correctos e que o método seja exacto, certas operações efectuadas pela máquina não podem ser executadas com exactidão, gerando-se este tipo de erros.


    Representação em Virgula Flutuante

    Começamos por ver como representamos um qualquer número real.
    Um número real é uma classe de equivalência de sucessões de Cauchy de racionais. Como tal, pode admitir várias representações, mas normalmente tomamos como representante dessa classe uma sucessão de racionais que são múltiplos de uma potência de 10 (base decimal):

    Notação Científica:

    x = ± 0. a1 a2 ... an ... × 10t
    No caso da notação científica, um número representa-se através do sinal, da mantissa e do expoente, na base decimal. Os dígitos variam entre 0 e 9, mas o primeiro dígito da mantissa deve ser diferente de zero (o número zero é representado à parte).

    Mas, a menos que estivessemos na posse de uma máquina com memória infinita (... máquina de Turing), a representação de um número deve ser finita, pelo que, consequentemente somos obrigados a considerar um número finito de dígitos na mantissa e uma limitação nos valores dos expoentes admitidos.

    Virgula Flutuante:
    VF(10, n, t1, t2) é o conjunto dos números

    x = ± 0. a1 a2 ... an × 10t

    (onde t varia em { t1, ..., t2} ) e que inclui o zero.

    Overflow: Acontece se o valor do expoente t é superior a t2.
    Underflow: Acontece se o valor do expoente t é inferior a t1.





    Tipos de Arredondamento

    Dado um número, representado em notação científica

    x = ± 0. a1 a2 ... an an+1 ... × 10t
    podemos considerar dois tipos de arredondamento:

  • Arredondamento por Corte
    fl(x) = ± 0. a1 a2 ... an × 10t

  • Arredondamento Simétrico
    fl(x) = ± 0. a'1 a'2 ... a'n × 10t'

    Os dígitos a'i coincidem com ai e o expoente t' coincide com t, se an+1 < 5.
    Se an+1 > 5 então os dígitos a'i e o expoente t' resultam da representação da soma de
    0. a1 a2 ... an × 10t com 0.1 × 10t - n+1.

    Erro Absoluto e Erro Relativo

    Consideremos x um valor exacto e x~ um valor aproximado de x. Definimos:

    Erro : ex= x - x~
    Erro Absoluto : | ex | = | x - x~ |
    se x=/=0
    Erro Relativo : | x | = | x - x~ | / | x |

    Unidade de Arredondamento

    Como em cada operação são efectuados arredondamentos, convém estabelecer um majorante u para esses erros, de forma que

    | arr | = | x - fl( x ) | / | x | < u

    Obtemos:

  • No caso de arredondamento por corte : u = ß1- n
  • No caso de arredondamento simétrico : u = ½ ß1- n

    onde ß = 10 é a base.


    Condicionamento e Estabilidade

    Referimos brevemente duas noções importantes do ponto de vista numérico:

    Definição:
    Um problema diz-se Bem Condicionado se pequenos erros relativos nos dados produzem pequenos erros relativos no resultado. Caso contrário, diz-se Mal Condicionado.

    Definição:
    Um algoritmo é Computacionalmente (ou Numericamente) Estável se a pequenos erros relativos dos dados, e a pequenos valores da unidade de arredondamento, corresponder um pequeno erro relativo nos resultados. Caso contrário, diz-se Computacionalmente Instável.

    Observações:
    1) A noção de "pequeno" pode parecer ambígua, e depende da exigência de rigor pretendida nos resultados. Normalmente deve ser encarada como uma medida comparativa entre os diversos algoritmos disponíveis. Assim, ao obtermos para um determinado algoritmo

    |  resultados | < M ( u + max { |  dados | } )
    para uma certa constante M > 0, podemos dizer que ele é estável, e através dessa constante podemos comparar a sua estabilidade com outros.

    2) É claro que um algoritmo implementado num problema mal condicionado nunca poderá ser estável.