Buscar

DCC008_Aula03_Numero_Erro

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 109 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 109 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 109 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de Números e Noções de Erro
DCC008 - Cálculo Numérico
Prof. Ruy Freitas Reis - ruyfreitas@ice.ufjf.br
Departamento de Ciência da Computação
Universidade Federal de Juiz de Fora
1/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
2/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
3/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Introdução
• O objetivo aqui é estudar métodos numéricos
• Logo, é importante entender como os números são
representados no computador e como as operações
aritméticas são realizadas
• Limitações da representação finita
• Determinar os casos em que erros ocorrem
• Noções de erro
• Efeitos numéricos
• Cancelamento
• Propagação do erro
4/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Introdução
• O objetivo aqui é estudar métodos numéricos
• Logo, é importante entender como os números são
representados no computador e como as operações
aritméticas são realizadas
• Limitações da representação finita
• Determinar os casos em que erros ocorrem
• Noções de erro
• Efeitos numéricos
• Cancelamento
• Propagação do erro
4/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
5/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Decimal
• O sistema decimal é normalmente adotado, também
chamado de base 10
• Dez d́ıgitos (0,1,2,3,4,5,6,7,8 e 9) são utilizados para
representar os números
• Qualquer número inteiro no sistema decimal pode ser
representado como
N = (anan−1 . . . a1a0)10
= an × 10n + an−1 × 10n−1 + · · ·+ a1 × 101 + a0 × 100,
onde ai ∈ {0, 1, . . . , 8, 9}
6/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Decimal
• Por exemplo
(21)10 = 2× 101 + 1× 100
(2001)10 = 2× 103 + 0× 102 + 0× 101 + 1× 100
7/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Decimal
• Por exemplo
(21)10 = 2× 101 + 1× 100
(2001)10 = 2× 103 + 0× 102 + 0× 101 + 1× 100
7/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Binário
• Os computadores adotam um sistema com dois estados
(ligado ou desligado)
• Sistema binário (0,1), também chamado de base 2
• Os números não negativos podem ser representados como
N = (anan−1 . . . a1a0)2
= an × 2n + an−1 × 2n−1 + · · ·+ a1 × 21 + a0 × 20
onde ai ∈ {0, 1}.
8/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Binário
• Por exemplo
(101)2 = 1× 22 + 0× 21 + 1× 20
(1001)2 = 1× 23 + 0× 22 + 0× 21 + 1× 20
9/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Binário
• Por exemplo
(101)2 = 1× 22 + 0× 21 + 1× 20
(1001)2 = 1× 23 + 0× 22 + 0× 21 + 1× 20
9/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Hexadecimal
• O sistema hexadecimal, ou base 16, é uma alternativa ao
sistema binário para simplificar a representação valores
grandes
• Dezesseis d́ıgitos (0, 1, . . . , 8, 9,A,B,C,D,E,F) são
utilizados para representar os números
• Os números podem ser representados como:
N = (anan−1 . . . a1a0)16
= an × 16n + an−1 × 16n−1 + · · ·+ a1 × 161 + a0 × 160,
onde ai ∈ {0, 1, . . . , 8, 9,A,B,C,D,E,F}
10/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Hexadecimal
• Por exemplo:
(A00E)16 = A× 163 + 0× 162 + 0× 161 + E× 160
= 10× 163 + 0× 162 + 0× 161 + 14× 160
11/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
12/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de Bases
• Um número na base β podeser convertido para base
decimal como
(N)10 = an × βn + an−1 × βn−1 + · · ·+ a1 × β1 + a0 × β0,
onde ai são os d́ıgitos do número representado na base β.
13/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de Bases
• Converter (1010)2 para base 10
(1010)2 = 1× 23 + 0× 22 + 1× 21 + 0× 20
= 8 + 2
=⇒ (1010)2 = (10)10
• Converter (1C2)16 para base 10
(1C2)16 = 1× 162 + C × 161 + 2× 160
= 1× 162 + 12× 161 + 2× 160
= 256 + 192 + 2
=⇒ (1C2)16 = (450)10
14/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de Bases
• Converter (1010)2 para base 10
(1010)2 = 1× 23 + 0× 22 + 1× 21 + 0× 20
= 8 + 2
=⇒ (1010)2 = (10)10
• Converter (1C2)16 para base 10
(1C2)16 = 1× 162 + C × 161 + 2× 160
= 1× 162 + 12× 161 + 2× 160
= 256 + 192 + 2
=⇒ (1C2)16 = (450)10
14/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Converter os seguintes números para a base 10
a) Converter (1101)2 para base 10.
b) Converter (3F )16 para base 10.
Solução
a) 13
b) 63
15/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Converter os seguintes números para a base 10
a) Converter (1101)2 para base 10.
b) Converter (3F )16 para base 10.
Solução
a) 13
b) 63
15/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão decimal para binário
O procedimento é dividir o número por 2, a seguir continuar
dividindo o quociente por 2, até que o quociente seja igual a 0.
O número na base 2 é obtido tomando-se o resto das divisões
anteriores.
Exemplo
Converter (13)10 para binário.
Solução
13÷ 2 = 6, resto=1
6÷ 2 = 3, resto=0
3÷ 2 = 1, resto=1
1÷ 2 = 0, resto=1 ↑
(13)10 = (1101)2
16/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão decimal para binário
O procedimento é dividir o número por 2, a seguir continuar
dividindo o quociente por 2, até que o quociente seja igual a 0.
O número na base 2 é obtido tomando-se o resto das divisões
anteriores.
Exemplo
Converter (13)10 para binário.
Solução
13÷ 2 = 6, resto=1
6÷ 2 = 3, resto=0
3÷ 2 = 1, resto=1
1÷ 2 = 0, resto=1 ↑
(13)10 = (1101)2
16/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão decimal para
hexadecimal
O procedimento é dividir o número por 16, a seguir continuar
dividindo o quociente por 16, até que o quociente seja igual a
0. O número na base 16 é obtido tomando-se o resto das
divisões anteriores.
Exemplo
Converter (62)10 para hexadecimal.
Solução
62÷ 16 = 3, resto=14 =⇒ E
3÷ 16 = 0, resto=3 ↑
(62)10 = (3E )16
17/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão decimal para
hexadecimal
O procedimento é dividir o número por 16, a seguir continuar
dividindo o quociente por 16, até que o quociente seja igual a
0. O número na base 16 é obtido tomando-se o resto das
divisões anteriores.
Exemplo
Converter (62)10 para hexadecimal.
Solução
62÷ 16 = 3, resto=14 =⇒ E
3÷ 16 = 0, resto=3 ↑
(62)10 = (3E )16
17/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Converter os seguintes números para a base indicada
a) Converter (23)10 para base 2.
b) Converter (14)10 para base 2.
c) Converter (63)10 para base 16.
d) Converter (945)10 para base 16.
Solução
a) (10111)2
b) (1110)2
c) (3F )16
d) (3B1)16
18/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Converter os seguintes números para a base indicada
a) Converter (23)10 para base 2.
b) Converter (14)10 para base 2.
c) Converter (63)10 para base 16.
d) Converter (945)10 para base 16.
Solução
a) (10111)2
b) (1110)2
c) (3F )16
d) (3B1)16
18/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema Binário para Hexadecimal
Binário Hexadecimal Binário Hexadecimal
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
Exemplo: (111011010010)2 ⇔
E︷︸︸︷
1110
D︷︸︸︷
1101
2︷︸︸︷
0010⇔ (ED2)16
19/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Realizar as seguintes conversões
a) Converter (11001011)2 para base 16.
b) Converter (110010111)2 para base 16.
c) Converter (3F )16 para base 2.
d) Converter (7BC )16 para base 2.
Solução
a) (CB)16
b) (197)16
c) (111111)2
d) (11110111100)2
20/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Realizar as seguintes conversões
a) Converter (11001011)2 para base 16.
b) Converter (110010111)2 para base 16.
c) Converter (3F )16 para base 2.
d) Converter (7BC )16 para base 2.
Solução
a) (CB)16
b) (197)16
c) (111111)2
d) (11110111100)2
20/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de um número real
• Um número real positivo x pode ser escrito como
x =
n∑
i=0
aiB
i
︸ ︷︷ ︸
xint
+
∞∑
i=1
biB
−i
︸ ︷︷ ︸
xfrac
onde ai e bi são, respectivamente, os coeficientes da parte
integral e fracionária do número x
• Por exemplo,
(23, 45)10 = 2× 101 + 3× 100 + 4× 10−1 + 5× 10−2
21/83
CálculoNumérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplos: Representação de um
número real
• Se bi = 0 para todo i maior que um valor inteiro, então
diz-se que a fração termina
• Caso contrário, diz-se que a fração não termina
• Exemplos:
0, 45 = 4× 10−1 + 5× 10−2 ⇒ termina
0, 666 . . . = 6× 10−1 + 6× 10−2 + 6× 10−3 + . . . ⇒ não termina
22/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de real para binário
• De forma análoga para o sistema binário podemos escrever
xf =
∞∑
k=1
bk2
−k , xi = (anan−1 . . . a0)2
então x = (anan−1 . . . a0 · b1b2b2 . . .)2.
• A fração binária (·b1b2b2 . . .)2 para um dado xf entre 0 e
1 pode ser calculada da seguinte forma: dado x entre 0 e
1, gere b1, b2, b3 fazendo:
c0 = x
b1 = (2 · c0)i , c1 = (2 · c0)f
b2 = (2 · c1)i , c2 = (2 · c1)f
b3 = (2 · c2)i , c3 = (2 · c2)f , . . .
onde (.)i representa a parte integral e (.)f a parte
fracionária do número.
23/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de real para binário
Exemplo
Qual a representação binária de (0.625)10?
Solução do Exemplo
2 · 0.625 = 1.25 ⇒ b1 = 1
2 · 0.25 = 0.50 ⇒ b2 = 0
2 · 0.5 = 1.00 ⇒ b3 = 1
2 · 0.0 = 0.00 ⇒ b4 = b5 = . . . = 0
Portanto (0.625)10 = (0.101)2.
24/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão de real para binário
Exemplo
Qual a representação binária de (0.1)10?
Solução do Exemplo 2
Temos x = 0.1.
2 · 0.1 = 0.2 ⇒ b1 = 0
2 · 0.2 = 0.4 ⇒ b2 = 0
2 · 0.4 = 0.8 ⇒ b3 = 0
2 · 0.8 = 1.6 ⇒ b4 = 1
2 · 0.6 = 1.2 ⇒ b5 = 1
2 · 0.2 = 0.4 ⇒ b6 = 0
2 · 0.4 = 0.8 . . .
Portanto (0.1)10 = (0.000110011 . . .)2 = (0.00011)2.
25/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conversão da base 2 para 10
Exemplo
Converter da base 2 para a base 10.
(11.0101)2 = 1 ∗ 20 + 1 ∗ 21 + 0 ∗ 2−1 + 1 ∗ 2−2 + 0 ∗ 2−3 + 1 ∗ 2−4
= (3.3125)10
26/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Converter os seguintes números reais
a) (7.25)10 para base 2
b) (3.25)10 para base 2
c) (101.01)2 para base 10
d) (11.1)2 para base 10
Solução
a) (111.01)2
b) (11.01)2
c) (5.25)10
d) (3.5)10
27/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Converter os seguintes números reais
a) (7.25)10 para base 2
b) (3.25)10 para base 2
c) (101.01)2 para base 10
d) (11.1)2 para base 10
Solução
a) (111.01)2
b) (11.01)2
c) (5.25)10
d) (3.5)10
27/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
28/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números inteiros
• Para número não negativos, a representação é direta
33⇒ 0 0 1 0 0 0 0 1
• Para número inteiros com sinal, uma possibilidade é
reservar 1 bit para indicar o sinal
• 0⇒ positivo
• 1⇒ negativo
−33⇒ 1 0 1 0 0 0 0 1
29/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números inteiros
• Para número não negativos, a representação é direta
33⇒ 0 0 1 0 0 0 0 1
• Para número inteiros com sinal, uma possibilidade é
reservar 1 bit para indicar o sinal
• 0⇒ positivo
• 1⇒ negativo
−33⇒ 1 0 1 0 0 0 0 1
29/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números inteiros
Inteiros são armazenados usando uma palavra de 32 bits no
computador.
• Se estamos interessados em números não negativos, a
representação é simples:
(71)10 ⇒
00000000 00000000 00000000 01000111
Os valores que podemos representar vão de 0 a 232 − 1.
• Para números inteiros com sinal, uma possibilidade, é
reservar 1 bit para indicar qual o sinal do número.
(−71)10 ⇒
1|0000000 00000000 00000000 01000111
Os valores que podemos representar vão de −(231 − 1) a
231 − 1.
30/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números inteiros
Inteiros são armazenados usando uma palavra de 32 bits no
computador.
• Se estamos interessados em números não negativos, a
representação é simples:
(71)10 ⇒
00000000 00000000 00000000 01000111
Os valores que podemos representar vão de 0 a 232 − 1.
• Para números inteiros com sinal, uma possibilidade, é
reservar 1 bit para indicar qual o sinal do número.
(−71)10 ⇒
1|0000000 00000000 00000000 01000111
Os valores que podemos representar vão de −(231 − 1) a
231 − 1.
30/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números inteiros
Qual a diferença?
1|0000000 00000000 00000000 00000000
e
0|0000000 00000000 00000000 00000000
31/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Complemento a dois
• O complemento a dois é outra forma de representar
números inteiros com sinal
• O bit mais significativo ainda é utilizado para o sinal
• Os números positivos sãorepresentados normalmente
• Um número negativo −y é representado pelo número
binário correspondente ao inteiro positivo:
2B − y
onde B é o número de bits da máquina
32/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo: Complemento a dois
Para ilustrar considere uma palavra de 4 bits. Podemos
representar os seguintes números de 0 a 7 e de -8 a -1. Veja a
tabela.
bits número bits número 2B − y
0000 0 1000 -8 24 − 8 = 8
0001 1 1001 -7 24 − 7 = 9
0010 2 1010 -6 24 − 6 = 10
0011 3 1011 -5 24 − 5 = 11
0100 4 1100 -4 24 − 4 = 12
0101 5 1101 -3 24 − 3 = 13
0110 6 1110 -2 24 − 2 = 14
0111 7 1111 -1 24 − 1 = 15
Para negar um número em complemento a dois, use o seguinte
algoritmo:
1 Inverta todos os bits do número (0→ 1 e 1→ 0).
2 Some 1 ao resultado invertido.
33/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo: Complemento a dois
Exemplo
Considere uma palavra de 4 bits. Qual a representação em
complemento a dois de −2?
Solução do exemplo
Temos que (2)10 = (0010)2. Pelos passos do algoritmo temos:
1 Invertendo os bits 0010→ 1101
2 Somando 1
1101
+0001
1110
Ou seja, −2 é representado por 24 − 2 = 16− 2 = 14, cuja
representação binária é (14)10 = (1110)2.
34/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo: Complemento a dois
Exemplo
Considere uma palavra de 4 bits. Qual a representação em
complemento a dois de −2?
Solução do exemplo
Temos que (2)10 = (0010)2. Pelos passos do algoritmo temos:
1 Invertendo os bits 0010→ 1101
2 Somando 1
1101
+0001
1110
Ou seja, −2 é representado por 24 − 2 = 16− 2 = 14, cuja
representação binária é (14)10 = (1110)2.
34/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Complemento a dois
• Complemento a dois
• Uma vantagem desse sistema é não requerer um hardware
espećıfico para o operador de subtração
• O operador de soma pode ser utilizado quando um número
negativo é representado em complemento a dois
• Essa representação é adotada em muitos dos
computadores atuais
35/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo: Complemento a dois
Exemplo
Considerando uma máquina que utiliza 4 bits para representar
números inteiros com sinal e adotando complemento a dois.
Converta em complemento a 2 e realize a operação 4− 3.
Solução do exemplo
Ao converter obtemos (4)10 = (0100)2 e (−3)10 = (1101)2.
Portanto
0100
+1101
0001
Ou seja, (0001)2 = (1)10
36/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo: Complemento a dois
Exemplo
Considerando uma máquina que utiliza 4 bits para representar
números inteiros com sinal e adotando complemento a dois.
Converta em complemento a 2 e realize a operação 4− 3.
Solução do exemplo
Ao converter obtemos (4)10 = (0100)2 e (−3)10 = (1101)2.
Portanto
0100
+1101
0001
Ou seja, (0001)2 = (1)10
36/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Considere uma palavra de 4 bits. Qual a representação em
complemento a dois dos seguintes números em binário e
decimal?
a) (7)10
b) (−6)10
c) (−4)10
d) Realize a operação 7− 4 utilizando os resultados obtidos nas
letras anteriores
Solução
a) (7)10 =⇒ (0111)2 = (7)10
b) (−6)10 =⇒ (1010)2 = (10)10
c) (−4)10 =⇒ (1100)2 = (12)10
d) (0011)2 = (3)10
37/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Considere uma palavra de 4 bits. Qual a representação em
complemento a dois dos seguintes números em binário e
decimal?
a) (7)10
b) (−6)10
c) (−4)10
d) Realize a operação 7− 4 utilizando os resultados obtidos nas
letras anteriores
Solução
a) (7)10 =⇒ (0111)2 = (7)10
b) (−6)10 =⇒ (1010)2 = (10)10
c) (−4)10 =⇒ (1100)2 = (12)10
d) (0011)2 = (3)10
37/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação de números reais
• Números reais são armazenados usando o sistema binário
e a representação destes números é finita.
• Por exemplo, os números
π = 3.1415 . . .
e = 2.71828 . . .
não podem ser representados perfeitamente no
computador. O que é armazenado então é uma versão
aproximada destes números.
• De forma geral, existem duas possibilidades para essa
representação:
• Representação em Ponto Fixo
• Representação em Ponto Flutuante
38/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto fixo
• Neste sistema uma palavra (número) é representada por 3
campos
• 1 bit para o sinal
• bits que formam a parte integral
• bits que formam a parte fracionária
• Por exemplo, o número (12, 75)10 pode ser representado
em um sistema com 32 bits (15 bits para a parte integral e
16 bits para a parte fracionária) como
0 000000000001100 11000000000000000
• O sistema de ponto fixo limita muito a magnitude dos
números que podem ser representados
• Essa representação é raramente adotada
39/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto fixo
• Neste sistema uma palavra (número) é representada por 3
campos
• 1 bit para o sinal
• bits que formam a parte integral
• bits que formam a parte fracionária
• Por exemplo, o número (12, 75)10 pode ser representado
em um sistema com 32 bits (15 bits para a parte integral e
16 bits para a parte fracionária) como
0 000000000001100 11000000000000000
• O sistema de ponto fixo limita muito a magnitude dos
números que podem ser representados
• Essa representação é raramente adotada
39/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operaçõesaritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto fixo
• Neste sistema uma palavra (número) é representada por 3
campos
• 1 bit para o sinal
• bits que formam a parte integral
• bits que formam a parte fracionária
• Por exemplo, o número (12, 75)10 pode ser representado
em um sistema com 32 bits (15 bits para a parte integral e
16 bits para a parte fracionária) como
0 000000000001100 11000000000000000
• O sistema de ponto fixo limita muito a magnitude dos
números que podem ser representados
• Essa representação é raramente adotada
39/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
• A representação de ponto flutuante é baseada na notação
cient́ıfica. Nessa notação um número real não-zero é
expresso por
x = ±d × βe
onde β é a base do sistema de numeração, d é a mantissa
e e é o expoente.
• A mantissa é um número da forma
(0 · d1d2d3 . . . dt)β
representada por t d́ıgitos, onde 0 ≤ di ≤ (β − 1), para
i = 1, . . . , t com d1 6= 0.
• O expoente e está no intervalo [L,U].
• Ao exigir que d1 6= 0, dizemos que o número está
normalizado.
40/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sistema de ponto flutuante
Iremos denotar um sistema de ponto flutuante por
F (β, t, L,U)
onde
• β é a base do sistema
• t número de d́ıgitos da mantissa
• L menor valor para o expoente
• U maior valor para o expoente
Em qualquer máquina apenas um subconjunto dos números
reais é representado exatamente, e portanto nesse processo a
representação de um número real será feita com
arredondamento ou truncamento.
41/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Arredondamento
Ponto flutuante
• Imagine que só dispomos de quatro d́ıgitos para
representar os números em uma máquina. Como seria a
melhor forma de representar 157 = 2.142857 = x? Usando
2.142 ou talvez 2.143?
• Se calcularmos o erro vemos que
|2.142− x | = 0.000857
|2.143− x | = 0.000143
Como o erro é menor para 2.143 conclúımos que essa é a
melhor forma de representar esse número. Este número foi
arredondado.
42/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Arredondamento
Ponto flutuante
O que significa arredondar um número?
• Para arredondar um número na base 10, devemos apenas
observar o primeiro d́ıgito a ser descartado. Se este d́ıgito
é menor que 5 deixamos os d́ıgitos inalterados; e se é
maior ou igual a 5 devemos somar 1 ao último d́ıgito
remanescente.
43/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Exemplo
Considere o seguinte sistema: F (10, 3,−3, 3). Como fica
representado neste sistema o número 12.5?
Solução
+0.125× 102
44/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Exemplo
Considere o seguinte sistema: F (10, 3,−3, 3). Como fica o
número de Euler e = 2.718281 . . .
Solução
+ 0.271× 101 (com truncamento)
+ 0.272× 101 (com arredondamento)
45/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Exemplo
• Considere o seguinte sistema: F (10, 3,−5, 5). Os números
representados neste sistema terão a forma
±(0.d1d2d3)× 10e , 0 ≤ di ≤ 9, d1 6= 0, e ∈ [−5, 5]
• O menor número em valor absoluto representado nessa
máquina é
m = 0.100× 10−5 = 10−1 × 10−5 = 10−6
• O maior número em valor absoluto é
M = 0.999× 105 = 99900
De forma geral, o menor e o maior número são dados por
m = βL−1, M = βU(1− β−t)
46/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
• Seja um sistema F (β, t, L,U) onde o menor e maior
número são denotados por m e M, respectivamente. Dado
um número real x , então temos as seguintes situações:
1 m ≤ |x | ≤ M
O número pode ser representado no sistema.
Exemplo: 235.89 = 0.23589× 103. No sistema
F (10, 3,−3, 3) temos
0.235× 103 com truncamento
0.236× 103 com arredondamento
2 |x | ≤ m
O número não pode ser representado no sistema. Neste
caso dizemos que ocorreu underflow. Ex: 0.517× 10−8.
3 |x | ≥ M
O número não pode ser representado no sistema. Neste
caso dizemos que ocorreu overflow. Ex: 0.725× 109.
47/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Exemplo
Considere o sistema F (2, 3,−3, 3). Para simplificar, considere
uma palavra com 7 bits, onde temos 1 bit para o sinal do
número, 3 bits para o expoente (incluindo seu sinal) e 3 bits
para a mantissa. Vamos representar xmin = (0.100)2 × 2−3.
sinal do número 0
sinal do expoente 1
expoente (3)10 = (11)2
mantissa (0.100)2
Sendo assim temos a seguinte representação para (0.0625)10
neste sistema
0 111 100
48/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Exemplo
Considere o sistema F (2, 3,−1, 2). Quantos e quais números
podem ser representados neste sistema?
Solução:
Neste sistema os números são da forma: ±0.d1d2d3 × 2e
• 2 possibilidades para o sinal
• (1 · 2 · 2) = 4 possibilidades para a mantissa
• 4 possibilidades para o expoente (−1, 0, 1, 2)
Portanto, temos 2 · 4 · 4 = 32, e considerando que o zero
também faz parte do sistema, conclúımos que podemos
representar 33 números distintos.
49/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Representação em ponto flutuante
Continuação da solução
Para responder quais são os números, notemos que as posśıveis
formas da mantissa são 0.100, 0.101, 0.110 e 0.111 e as formas
do expoente são 2−1, 20, 21 e 22. Assim obtemos:
(0.100)2 × 2−1 = (0.25)10 (0.101)2 × 2−1 = (0.3125)10(0.100)2 × 20 = (0.5)10 (0.101)2 × 20 = (0.625)10
(0.100)2 × 21 = (1.0)10 (0.101)2 × 21 = (1.25)10
(0.100)2 × 22 = (2.0)10 (0.101)2 × 22 = (2.5)10
(0.110)2 × 2−1 = (0.375)10 (0.111)2 × 2−1 = (0.4375)10
(0.110)2 × 20 = (0.75)10 (0.111)2 × 20 = (0.875)10
(0.110)2 × 21 = (1.5)10 (0.111)2 × 21 = (1.75)10
(0.110)2 × 22 = (3.0)10 (0.111)2 × 22 = (3.5)10
O zero é representado de uma forma especial: todos os d́ıgitos
di da mantissa e do expoente são nulos.
50/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcio
1) Seja uma máquina fict́ıcia que opera em um sistema de
ponto flutuante de base binária e que representa os números
usando 32 bits. Seja o seguinte número representado nesta
máquina:
0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0
Se o primeiro bit indica o sinal do número, o segundo é o
sinal do expoente, os próximos seis são o expoente, e os
vinte e quatro últimos são a mantissa, responda às
seguintes perguntas:
a) O número está normalizado? Se não, normalize-o.
b) O número é positivo ou negativo?
c) Em módulo, o número é menor ou maior do que 1?
d) Como ficaria a representação deste número no sistema
F (10, 6,−10, 10)?
51/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Ponto flutuante IEEE 754
• O padrão usa o sistema binário e dois formatos para
representação de números podem ser adotados: precisão
simples e precisão dupla. Neste formato um número é
representado de forma normalizada por
±1.d1d2 . . . dn × 2e
• Em precisão simples um número real é representado por 32
bits, sendo que:
• 1 bit para o sinal
• 8 bits para o expoente
• 23 bits para a mantissa
• formato binário
± e1e2 . . . e8 d1d2 . . . d23
• O primeiro bit à esquerda do ponto binário, isto é d0 = 1,
é chamado de bit escondido (hidden bit).
52/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Expoente
• Nesse formato, o expoente não é representado como um
inteiro via complemento a dois. Os oito bits do expoente
armazenam o número s = e + 127.
• Exemplos:
e = 1 ⇒ s = 1 + 127 = (128)10 = (10000000)2
e = −3 ⇒ s = −3 + 127 = (124)10 = (01111100)2
e = 52 ⇒ s = 52 + 127 = (179)10 = (10110011)2
• Em particular as sequências de bits (00000000) e
(11111111) para o expoente, são usadas para representar,
respectivamente, o zero e infinito ou ocorrência de erro,
que é denotado por NaN (Not a Number).
53/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Mantissa
• Como o sistema é normalizado temos d0 6= 0. Dado que a
base é dois, a única possibilidade para o primeiro d́ıgito
será sempre igual a 1, e portanto este bit não precisa ser
armazenado, por isso é chamado de bit escondido.
• Com o uso desta normalização temos um ganho na
precisão, pois a mantissa passa a ser representada com 24
bits (23 + 1 bit escondido).
• Exemplo: (0.125)10 = (0.001)2 = 1.0× 2−3 é armazenado
como:
0 01111100 0000000 00000000 00000000
• A mantissa só possui um d́ıgito significativo, que é
justamente o bit escondido, e portanto os demais 23 bits
são representados com 0.
54/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Ponto flutuante IEEE 754
• O zero é representado com zeros para expoente e mantissa
0 00000000 0000000 00000000 00000000
• Os valores +∞ e −∞ são representados por
0 11111111 0000000 00000000 00000000
1 11111111 0000000 00000000 00000000
• Se a sequência de bits para o expoente for composta por
todos d́ıgitos iguais a um e a da mantissa for não nula,
isto é:
1 11111111 xxxxxxx xxxxxxxx xxxxxxxx
temos a ocorrência de NaN: Not a Number, que
representam expressões inválidas como:
0 ∗∞, 0/0, ∞/∞, ∞−∞
55/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
56/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
• Adição/subtração: quando dois números em ponto
flutuante são somados (ou subtráıdos), é preciso alinhar as
casas decimais do número de menor expoente para a
direita até que os expoentes fiquem iguais.
• Os resultados devem ser truncados ou arredondados
dependendo da maquina
Exemplo
Seja uma maquina utilizando F (10, 2,−5, 5) realize a operação:
0, 12× 101 + 0, 5× 10−1
0, 12× 101 + 0, 005× 101
0, 125× 101 =⇒ 0, 12× 101(Truncar)
0, 13× 101(Arredondar)
57/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
• Adição/subtração: quando dois números em ponto
flutuante são somados (ou subtráıdos), é preciso alinhar as
casas decimais do número de menor expoente para a
direita até que os expoentes fiquem iguais.
• Os resultados devem ser truncados ou arredondados
dependendo da maquina
Exemplo
Seja uma maquina utilizando F (10, 2,−5, 5) realize a operação:
0, 12× 101 + 0, 5× 10−1
0, 12× 101 + 0, 005× 101
0, 125× 101 =⇒ 0, 12× 101(Truncar)
0, 13× 101(Arredondar)
57/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
• Multiplicação/divisão: nessa operação realizamos o
produto (ou divisão) das mantissas e o expoente final da
base é obtido, somando (subtraindo) os expoentes de cada
parcela.
• Os resultados devem ser truncados ou arredondados
dependendo da maquina
Exemplo
Seja uma maquina utilizando F (10, 2,−5, 5) realize a operação:
0, 53× 102 × 0, 2× 10−1
0, 106× 101 =⇒ 0, 1× 101(Truncar)
0, 11× 101(Arredondar)
58/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
• Multiplicação/divisão: nessa operação realizamos o
produto (ou divisão) das mantissas e o expoente final da
base é obtido, somando (subtraindo) os expoentes de cada
parcela.• Os resultados devem ser truncados ou arredondados
dependendo da maquina
Exemplo
Seja uma maquina utilizando F (10, 2,−5, 5) realize a operação:
0, 53× 102 × 0, 2× 10−1
0, 106× 101 =⇒ 0, 1× 101(Truncar)
0, 11× 101(Arredondar)
58/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Adição
Adicionar 4.32 e 0.064 em uma máquina com mantissa t = 2 e
base 10.
Solução
4.32 + 0.064 = 0.43× 101 + 0.64× 10−1 = 0.4300× 101
+ 0.0064× 101
= 0.4364× 101
Truncamento → 0.43× 101
Arredondamento → 0.44× 101
59/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Adição
Adicionar 4.32 e 0.064 em uma máquina com mantissa t = 2 e
base 10.
Solução
4.32 + 0.064 = 0.43× 101 + 0.64× 10−1 = 0.4300× 101
+ 0.0064× 101
= 0.4364× 101
Truncamento → 0.43× 101
Arredondamento → 0.44× 101
59/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Subtração
Subtrair 371 de 372 em uma máquina com mantissa t = 2 e
base 10.
Solução
372− 371 = 0.37× 103 − 0.37× 103 = 0.37× 103
− 0.37× 103
= 0.00× 103
A subtração deu 0 em vez de 1. Problema na subtração
de dois números aproximadamente iguais.
60/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Subtração
Subtrair 371 de 372 em uma máquina com mantissa t = 2 e
base 10.
Solução
372− 371 = 0.37× 103 − 0.37× 103 = 0.37× 103
− 0.37× 103
= 0.00× 103
A subtração deu 0 em vez de 1. Problema na subtração
de dois números aproximadamente iguais.
60/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Subtração
Subtrair 371 de 372 em uma máquina com mantissa t = 2 e
base 10.
Solução
372− 371 = 0.37× 103 − 0.37× 103 = 0.37× 103
− 0.37× 103
= 0.00× 103
A subtração deu 0 em vez de 1. Problema na subtração
de dois números aproximadamente iguais.
60/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Multiplicação
Multiplicar 1234 por 0.016 em uma máquina com mantissa
t = 2 e base 10.
Solução
1234 ∗ 0.016 = 0.12× 104 ∗ 0.16× 10−1 = 0.12× 104
∗ 0.16× 10−1
= 0.0192× 103
= 0.19× 102
Neste caso usando arredondamento ou truncamento, o
resultado é 19, em vez de 19.744 que é o resultado exato.
61/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Multiplicação
Multiplicar 1234 por 0.016 em uma máquina com mantissa
t = 2 e base 10.
Solução
1234 ∗ 0.016 = 0.12× 104 ∗ 0.16× 10−1 = 0.12× 104
∗ 0.16× 10−1
= 0.0192× 103
= 0.19× 102
Neste caso usando arredondamento ou truncamento, o
resultado é 19, em vez de 19.744 que é o resultado exato.
61/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Divisão
Dividir 0.00183 por 492 em uma máquina com mantissa t = 2
e base 10.
Solução
0.00183÷ 492 = 0.18× 10−2 ÷ 0.49× 103 = 0.18× 10−2
÷ 0.49× 103
= 0.3673× 10−5
Arredondamento → 0.37× 10−5
Truncamento → 0.36× 10−5
62/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas
Exemplo: Divisão
Dividir 0.00183 por 492 em uma máquina com mantissa t = 2
e base 10.
Solução
0.00183÷ 492 = 0.18× 10−2 ÷ 0.49× 103 = 0.18× 10−2
÷ 0.49× 103
= 0.3673× 10−5
Arredondamento → 0.37× 10−5
Truncamento → 0.36× 10−5
62/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas em ponto
flutuante
É importante observar que algumas propriedades aritméticas
como
associatividade: (a + b) + c = a + (b + c)
distributividade: a(b + c) = ab + ac
não são válidas em sistemas de ponto flutuante.
63/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exemplo
Exemplo
Considere um sistema com base β e três d́ıgitos na mantissa,
ou seja, F (10, 3, L,U). Considere ainda que o sistema trabalha
com arredondamento após cada uma das operações efetuadas.
a) (11.4 + 3.18) + 5.05 e 11.4 + (3.18 + 5.05)
b) 5.55(4.45− 4.35) e 5.55 ∗ 4.45− 5.55 ∗ 4.35
64/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas em ponto
flutuante
Solução do Exemplo
a) (11.4 + 3.18) + 5.05
0.1140× 102
+ 0.0318× 102
= 0.1458× 102
= 0.146× 102 (arr.)
0.1460× 102
+ 0.0505× 102
= 0.1965× 102
= 0.197× 102 (arr.)
a) 11.4 + (3.18 + 5.05)
0.318× 101
+ 0.505× 101
= 0.823× 101
0.0823× 102
+ 0.1140× 102
= 0.1963× 102
= 0.196× 102 (arr.)
65/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Operações aritméticas em ponto
flutuante
Solução do Exemplo (cont.)
b) 5.55(4.45− 4.35)
0.445× 101
− 0.435× 101
= 0.010× 101
0.555× 101
∗ 0.100× 100
= 0.055500× 101
= 0.555
b) 5.55 ∗ 4.45− 5.55 ∗ 4.35
0.555× 101
∗ 0.445× 101
= 0.246975× 102
= 0.247× 102
0.555× 101
∗ 0.435× 101
= 0.241425× 102
= 0.241× 102
0.247× 102
− 0.241× 102
= 0.006× 102 = 0.6
66/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Seja um sistema de aritméticade ponto flutuante de quatro
d́ıgitos na mantissa, base decimal e que usa o
arredondamento. Dados os números:
x = 0.9370× 104 y = 0.1272× 102
efetue as operações: x + y e x × y .
2) Sejam os seguintes números x = 0.5289, y = 0.8012 e z =
0.6024, e considere um sistema de ponto flutuante com
mantissa de 4 d́ıgitos e base decimal. Mostre que:
a) x(y + z) 6= x × y + x × z
b) (x + y) + z 6= x + (y + z)
67/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Conteúdo
1 Introdução
2 Sistema de numeração
3 Conversão de sistema de numeração
Número inteiro
Número real
4 Representação de números computador
Inteiros
Reais
5 Operações aritméticas em ponto flutuante
6 Noções básicas sobre erros
68/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Erro absoluto
Se x̃ é uma aproximação de x , o erro absoluto é definido por
EA(x̃) = |x − x̃ |
Exemplo
Seja x = 1428.756. Em uma máquina com mantissa t = 4,
usando arredondamento e truncamento, respectivamente,
temos
x̃t = 0.1428× 104 ⇒ EA(x̃t) = 0.756× 100
x̃a = 0.1429× 104 ⇒ EA(x̃a) = 0.244× 100
69/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Erro relativo
O erro relativo é definido por
ER(x̃) =
|x − x̃ |
|x̃ |
=
EA(x̃)
|x̃ |
dado que x̃ 6= 0.
Exemplos:
x1 = 1000.5, x̃1 = 1000.6
x2 = 10.5, x̃2 = 10.6 ⇒ EA(x̃i ) = 0.1, i = 1, 2
ER(x̃1) =
0.1
1000.6
≈ 0.00009994 = 0.9994× 10−4
ER(x̃2) =
0.1
10.6
≈ 0.009433 = 0.9433× 10−2
70/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Erros
• Além dos erros causados pela representação no
computador e pelas operações aritméticas, existem certos
efeitos numéricos que contribuem para aumentar os erros
introduzidos.
• A seguir iremos estudar alguns casos importantes como a
adição ou subtração entre um número grande e um
pequeno, subtração de dois números quase iguais,
propagação do erro, etc.
71/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Somar ou subtrair um número
pequeno e um grande
Para exemplificar considere um sistema F (10, 4, L,U).
Exemplo
Somar 0.1 e 5000.
0.1 + 5000 = 0.1000× 100 + 0.5000× 104
= 0.00001× 104
+ 0.50000× 104
= 0.50001× 104
Usando arredondamento (ou truncamento), obtemos 0.5× 104.
72/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Cancelamento
Subtraimos dois números quase iguais, ou quando somamos
números de sinais opostos, mas de magnitudes semelhantes
Exemplo
Calcular
√
37−
√
36 em uma máquina F (10, 4, L,U) usando
arredondamento.
Solução
Para efeitos de comparação, apresentamos a resposta exata
aqui: √
37−
√
36 = 6.08276253− 6 = 0.08276253.
Nessa máquina temos
√
37 = 6.08276253 → 0.6083× 101
√
36 = 6.0 → 0.6000× 101
73/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Cancelamento
Solução do Exemplo - (cont.)
• Efetuando a subtração temos
0.6083× 101
− 0.6000× 101
= 0.0083× 101 = 0.8300× 10−1
• A resposta exata é 0.8277× 10−1 → perda de d́ıgitos
significativos!
• É posśıvel obter um resultado mais preciso? Sim, basta
considerar que
√
x −√y =
√
x −√y
(
√
x +
√
y)
√
x +
√
y
=
x − y√
x +
√
y
74/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Cancelamento
Solução do Exemplo - (cont.)
• Efetuando a subtração temos
0.6083× 101
− 0.6000× 101
= 0.0083× 101 = 0.8300× 10−1
• A resposta exata é 0.8277× 10−1 → perda de d́ıgitos
significativos!
• É posśıvel obter um resultado mais preciso?
Sim, basta
considerar que
√
x −√y =
√
x −√y
(
√
x +
√
y)
√
x +
√
y
=
x − y√
x +
√
y
74/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Cancelamento
Solução do Exemplo - (cont.)
• Efetuando a subtração temos
0.6083× 101
− 0.6000× 101
= 0.0083× 101 = 0.8300× 10−1
• A resposta exata é 0.8277× 10−1 → perda de d́ıgitos
significativos!
• É posśıvel obter um resultado mais preciso? Sim, basta
considerar que
√
x −√y =
√
x −√y
(
√
x +
√
y)
√
x +
√
y
=
x − y√
x +
√
y
74/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Cancelamento
Solução do Exemplo - (cont.)
Portanto para √
37−
√
36
temos
x − y√
x +
√
y
=
37− 36√
37 +
√
36
=
1
0.6083× 101 + 0.6000× 101
=
1
0.1208× 102
= 0.08278145 = 0.8278× 10−1
que é um resultado mais preciso que o anterior.
75/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Propagação do erro
Problemas numéricos não ocorrem apenas quando dois
números quase iguais são subtráıdos. Também ocorrem no
cálculo de uma soma, quando uma soma parcial é muito
grande se comparada com o resultado final. Considere que:
s =
n∑
k=1
ak
seja a soma a ser computada e que os ak podem ser positivos
ou negativos e de diferentes magnitudes. O cálculo é
usualmente feito da seguinte forma:
s1 = ak , sk = sk−1 + ak , k = 2, 3, . . . , n
tal que s = sn.
76/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Propagação do erro
Exemplo
Considere uma máquina F (10, 4, L,U) com truncamento.
Vamos efetuar a seguinte operação:
S =
4∑
i=1
(xi + yi ) com xi = 0.46709, e yi = 3.5678
Para i = 1, temos
(x1 + y1) = 0.4034× 101
E o erro absoluto é
EA(S̄) = |4.03569− 4.034| = 0.00169
77/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Propagação do erro
Exemplo (cont.)Para i = 2, temos
(x1 + y1) + (x2 + y2) = 0.8068× 101
EA(S̄) = |8.07138− 8.068| = 0.00338
Para i = 3, temos
(x1 + y1) + (x2 + y2) + (x3 + y3) = 0.1210× 102
EA(S̄) = |12.10707− 12.10| = 0.00707
Para i = 4, temos
(x1 + y1) + (x2 + y2) + (x3 + y3) + (x4 + y4) = 0.1613× 102
EA(S̄) = |16.14267− 16.13| = 0.01276
De onde pode-se observar que o erro absoluto aumenta à
medida em que as operações aritméticas são realizadas.
78/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
A implementação incorreta ou o uso incorreto de algoritmos
e/ou softwares cient́ıficos já foi responsável por alguns
desastres reais.
79/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Patriot missile failure - Guerra do
Golfo (1991)
Uma bateria de ḿısseis
Patriot americano, falhou ao
rastrear e interceptar um
ḿıssil Scud do Iraque.
• O ḿıssil Scud acertou o
acampamento americano, matou
28 soldados e feriu centenas.
• Relatório técnico apontou uma
falha no software.
• Palavra do computador 24 bits.
• Tempo era medido em décimos
de segundo (1/10).
• O valor (1/10) ao ser
representado em binário não
termina.
• Acúmulo do erro no software
após longo tempo do sistema
rodando levou a falha.
80/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Ariane 5
• Foguete da European Space
Agency explode 40s após o
lançamento.
• Milhões de dolares foram
investidos no seu
desenvolvimento e equipamento.
• Relatório acusou um erro do
programa no sistema de
referência inercial.
• Problema: número de 64 bits de
ponto flutuante era convertido
em um inteiro de 16 bits com
sinal. Falha na conversão para
números maiores que 32767, que
é o maior inteiro representável
com 16 bits.81/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Sleipnir offshore
• Plataforma de petróleo
Sleipnir afunda.
• Após o acidente a empresa
da plataforma, Statoil,
uma empresa norueguesa
solicita a empresa SINTEF
um relatório técnico.
• Falha em uma parede,
resultando em uma
rachadura e vazamento.
• Motivo: combinação de
erros no programa de
análise de elementos
finitos, que subestimou a
tensão na parede.
82/83
Cálculo
Numérico -
UFJF
Introdução
Sistema de
numeração
Conversão de
sistema de
numeração
Número inteiro
Número real
Representação
de números
computador
Inteiros
Reais
Operações
aritméticas em
ponto
flutuante
Noções
básicas sobre
erros
Exerćıcios
1) Deseja-se calcular:
S =
10∑
k=1
2
k2
no sistema F (10, 3,−5, 4), usando arredondamento em
todas as operações. Assim, efetue a soma:
a) da direita para a esquerda e da esquerda para a direita
b) os valores obtidos foram iguais?
2) Tente evitar perda de d́ıgitos significativos no cálculo das
seguintes funções:
a) log(1 + x)− log(x), para x grande
b) 1−cos(x)x2 , para x próximo de 0
c) sen(a + x)− sen(a), para x próximo de 0
83/83
	Introdução
	Sistema de numeração
	Conversão de sistema de numeração
	Número inteiro
	Número real
	Representação de números computador
	Inteiros
	Reais
	Operações aritméticas em ponto flutuante
	Noções básicas sobre erros

Continue navegando