Matemática Computacional
Erros: Noções Básicas
Prof. Dr. A. Riker
[email protected] Noções Básicas sobre Erros
■ Representação de Números
► Não é raro ter situações onde os resultados finais
estejam distantes do resultado esperado
► Isto pode ocorrer mesmo que todos os cálculos
estejam feitos corretamente
Noções Básicas sobre Erros
■ Representação de Números
► Tais erros podem ser causados também pela limitação
do computador em representar e operar certos números
► Exemplo: O cálculo da área A de uma circunferência de
100m de raio pode nos levar aos seguintes resultados:
a) A = 31400 m2
b) A = 31416 m2
c) A = 31415.92654 m2
► Qual a razão disso?
Noções Básicas sobre Erros
■ Representação de Números
► Como pi é um número irracional, não é possível
representá-lo com um número finito de dígitos
► Logo, um computador terá sempre um erro de
precisão ao representar um número irracional
► Porém, esse problema de precisão não ocorre
apenas com números irracionais
Noções Básicas sobre Erros
■ Representação de Números
► Existe imprecisão ao manipular números com muitos
dígitos, mesmo que sejam racionais
► Esta imprecisão depende
●
Da base
●
Do número máximo de dígitos usados na representação
► Um computador opera, geralmente, na base binária
Noções Básicas sobre Erros
■ Representação de Números
► Um número pode ter representação finita na base
decimal, porém infinita na base binária
► Exemplo: (0.125)10 = (0.00011001100110011...)2
► Isso mostra que um computador que opera no
sistema binário irá armazenar uma aproximação do
número 0.125
Noções Básicas sobre Erros
■ Representação de Números
► Ponto Fixo:
●
Convenciona-se um número de bytes para a parte inteira
e para a parte decimal
●
Ex.: Cada número é representado por 2 bytes
– Definindo 1 byte para os inteiros
– Poderíamos representar inteiros de -127 a 127
– Poderíamos representar a parte fracionária até 1/255
Noções Básicas sobre Erros
■ Representação de Números
► Ponto Flutuante:
●
Neste modelo, quebramos o número em:
– Mantissa
– Expoente
●
Exemplo com 2 bytes:
– 11 bits para mantissa
– 5 bits para expoente
– Podemos representar inteiros de -1024 a +1023
– A menor parte fracionária seria 10 -16
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► O número real r será representado por
e
±(0. d 1 d 2 ... d t ) x B
●
B é a base de operação
●
t é o número de dígitos da mantissa
●
e é o expoente
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo
●
Considere uma máquina onde:
B= 10; t = 3; – 5 <= e <= 5
●
O menor número representado nessa máquina é:
0.100 x 10ˆ-5
●
O maior número é:
0.999 x 10ˆ5
●
Ao tentar representar um número fora do intervalo de expoente,
ocorre overflow ou underflow
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Em qualquer máquina, apenas um subconjunto dos reais
são representados com exatidão
► Portanto, a maioria dos números reais são representados
através de truncamento ou arredondamento
► Erro absoluto = |x – x’|, onde x é o valor exato e x’é o
valor aproximado
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de truncamento
●
Seja B = 10; t = 4; – 1 <= e <= 3
●
Como ficaria a representação do número 234.57?
------------------------------------------------------------------
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de truncamento
●
Seja B = 10; t = 4; – 1 <= e <= 3
●
Como ficaria a representação do número 234.57?
------------------------------------------------------------------
●
Como o max de dígitos é 4, ao fazer truncamento:
x=0.23457 * 10ˆ3 x=0.2345 * 10ˆ3 (truncado)
●
O erro absoluto de truncamento = 0.07
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Técnica de Arredondamento Simétrico
●
Se o valor do algarismo que fica na t+1-ésima casa
decimal for menor do que 5, despreza-se os algarismos
restantes após t+1
●
Se for maior ou igual a 5, soma-se 1 ao algarismo na t-
ésima casa decimal e desprezam-se os algarismos
restantes
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de Arredondamento
●
Seja B = 10; t = 3; – 4<= e <=4
●
x = 1.25
●
x = 10.053
●
x = – 238.15
●
x = 2.71828
●
Quais os arredondamentos destes números?
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de Arredondamento
●
Seja B = 10; t = 3; – 4<= e <=4
●
x = 1.25 x’= 0.125 * 10ˆ1
●
x = 10.053 x’= 0.101 * 10ˆ2
●
x = – 238.15 x’= – 0.238 * 10ˆ3
●
x = 2.71828 x’= 0.272 * 10ˆ1
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de Arredondamento
●
Seja B = 10; t = 3; – 4<= e <=4
●
x = 1.25 x’= 0.125 * 10ˆ1
●
x = 10.053 x’= 0.101 * 10ˆ2
●
x = – 238.15 x’= – 0.238 * 10ˆ3
●
x = 2.71828 x’= 0.272 * 10ˆ1
●
Quais os erros absolutos de arredondamento?
Noções Básicas sobre Erros
■ Aritmética de ponto flutuante
► Exemplo de Arredondamento
●
Seja B = 10; t = 3; – 4<= e <=4
●
x = 1.25 ; x’= 0.125 * 10ˆ1 |x – x’| = 0
●
x = 10.053; x’= 0.101 * 10ˆ2 Erro |x – x’| = 0.047
●
x = – 238.15; x’= – 0.238 * 10ˆ3 |x – x’| = 0.15
●
x = 2.71828; x’= 0.272 * 10ˆ1 |x – x’| = 0.00172
Noções Básicas sobre Erros
■ Propagação de erros com ponto-flutuante
► Ao realizar uma operação aritmética, poderá ser
gerado um erro
► Exemplo: Obter (i) x + y; (ii) x * y
Dados: x = 0.937 * 10ˆ4; y = 0.1272 * 10ˆ2
B = 10; t =4
Resp. (i): Truncado: 0.9382 * 10^4; Arredondado: 0.9383 * 10 ^4
(ii): Truncado: 0.1191 * 10^6; Arredondado: 0.1192 * 10^6
Noções Básicas sobre Erros
■ Exercício 1: Represente os seguintes números
usando ponto-flutuante. Caso possível, aplique o
truncamento e o arredondamento e encontre o erro
absoluto.
■ Dados: B=10; t = 3; – 3<= e <=3
a) 235.89 c) 0.00001
b) -1282 d) 0.021
Bibliografia
■ Cap. 1