Métodos numéricos/Aritmética computacional: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
m Revertidas edições por 66.110.125.187, para a última versão por Tca
Linha 6:
 
=== Representação em vírgula flutuante ===
__ 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.
 
== Operações e erros em vírgula flutuante ==