Erros – Visão Geral

Propaganda
étodos
uméricos
Erros – Visão Geral
Prof. Erivelton Geraldo Nepomuceno
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
CENTRO FEDERAL DE EDUCAÇÃO
TECNOLÓGICA DE MINAS GERAIS
DIRETORIA DE PESQUISA E PÓS-GRADUAÇÃO
UNIVERSIDADE DE JOÃO DEL-REI
PRÓ-REITORIA DE PESQUISA
2017
Erros – Visão Geral
Durante as etapas de solução de um problema,
surgem várias fontes de erros que podem
alterar profundamente os resultados obtidos. É
de importância fundamental conhecer as causas
desses erros para minimizar as suas
consequências.
Erros – Visão Geral
1. Fontes de erros.
2. Erros absolutos e relativos.
3. Erros de arredondamento e truncamento nas
operações aritméticas de ponto flutuante.
Definição
Erro é a diferença entre o valor real e o valor
aproximado (calculado, medido, estimado, etc.) de
uma grandeza ou parâmetro.
A introdução de erros num determinado processo de
cálculo pode ter várias causas. Deve-se analisar quais são
essas causas e estudar mecanismos que permitam
determinar limites superiores para os erros obtidos no
final do processo de cálculo.
Fontes de Erros
▪ Erros de truncamento ou discretização

São, por definição, os erros que surgem quando se passa de
um processo infinito para um processo finito ou quando se
substitui um processo contínuo por um discreto. Por
exemplo, f(x) = sen (x)
x 2 n 1
x3 x5
x7

sin( x)    1
 x 

 ..., 0   
2n  1!
6 120 5040
4
0



n
À media que n aumenta, mais o valor da série se aproxima do
valor real.
É importante lembrar que os computadores realizam
somente as 4 operações básicas.
Fontes de Erros
▪ Erro na modelagem


Modelagem incorreta na qual a expressão matemática não
reflete perfeitamente o fenômeno físico.
Deve-se verificar o quanto os resultados finais são
sensíveis às alterações dos dados fornecidos. Mudanças
grandes devido a pequenas alterações nos dados são
sintomas de malcondicionamento do modelo.
▪ Simplificações (Idealizações)


Desconsiderar ou desprezar um ou mais parâmetros ou
termos para simplificação do modelo.
Exemplos: Em um modelo que deseja saber o tempo de queda
de um objeto, desconsiderar a força de resistência do ar.
▪ Erro nos dados

Implica em erros nos parâmetros dos modelos (pouca
exatidão), ocasionando erros na saída.
Fontes de Erros
▪ Erro grosseiro


Erros na elaboração do algoritmo (implementação e
digitação).
Executar o programa, cujo resultado seja conhecido, ajuda a
remover erros, mas demonstra, apenas, que o programa está
correto para aquela massa de dados.
▪ Erro de arredondamento


Arredondamento (supressão de uma ou mais casas decimais)
de dados e constantes.
Número decimal qualquer não pode ser representado
exatamente em um computador, por que ele tem que ser
convertido para a base 2 e armazenado em um número finito
de bits.
Medida do Erro
O erro cometido no cálculo de um resultado pode ser
medido de várias maneiras, dentre as quais se destacam:
Erro Absoluto
EAx  x  xn
Erro Relativo
ERx 
EAx x  xn

x
x
Sendo o valor obtido por uma técnica numérica xn e o real x.
1.
Na pratica para os valores dos erros absoluto e relativo usa-se o módulo
pois, para a maioria dos problemas, não e relevante saber se o erro foi
cometido por falta ou por excesso.
2.
O erro relativo, é adimensional e muitas vezes representado sob a forma
de percentagem. Note-se também que ele dá uma maior informação
quanto a precisão da aproximação que o erro absoluto.
Aritmética de Ponto Flutuante
Na representação dos números em um sistema computacional:



Existe um modo de armazená-los em uma forma padronizada
para que as operações possam ser efetuadas de maneira mais
organizada, dentro da estrutura de funcionamento da máquina.
Uma vez que a capacidade de armazenar dados de qualquer
equipamento é limitada, isso faz com que calculadoras e
computadores possuam um número finito de dígitos para
representar os números.
O sistema mais utilizado pelos computadores modernos é o
chamado sistema de aritmética de ponto flutuante (APF), tanto
para a representação dos números quanto para a execução das
operações.
Aritmética de Ponto Flutuante
▪
Representação com ponto fixo: 12,34.
▪
Com ponto flutuante: 0,1234x102.
▪
Forma geral de representação de um número:
di's são os dígitos da parte fracionária, tais que 0  di  B -1; d1
 0, B é o valor da base, p é o número de dígitos e e é um
expoente inteiro.
▪
Um número de ponto flutuante tem três partes: o sinal, a parte
fracionária chamada de significando ou mantissa e o expoente.
▪
As três partes tem um comprimento total fixo que depende do
computador e do tipo de número: precisão simples, dupla ou
estendida.
Dado um número N, sua representação em APF é feita por truncamento ou
arredondamento. Este número não pode ser representado neste sistema se o expoente
estiver fora dos limites. Nestes casos, os erros são chamados de undeflow e overflow .
Aritmética de Ponto Flutuante
▪ Computador hipotético
▪
Computador hipotético com dois dígitos (p = 2), base B = 2 e
expoente na faixa -1 e  2.
Número é normalizado: d1  0
▪
Considerando a conversão de binário para decimal
▪
Únicos números positivos representáveis:
▪
Aritmética de Ponto Flutuante
▪ Números discretos
▪
O zero é representado de uma forma especial: todos os
dígitos di do significando e do expoente são nulos.
▪
Os números de ponto flutuante são discretos e não contínuos
como um número real definido na matemática.
▪
O conceito de sempre existir um número real entre dois
números reais quaisquer não é válido para os números de
ponto flutuante. A falha deste conceito tem consequência
desastrosa, veja:
Os dois números são
representados igualmente
como :0.102x20. Tanto 0,610
quanto 0,710 são vistos como
0,510 pelo computador.
Esta e uma grande causa de
erro de arredondamento
nos processos numéricos.
Aritmética de Ponto Flutuante
▪ Formato de ponto flutuante
▪
▪
▪
A forma de representação de um número de ponto flutuante
depende do fabricante do computador.
Um mesmo programa implementado em computadores que
utilizam formatos diferentes podem fornecer resultados
diferentes.
Formato proposto pelo IEEE (Institute of Electrical and
Electronics Engineers):
overflow e undeflow.
Assim, cuidado com a precisão utilizada na definição das variáveis !
Aritmética de Ponto Flutuante
▪ Precisão das operações numéricas
▪
Seja o computador hipotético com dois dígitos (p = 2), base B
= 10, e expoente na faixa -5  e  5: .d1d2 x 10e.
▪
Quando dois números são somados ou subtraí-dos, os dígitos
do número de expoente menor devem ser deslocados de modo
a alinhar as casas decimais.
▪
O resultado é arredondado para dois dígitos para caber na
mantissa de tamanho p = 2.
▪
O expoente é ajustado para normalizar a mantissa (d1  0).
Aritmética de Ponto Flutuante
▪ Exemplo: somar 4,32 e 0,064
▪
▪
▪
▪
Os números são armazenados no formato especificado.
As casas decimais são alinhadas.
A operação de adição é efetuada.
O resultado é arrendondado para dois dígitos
▪
O resultado da adição foi 4,4 em vez de 4,384.
Aritmética de Ponto Flutuante
▪ Exemplo: subtrair 371 de 372
▪
▪
▪
▪
Os números são armazenados no formato especificado.
Resulta em um mesmo valor.
A operação de subtração é efetuada.
O resultado é convertido para zero
▪
▪
A subtração deu 0 em vez de 1.
A perda de precisão quando dois números aproximadamente
iguais são subtraídos é a maior fonte de erro nas
operações de ponto flutuante.
Aritmética de Ponto Flutuante
▪ Exemplo: multiplicar 1234 por 0,016
▪
Os números são armazenados no formato definido.
A operação de multiplicação é efetuada utilizando 2p = 4
dígitos na mantissa.
O resultado é arrendondado para dois dígitos e normalizado
▪
O resultado da multiplicação foi 19 em vez de 19,744.
▪
▪
Aritmética de Ponto Flutuante
▪ Exemplo: multiplicar 875 por 3172
▪
▪
▪
▪
Os números são armazenados no formato indicado.
A operação de multiplicação é efetuada utilizando 2p = 4
dígitos.
O resultado é arrendondado, normalizado e como o expoente e
= 7 > 5 então ocorre um overflow
A multiplicação resultou em um valor maior que esse
computador hipotético pode representar.
Aritmética de Ponto Flutuante
▪ Exemplo: dividir 0,00183 por 492
▪
Os números são armazenados no formato especificado.
A operação de divisão é efetuada utilizando 2p = 4 dígitos na
mantissa.
O resultado é arrendondado para dois dígitos e normalizado
▪
O correto é: 0.3719512195121951 x 10-5
▪
▪
Aritmética de Ponto Flutuante
▪ Exemplo: dividir 0,0064 por 7312
▪
▪
▪
Os números são armazenados no formato definido.
A divisão é efetuada utilizando 2p = 4 dígitos na mantissa.
O resultado é arrendondado, normalizado e sendo o expoente
e = -6 < -5 então ocorre um underflow
▪
O resultado da divisão foi um valor menor que esse
computador hipotético pode armazenar.
Aritmética de Ponto Flutuante
▪ Erro de conversão de base
▪
▪
▪
▪
Um número é fornecido ao computador na base 10 e
armazenado na base 2.
Números inteiros têm representação binária exata 4410 =
1011002.
Número com decimais pode resultar em número binário com
infinitos dígitos (0,410 = 0,01100110...2).
Os dígitos têm que ser arredondados para armazenamento em
formato de ponto flutuante.
Efeitos Numéricos
Existem certos efeitos numéricos que contribuem para que o
resultado obtido não seja preciso. Alguns dos mais frequentes são:
A normalização muda
este resultado para:
0.5031420000x10−2.
Assim os quatro zeros
no final da
mantissa não têm
significado e perde-se
4 casas decimais. É
possível
obter um resultado
mais preciso
considerando a
identidade:
Efeitos Numéricos
Efeitos Numéricos
▪
▪
Instabilidade numérica
▪
Os erros podem ir se acumulando durante o processo.
▪
Erros intermediários podem anular-se: Estabilidade.
▪
Instabilidade: os erros intermediários têm um influência muito
grande no resultado final.
Malcondicionamento
▪
Em um problema mal condicionado, uma leve variação nos dados
de entrada pode levar a soluções completamente diferentes.
▪
Isso é muito importante quando os dados são provenientes de
medidas, observações, etc. e sujeitos a erros.
Referencias Bibliográficas
1.
Aderito Luis Martins Araujo , Analise Numerica Engenharias
Mecânica e de Materiais.
2. Frederico Ferreira Campos Filho, Algoritmos Numéricos.
Download