Você está na página 1de 54

Universidade Federal do Rio Grande do Norte

Escola de Ciências e Tecnologia


UFRN

Representação da Informação
e Erros de Arredondamento

ECT2401 – 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

• Tipos de erros na resolução de problemas de engenharia


• 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)

Problema Modelagem Modelo Resolução


Solução
Fisico Matemático

4
Erros

• Portanto, a solução de um determinado problema


apresenta erros nas duas fazes:

Modelagem Resolução

5
Erros da na Fase de Modelagem

6
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

7
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…

8
Erros da na Fase de Resolução

9
Erros na fase de resolução

• Dois tipos básicos:

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.

10
Algarismos Significativos

• Quais as marcações dos ponteiros maiores dos


altímetros?

11
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!

12
Algarismos Significativos
• Quais as marcações dos ponteiros maiores dos
altímetros?

9,2 6,58
13
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
14
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!

15
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?

16
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
17
Exatidão e Precisão

18
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 = (1x103 + 9x102 + 5x101 + 2x100)10
23,9610 = (2x101 + 3x100 + 9x10-1 + 6x10-2)10
110012 = (1x24 + 1x23 + 0x22 + 0x21 + 1x20)10
10,1012 = (1x21 + 0x20 + 1x2-1 + 0x2-2 + 1x2-3)10
19
Representação em Ponto Flutuante

• 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

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
20
Exemplos

Encontrar o valor na base 2 dos seguintes números na base 10:


34
0,75
4,125
3,8
33,023

21
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! 22
Representação em Ponto Flutuante

• 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:
23
Representação em Ponto Flutuante

• Representação em ponto flutuante normalizada:

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.
24
Exemplos

• Ex1: Represente 31,41510 no sistema F(10,5,-2,2)

31,415 = 0,31415 ∙ 102


m𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 3 1 4 1 5 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = [2]

• Ex2: Represente 2910 no sistema F(2,10,-7,7)

2910 = 111012 = 0,11101 ∙ 25 = 0,11101 ∙ 21012


m𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 1 1 1 0 1 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = 510 𝑜𝑢 1 0 1 2
Se neste caso representarmos a mantissa com 10 dígitos
teremos
𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 1 1 1 0 1 0 0 0 0 0 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = [1 0 1]
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?

26
Representação em Ponto Flutuante

Qual o menor número positivo representado no sistema F(2,3,-3,3)?


Sinal do
expoente
mantissa expoente
Sinal da
mantissa 0 1 0 0 1 1 1
2-1 2-2 2-3 21 20

Convenção: bit 0 -> +


bit 1 -> -
27
Exemplos

Quais números podem ser representados no sistema


F(2,3,-3,3)?

28
Representação em Ponto Flutuante
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:

29
Representação em Ponto Flutuante

– Menor real positivo representado em

– Maior real positivo representado

30
Representação em Ponto Flutuante

• Números reais máximos e mínimos que podem ser


representados usando um sistema:
Intervalo de Intervalo de
representação underflow representação
overflow overflow

-xM -xm 0 xm xM

Overflow: expoente maior que o expoente máximo


Underflow: expoente menor que o expoente mínimo

31
Representação em Ponto Flutuante
F(2,3,-3,3): Intervalo de Intervalo de
representação underflow representação
overflow overflow

-7 -0,0625 0 0,0625 7

• 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.
32
Exemplos

Represente os números 0,7510 e 1,4510 no sistema F(2,3,-3,3)


dos exercícios anteriores.

Resolvendo 0,7510 : Resolvendo 1,4510: Parte Fracionária


Parte Fracionária
0,45 0,90 0,80 0,60 0,20
0,75 0,50 x2 x2 x2 x2 x2
x2 x2 0,90 1,80 1,60 1,20 0,40
1,50 1,00

O que fazer nesse caso?


33
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,101x21
34
Truncamento e Arredondamento

Arredondar
Significa truncar todos os dígitos menos significativos a
partir de uma determinada posiçã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:

Trunca-se x na posição d: x’ = b1b2...bd


- 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)
35
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,110x21

36
Representação em Ponto Flutuante

• Voltando ao exercício:
Represente o número 1,4510 no sistema F(2,3,-3,3)

Usando truncamento Usando arredondamento


1,012 = 0,101x21 1,102 = 0,110x21
= 1,2510 = 1,5010

O arredondamento gerou um
ERRO menor
37
Exercício

• Represente os seguintes números no sistema F(2,3,-3,3),


usando primeiramente truncamento e depois
arredondamento. Indique se houve overflow ou
underflow:
– 2,3
– 7,8
– 0,05

38
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:

39
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

O arredondamento gerou um
ERRO menor
Isso acontece sempre? 40
Erros de Trubcamento Vs. Erros de
Arredondamento
• Ao representar um número 𝑥 em um sistema de numeração
qualquer, iremos verificar os números representáveis em tal
sistema mais próximos de x, 𝑎 ≤ 𝑥 e 𝑏 ≥ 𝑥:
𝑎+𝑏
– Se 𝑥 < : erros iguais
2
𝑥

𝑎 𝑎+𝑏 𝑏
Truncamento ou
arredondamento 2

𝑎+𝑏
– Se 𝑥 ≥ : arredondamento com erro menor
2
𝑥

𝑎 𝑎+𝑏 𝑏
Arredondamento
2
Truncamento
41
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,23401x103)10 - (0,99144)10 - (0,99971)10
Respostas: 2,36 – 0,234x103 – 0,991 – 1,00
42
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:
0,031250 1,0
0,031250 1,0
0,031250 1,0
0,031250 1,0

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! 43
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?

44
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):

45
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:

1
 3  (0,3333 10 0 )  (0,3000 101 )
3
 0,9999 10 0

Note uma ligeira perda de precisão com relação ao


valor exato desta operação que é 1.
 46
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 10 6 )  (0,1978 101)  0,0798123 10 5


 0,798110 4

 47
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
0,4035 10 6  0,1978 10 4 
mantissa de 4 algarismos:
0,4035 10 6  0,001978 10 6 
0,405478 10 6 
0,4055 10 6 48
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!

49
Operações de risco

Adição de números com ordens de


grandeza muito diferentes.

 Exemplo com uma mantissa de 4 algarismos:


4000  0,001  0,4000 10 4  0,1000 102
 0,4000 10 4  0,000000110 4
 0,400000110 4
 0,4000 10 4
 A lei dos expoentes e a aritmética flutuante fazem com que
o número pequeno desapareça completamente frente ao
grande.
 50
Operações de risco

Subtração de números quase iguais.

 Exemplo com uma mantissa de 10 algarismos:


9876  9875 
0,99378065 99  10 2  0,99373034 57  10 2 
0,0000503142  10 2 
0,50314200 00  10 -2
 Os quatro zeros no final da mantissa não têm significado e
assim perdemos 4 casas decimais.

51
Operações de risco

Subtração de números quase iguais.

 Podemos obter um resultado mais preciso? SIM!

1
9876  9875 
9876  9875
 0,5031418679 104

 Nem sempre existe uma maneira trivial de resolver tais erros


 de aritmética flutuante.

52
Atividade

Considere a função: f (x)  x( x  x 1)


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 x  x 1 .
x  x 1
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). 
53
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:
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

Encontre os intervalos de overflow e underflow de cada sistema,


assim como o epsilon da máquina.

54

Você também pode gostar