Você está na página 1de 45

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!

Você também pode gostar