Buscar

Aula2 e 3 - Representacao_Erros

Prévia do material em texto

UFRN
Universidade Federal do Rio Grande do Norte
Escola de Ciências e Tecnologia
Representação da Informação 
e Erros de Arredondamento
ECT1303 – Computação Numérica
• Manter o telefone celular sempre 
desligado/silencioso quando estiver em 
sala de aula;
• Nunca atender o celular na sala de aula.
2
Objetivos
• Introduzir os conceitos de exatidão e precisão, bem como 
de algarismos significativos;
• Discutir a representação em ponto flutuante nos 
computadores ;
• Definir os conceitos de truncamento e arredondamento;
• Analisar os erros decorrentes do armazenamento de 
números nos computadores.
3
Erros
• Solução de problema em engenharia
– Modelo matemático
– Métodos de resolução do modelo
• Se possível, obtemos soluções analíticas
• Contudo, as vezes o modelo não possui uma 
solução analítica ou esta é de dificil solução
– Utilizar métodos numéricos (com o possivel auxilio de 
equipamentos eletrônicos: calculadora, computador)
4
Problema
Fisico
Modelo
Matemático
Solução
Modelagem Resolução
Erros
• Portanto, a solução de um determinado problema 
apresenta erros nas duas fazes:
5
Modelagem Resolução
Erros na fase de modelagem
• Raramente se tem uma descrição matemática 
perfeita do sistema físico 
– A realidade é matemática?
– Várias simplificações
• Relatividade Geral → Gravitação de Newton
• Erros nos dados de entrada
• Ex: determinar a altura de um edifício com uma 
bolinha de metal e um cronometro
– Desconsideramos velocidade do vento, resistência do ar, 
imprecisão do cronometro…
6
Erros na fase de resolução
• Dois tipos básicos:
7
Erros de arredondamento
Oriundos da forma de representação numérica em 
computadores (só podem representar quantidades 
com número finitos de algarismos).
Erros de truncamento
Resultam do uso de uma aproximação no lugar de 
um procedimento matemático exato.
Algarismos Significativos
• Quais as marcações dos ponteiros maiores dos 
altímetros?
8
Algarismos Significativos
Algarismos significativos de um número
são aqueles que podem ser usados com confiança.
Correspondem ao número de algarismos corretos de 
uma medida mais um algarismo estimado!
9
Algarismos Significativos
• Quais as marcações dos ponteiros maiores dos 
altímetros?
9,2 6,58
10
Algarismos Significativos
• Os zeros nem sempre são contados como algarismos 
significativos:
– Podem indicar somente localização da vírgula!
Exemplos:
- 0,000561, 0,00561 e 0,0561 têm 3 algarismos significativos
- 31.500 pode ter 3, 4 ou 5 algarismos significativos 
• Para evitar confusão, é usada notação científica.
Exemplos:
- 5,61x10-1 possui 3 algarismos significativos
- 3,150x103 possui 4 algarismos significativos 
11
Algarismos Significativos
• Duas observações importantes:
Algumas grandezas não podem ser representadas 
exatamente usando um número finito de algarismos 
significativos:
O Engenheiro/Cientista deve saber com quantos 
algarismos significativos ele deve buscar uma solução 
numérica para seu problema!
12
Exatidão e Precisão
• Ao cobrar pênaltis, um jogador acertou 10 vezes 
consecutivas o travessão. Ele foi exato, preciso, os dois 
ou nenhum dos dois?
13
Exatidão e Precisão
• Os termos exatidão e precisão relacionados a cálculos e 
medições:
Exatidão (Acurácia)
Quão próximo o valor calculado 
ou medido está do verdadeiro
Precisão
Quão próximo cálculos ou 
medições sucessivas estão uma 
das outras
14
Exatidão e Precisão
15
Representação em Ponto Flutuante
• Já foi visto em IF a representação de números inteiros na 
base 2. E quanto aos números reais?
Como o computador armazena o número π?
• É necessário saber converter um número real entre 
bases!
Conversões para a base 10:
195210 = (1x10
3 + 9x102 + 5x101 + 2x100)10
23,9610 = (2x10
1 + 3x100 + 9x10-1 + 6x10-2)10
110012 = (1x2
4 + 1x23 + 0x22 + 0x21 + 1x20)10
10,1012 = (1x2
1 + 0x20 + 1x2-1 + 0x2-2 + 1x2-3)10
16
• Conversão da parte fracionária → decimal para binário
Considere o número decimal 
em que deseja-se obter a representação binária
Representação em Ponto Flutuante
a) Multiplique o número decimal por 2. A parte inteira 
do resultado é o bit b1. 
b) Descarte a parte inteira do número real obtido, 
ficando somente a parte fracionária.
c) Repita a) para obter os bits sucessivos b2, b3, ..., até 
que obtenha parte fracionária nula ou precisão 
desejada 
17
Exemplos
Encontrar o valor na base 2 dos seguintes números na base 10:
34
0,75
4,125
3,8
33,023
3,8 não tem representação exata na base 2!
Erros computacionais de 
arredondamento!
18
• Representação em ponto flutuante normalizada:
é chamado de mantissa
é a base do sistema de numeração
é o expoente, inteiro, expresso em decimal e 
armazenado na base do sistema como inteiro com sinal
p é a precisão da representação
em que: 
Representação em Ponto Flutuante
19
• Representação em ponto flutuante normalizada:
Representação em Ponto Flutuante
Sistemas de Numeração em Ponto Flutuante
é a base, p é a precisão, m e M são os valores 
mínimos e máximos que o expoente pode assumir.
20
Exemplos
Encontrar o valor na base 10 dos seguintes números que 
estão no sistema F(2,3,-3,3):
-0,101x22
0,100x2-3
-0,110x2-1
0,111x23
Quantos bits são necessários para representação no sistema 
F(2,3,-3,3), sabendo que um bit é usado como sinal da 
mantissa e outro como sinal do expoente? 
21
Exemplos
Quais números podem ser representados no sistema
F(2,3,-3,3)? 
22
Note que as mantissas possíveis, em módulo, são: 
0,100 = 0,510 0,101 = 0,62510 0,110 = 0,7510 0,111 = 0,87510
e que os expoentes variam de -3 a 3:
Representação em Ponto Flutuante
23
Representação em Ponto Flutuante
– Menor real positivo representado em
– Maior real positivo representado 
24
Qual o menor número positivo representado no sistema F(2,3,-3,3)?
Representação em Ponto Flutuante
0 1 1 1 1 0 0
21
Sinal do 
número
Sinal do 
expoente expoente mantissa
20 2-1 2-2 2-3
25
Representação em Ponto Flutuante
• Números reais máximos e mínimos que podem ser 
representados usando um sistema:
0 xm-xm xM-xM
Intervalo de 
representação
Intervalo de 
representaçãounderflow
overflowoverflow
26
Representação em Ponto Flutuante
0 0,0625-0,0625 7-7
Intervalo de 
representação
Intervalo de 
representaçãounderflow
overflow overflow
• Observações importantes
– Existe um intervalo limitado de quantidades que podem ser 
representadas num sistema em ponto flutuante!
– Existe apenas um número finito de números reais que podem 
ser representados num determinado sistema.
– O intervalo de representação aumenta conforme o módulo dos 
números cresce.
F(2,3,-3,3):
27
Exemplos
Represente os números 0,7510 e 1,4510 no sistema F(2,3,-3,3)
dos exercícios anteriores.
0,75
x2
1,50
0,50
x2
1,00
0,45
x2
0,90
0,90
x2
1,80
0,80
x2
1,60
0,60
x2
1,20
0,20
x2
0,40
Resolvendo 0,7510 :
Parte Fracionária 
Resolvendo 1,4510: Parte Fracionária 
O que fazer nesse caso?
28
Truncamento e Arredondamento
Truncar
Significa abandonar todos os dígitos menos
significativos a partir de uma determinada posição.
Exemplo:
Truncar (1,01110 ...)2 para 3 dígitos significativos.
Nesse caso, os dígitos em vermelho, a partir do 4º
dígito (incluso), seriam abandonados
(1,01110 ... )2
O número após o truncamento será:
1,012 = 0,101x2
1
29
Truncamento e Arredondamento
Arredondar
Significa truncar todos os dígitos menos significativos a
partir de uma determinadaposição, de forma a torná-lo
mais próximo do número original.
Regra para arredondamento em d casas de números 
representados em binário: 
- Se bd+1 for 0: x’ já está na forma arredondada
- Se bd+1 for 1: adiciona-se 1 bd, tornando x’ = 
b1b2...(bd+1)
Trunca-se x na posição d: x’ = b1b2...bd
30
Truncamento e Arredondamento
Exemplo:
Arredondar (1,01110 ...)2 para 3 dígitos significativos
Nesse caso, os dígitos em vermelho serão excluídos e
será adicionado 1 ao dígito em azul, pois o 1º dígito em
vermelho é igual a 1
(1,01110 ... )2
O número após o arredondamento será:
1,102 = 0,110x2
1
31
Representação em Ponto Flutuante
• Voltando ao exercício:
Represente o número 1,4510 no sistema F(2,3,-3,3)
Usando truncamento
O arredondamento gerou um 
ERRO menor
Usando arredondamento
1,012 = 0,101x2
1
= 1,2510
1,102 = 0,110x2
1
= 1,5010
32
Definições de Erro
No sentido estrito, erro verdadeiro (E) é definido como:
E = valor verdadeiro - aproximação
onde o Valor Verdadeiro = aproximação + E!
Define-se:
33
Exemplo
Calcular os erros relativos na representação de 1,4510 no sistema 
F(2,3,-3,3), considerando o truncamento e o arredondamento.
Truncamento Arredondamento
34
Arredondamento de números da base 10
Arredondar na base 10 para k casas
Exemplo: Arredondar para 3 os números que estão com 5
dígitos significativos:
(2,3555)10 - (0,23401x10
3)10 - (0,99144)10 -
(0,99971)10
Respostas: 2,36 – 0,234x103 – 0,991 – 1,00
35
Epsilon (ε) de um Computador
Considere um computador que manipula números reais a partir de um 
sistema . Qual o erro relativo máximo cometido na 
representação de um real –xM ≤ x ≤ xM nesse sistema?
Vejamos o caso do sistema F(2,3,-3,3) já estudado:
Para um mesmo expoente, os incrementos ∆x são constantes! 
Se definirmos o erro:
Então, para cada expoente, Er será máximo quando x for o menor real 
representado! 
0,031250
0,031250
0,031250
0,031250
1,
01,
0
1,
0
1,
0
36
Exemplo
Calcular os erros relativos máximos no sistema F(2,3,-3,3)
para os expoentes -2 e 3.
Para o expoente -2: Para o expoente 3:
Iguais! Coincidência?
37
Epsilon (ε) de um Computador
Epsilon (ε) de um sistema em ponto flutuante
Representa o maior erro relativo causado pela
representação de um número real num sistema em
ponto flutuante
Para o sistema F(2,3,-3,3):
38
Aritmética Flutuante
Os erros de arredondamento causados pela representação em 
computador tendem a se propagar e, algumas vezes, a se 
amplificar ao longo de cálculos efetuados.
Exemplo com uma mantissa de 4 algarismos:
Note uma ligeira perda de precisão com relação ao 
valor exato desta operação que é 1.
1
3
 3 (0,3333100) (0,3000101)
 0,9999100
39
Multiplicação e divisão
A multiplicação e a divisão são particularmente simples em
aritmética flutuante devido à lei dos exponenciais.
Exemplo com uma mantissa de 4 algarismos:

(0,4035106) (0,1978101)  0,0798123105
 0,7981104
40
Adição e subtração
É preciso ser prudente com a adição e subtração!
 Primeiramente, adicionamos zeros à mantissa do número 
tendo o menor expoente de modo que os dois expoentes 
sejam iguais.
 Em seguida, efetuamos a operação normalmente e 
colocamos o resultado em notação flutuante
 Exemplo com uma 
mantissa de 4 algarismos:

0,4035106  0,1978104 
0,4035106  0,001978106 
0,405478106 
0,4055106
41
Operações de risco
 Algumas operações são particularmente sensíveis aos 
erros de arredondamento.
 Estas operações devem ser evitadas sempre que 
possível!
42
Operações de risco
Adição de números com ordens de 
grandeza muito diferentes.
 Exemplo com uma mantissa de 4 algarismos:
 A lei dos expoentes e a aritmética flutuante fazem com que 
o número pequeno desapareça completamente frente ao 
grande.

4000 0,001 0,4000104  0,1000102
 0,4000104  0,0000001104
 0,4000001104
 0,4000104
43
Operações de risco
Subtração de números quase iguais.
 Exemplo com uma mantissa de 10 algarismos:
 Os quatro zeros no final da mantissa não têm significado e
assim perdemos 4 casas decimais.
2-
2
22
10 000,50314200
100000503142,0
10 570,9937303410 990,99378065
98759876




44
Operações de risco
Subtração de números quase iguais.
 Podemos obter um resultado mais preciso? SIM!
 Nem sempre existe uma maneira trivial de resolver tais erros
de aritmética flutuante. 

9876  9875 
1
9876  9875
 0,5031418679104
45
Atividade
Considere a função:
a) Use o SciLab para calcular o valor de f(x) para x = 10, x = 1000 
e x = 100000.
b) Use o sistema decimal com 6 algarismos significativos para 
calcular f(x) para os valores de x indicados na letra (a). 
Compare os resultados com os valores obtidos na letra (a).
c) Transforme f(x) multiplicando a função por . 
Usando a nova forma, calcule novamente o valor de f(x) para 
os três valores de x no sistema decimal com 6 algarismos 
significativos. Compare os resultados com aqueles obtidos na 
letra (a).

f (x)  x( x  x 1)

x  x 1
x  x 1
46
Atividade
Computadores e softwares atuais usam o padrão IEEE 754-2008 
para representação em ponto flutuante. Alguns dos sistemas 
definidos nesse padrão são:
Encontre os intervalos de overflow e underflow de cada sistema, 
assim como o epsilon da máquina.
Nome do sistema Especificação
Média precisão F(2,11,-14,15) – 16 bits
Precisão simples F(2,24,-126,127) – 32 bits
Precisão dupla F(2, 53, -1022, 1023) – 64 bits
Precisão quádrupla F(2, 113, -16382, 16383) – 128 bits
47

Continue navegando