Universidade Federal Rural do Semi-Árido
Cálculo Numérico
Prof. Caio César de Freitas Dantas
Representação em Ponto Flutuante
Mudar a representação dos números:
• 1001 da base 2 para a base 10
• 101.1100 da base 2 para a base 10
• 13 da base 10 para a base 2
• 0.75 da base 10 para a base 2
• 3.25 da base 10 para a base 2
• 3.8 da base 10 para a base 2
• 6.5 da base 10 para a base 2
Representação em Ponto Flutuante
Mudar a representação dos números:
• 1001 da base 2 para a base 10 9
• 101.1100 da base 2 para a base 10 5,75
• 13 da base 10 para a base 2 1101
• 0.75 da base 10 para a base 2 0,110
• 3.25 da base 10 para a base 2 11,010
• 3.8 da base 10 para a base 2 11.1100110011010....
• 6.5 da base 10 para a base 2 110,10
Representação em Ponto Flutuante
Definição 1 (Sistema de Ponto Flutuante)
• Um número real x != 0 é um ponto flutuante (normalizado) se pode ser escrito
como:
Representação em Ponto Flutuante
Considere o sistema F (10, 3, 2, 2). Represente nesse sistema, se
possível, os números:
Representação em Ponto Flutuante
Considere o sistema F (10, 3, 2, 2). Represente nesse sistema, se
possível, os números:
Representação em Ponto Flutuante
Represente no sistema F(10, 3, 5, 5) os números e arredonde.
Representação em Ponto Flutuante
• Para arredondar um número na base β 10, devemos apenas observar
o primeiro dígito a ser descartado.
• Se ele for menor que 5, deixamos os dígitos inalterados;
• Se ele é maior ou igual a 5, devemos somar 1 ao último dígito
remanescente.
Representação em Ponto Flutuante
Represente no sistema F(10, 3, 5, 5) os números e arredonde.
Representação em Ponto Flutuante
Represente no sistema F(10, 3, 5, 5) os números e arredonde.
Arredondamento em Ponto Flutuante
O arredondamento em ponto flutuante é usado para representar um
número real x, dentro dos limites de representação do sistema, que não
pertence ao conjunto F(β, t, m, M).
Representação Numérica
Representação Numérica
• Quantas decimais terá o número 𝜋?
• Infinitas!
• O que poderíamos fazer para representar 𝜋 num computador?
• Um computador é algo intrinsicamente finito em recursos, certo?
Representação Numérica
• Um computador pode representar um conjunto finito dos números
racionais.
• São chamados números de PONTO FLUTUANTE (Floating Point
Numbers - Floats)
• Logo, cada operação realizada a partir de pontos flutuantes leva a
resultados aproximados..
Representação Numérica
• E se falamos de aproximações...
• Precisamos pensar em ERROS..
• E erros provocados por computador podem causar sérios danos..
Representação Numérica
Representação Numérica
• Exemplo Ariane 5
Representação Numérica
• Imagine tentar representar um valor de, por exemplo, 105.350 quilômetros em um
hodômetro que tem um valor máximo de 99.999. O contador "viraria" para 00.000
e contaria até 5.350, a quantia restante.
• Foi esse mesmo tipo de imprecisão que condenou o lançamento do Ariane 5.
• Tecnicamente, o problema é chamado de "estouro de inteiros", o que significa que
os números são muito longos para serem armazenados em um sistema
computacional, às vezes provocando seu mau funcionamento.
Tipos de Erros
• Inerentes
• Truncamentos
• Arredondamentos
Tipos de Erros - Inerentes
• São erros que o usuário não tem condições de evitá-los.
• Eles surgem de modelos matemáticos, medidas, etc.”
Exemplo:
• Calcular o comprimento de uma circunferência.
• C=2𝜋r
• Como 𝜋 é irracional, C não pode ser calculado exatamente em um computador
Tipos de Erros - Truncamento
• “São erros que surgem quando substituímos um processo matemático infinito por
uma parte finita dele, pois, na implementação de algoritmos numéricos em um
computador, podemos realizar apenas um número de operações aritméticas.”
• Trocamos uma série infinita por uma finita.
Tipos de Erros - Arredondamento
• “São cometidos pelos computadores ao realizarem operações aritméticas. Isto se
deve ao fato de que um computador possui uma palavra (local onde armazena
dados) de tamanho finito e consequentemente só consegue representar um
subconjunto finito de números racionais.”
• Exemplo:
Representação e Cálculos de Erros
• Precisamos de medidas para representar erros.
As mais comuns são:
• Erro absoluto
• Erro relativo
• Erro Percentual
Erros
Erros – Exemplo 1
Em 10.000 itens a serem contados, foram encontrados 9.999.
• Valor exato:
• Valor aproximado:
• Erro absoluto:
• Erro relativo:
• Erro percentual:
Erros – Exemplo 2
Em 10 itens a serem contados, foram encontrados 9.
• Valor exato:
• Valor aproximado:
• Erro absoluto:
• Erro relativo:
• Erro percentual:
Erros
Notar que...
• Em ambos os casos, os erros absolutos foram iguais
• Os erros relativos e percentuais, entretanto, foram bastante distintos:
Exemplo 1 Exemplo 2
• O erro relativo (e percentual) são mais adequados
Representação Numérica
• Sistema de Ponto Flutuante
• O conjunto de todos os números de máquina é chamado de sistema de ponto
flutuante, geralmente representado por F (b, t, e1 e e2 )
Representação Numérica
• Sistema de Ponto Flutuante
• O conjunto de todos os números de máquina é chamado de sistema de ponto
flutuante, geralmente representado por F (b, t, e1 e e2 )
b, t, e1, e2
10, 5, -5, 5
2, 4, -10, 10
Representação Numérica
• Sistema de Ponto Flutuante
• O conjunto de todos os números de máquina é chamado de sistema de ponto
flutuante, geralmente representado por F (b, t, e1 e e2 )
b, t, e1, e2 Xmin Xmax
10, 5, -5, 5 0,10000 x 10−5 0,99999 x 105
2, 4, -10, 10 0,1000 x 10−10 0,1111 x 1010
Representação Numérica
• O que acontece quando tentamos representar o número 100000 num sistema F (10,
6, -5, 5)?
• Qual o valor xmax para esta máquina?
• 0,999999 x 105
• Logo, como representar 100.000?
• Não é possível representar.
Representação Numérica
• Visualmente (Overflow e Underflow )
Erros
• Considere o valor exato x= 3247,512 e o valor aproximado x-barra = 3247,000.
Determine para esse aproximação o erro absoluto e o erro relativo.
• Considere agora o valor exato x=1,512 e o valor aproximado x-barra= 1,000.
Determine para essa aproximação o erro absoluto e relativo.
Erros
• Considere o valor exato x= 3247,512 e o valor aproximado x-barra = 3247,000.
Determine para esse aproximação o erro absoluto e o erro relativo.
• Erro Absoluto = 0,512
• Erro Relativo = 0,000157659
• Considere agora o valor exato x=1,512 e o valor aproximado x-barra= 1,000.
Determine para essa aproximação o erro absoluto e relativo.
• Erro Absoluto = 0,512
• Erro Relativo = 0,338624338
Erros
• O erro absoluto considera o erro sem verificar sua proporcionalidade, enquanto
o erro relativo leva em consideração a razão do erro em relação ao numero
original.
• Considerando os cálculos anteriores verificamos que um erro absoluto de 0,512
gera um erro relativo absurdamente maior no numero x= 1,512 do que no
numero y=3247,512 exatamente por não considerar o erro proporcionalmente.
Erros
• Ao se tentar armazenar o número 0,8 em ponto flutuante, o número será
arredondado, tendo seu valor alterado.
• sabendo-se que 0,8 = 0,1100110011001100....
• E que, em precisão simples, terem os 23 bits após a vírgula, qual será o
verdadeiro valor armazenado ?
• 0,8 » 0,110011001100110011001100110011001100... 20
• Onde em vermelho estão os bits depois do vigésimo terceiro.
Erros
• 0,8 » 0,110011001100110011001100110011001100... X 20
• Como os bits que serão abandonados representam mais do que a metade da
última unidade, soma-se 1 ao vigésimo terceiro bit, obtendo-se:
• 0,8 » 0,110011001100110011001101 x 20 > 0,8
• Será armazenado um número maior que 0,8, neste caso.
• Chamando esse valor armazenado de A, tem-se:
• A = 0,8000000119209... Tem-se um número ligeiramente maior que 0,8, neste
caso.
Erros
• E se quiséssemos armazenar 1,8, o que seria, de fato, armazenado?
• 1,8 = 1,1100110011001100... » 0,111001100110011001100110.. x 21
• B será ligeiramente menor que 1,8, pois foi abandonado 0,011001100...
• B = 1,79999995232... Tem-se um número ligeiramente menor que 1,8, neste
caso.
Erros
• O importante disso tudo é ver que, em binário, o número é formado pela soma
de potências de dois; potências positiva e negativas.
• Quando um número não pode ser formado por um número finito dessas
potências, como é o caso de 0,8, ele se torna no que em decimal se chama
dízima, necessitando de infinitos bits para representá-lo.
• Como, em ponto flutuante, temos um número finito de bits, o número será
arredondado, para caber nesse número de bits.
• Daí o erro em sua representação.
Erros
• O arredondamento pode ser para mais ou para menos, como acabamos de ver.
Tudo depende do valor a ser abandonado.
• Se esse valor for maior que metade da unidade representada pelo último bit,
arredonda-se para cima, somando-se 1 ao último bit representado.
• Se esse valor for menor que metade da unidade representada pelo último bit,
arredonda-se para baixo, eliminando-se os bits a partir do vigésimo quarto.
Erros
Efeitos numéricos – cancelamento
• Ocorre quando subtraímos dois números “quase” iguais. Veja o exemplo onde
nossa maquina é F(10, 10, 10, 10):
Erros
Normalizando fica 0.5031420000 × 10−4 .
Um resultado melhor seria obtido se usássemos a expressão:
Erros
Considere o sistema F(3,2,-1,2);
Qual o menor numero representável nessa máquina?
Qual o maior numero representável nessa máquina?
Erros
Considere o sistema F(3,2,-1,2);
Qual o menor numero representável nessa máquina?
-0,10 x 3−1
Qual o maior numero representável nessa máquina?
0,22 x 32
FIM!