Você está na página 1de 76

Introdução

Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erros

2019
Métodos Numéricos Computacionais

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Conteúdo

1 Introdução

2 Tipos de erros
Erros na fase de modelagem
Erros na fase de resolução
Representação de números
Erro de arredondamento
Sistema binário

3 Erros na Aritmética de ponto flutuante


Erro de truncamento
Medidas de erro

4 Desastres causados por erros

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erros

Como os métodos buscam soluções aproximadas para


problemas reais, nem sempre o valor fornecido se encaixa
dentro de limites razoáveis, mesmo quando se aplica um
método adequado e os cálculos são efetuados de maneira
correta.
Nas soluções numéricas há sempre a presença do erro.
Raramente o erro pode ser evitado devido à limitações nos
modelos e a limites computacionais.
O erro pode ser controlado.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Etapas da solução de um problema

No processo de solução de um problema fı́sico por meio de


aplicação de métodos numéricos, o erro pode aparecer.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

A solução de um problema qualquer poder ser obtida em quatro


etapas:
Definição do problema
Modelagem matemática (Erro)
Solução numérica (Erro)
Análise dos resultados

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de modelagem

Ao se tentar representar um fenômeno fı́sico por meio de um


modelo matemático, raramente temos uma descrição correta
do fenômeno.

Simplificações para a construção do modelo.


Dados de entrada contém imprecisão inerente: medidas são
obtidas de equipamentos especı́ficos ou são dados resultantes
de pesquisas.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de modelagem

Exemplo
Um engenheiro quer medir a altura de um prédio. Ele tem um
cronômetro e uma bolinha de metal e a equação abaixo:

1
d = d0 + vo t + at 2 (1)
2
em que
d: distância final.
do : distância inicial.
vo : velocidade inicial.
t : tempo.
a: aceleração.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de modelagem

Para determinar a altura, o engenheiro sobe então ao topo do


edifı́cio e mede o tempo que a bolinha gasta para tocar o solo
como 3 segundos.
Levando este valor à equação 1, obtém-se:
1
d = 0 + 0 × 3 + × 9.8 × (3)2
2
d = 44, 1m

Este resultado é confiável?


É bem provável que não, pois:

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de modelagem

Problema 1: Uso de simplificação no modelo


Resistência do ar.
Velocidade do vento.
Velocidade dos ventos laterais.
Entre outras.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de modelagem

Problema 2: Precisão das medidas


Erro na medição da leitura do cronômetro.
Para uma pequena variação no tempo medido, existe uma
grande variação na altura do edifı́cio.
Ex: t = 3.5 segundo
1
d =0+0×3+ × 9.8 × (3.5)2 = 60m
2

∆t(%)=16.5% e ∆d(%)= 36%


Para uma variação de 16.7% no valor lido no cronômetro, a
altura calculada apresenta uma variação de 36%.
Errar 0.5 segundos no tempo significa aumentar a altura do
prédio em 15.9m.
Métodos Numéricos Computacionais
Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Exemplo [CVBB]

Produção de plástico
Um fabricante de plásticos produz 2 tipos de plástico: o normal e o
especial. Cada tonelada de plástico normal exige 2 horas na
máquina A e 5 horas na máquina B; cada tonelada de plástico
especial exige 2 horas na máquina A e 3 horas na máquina B. Se a
máquina A está disponı́vel 8 horas por dia e a máquina B está
disponı́vel 15 horas por dia, quantas toneladas de cada tipo de
plástico deveriam ser produzidas diariamente de maneira que as
duas máquinas se mantenham totalmente ocupadas?

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Exemplo [CVBB]

Construção do modelo matemático: Modelagem

plástico normal = variável x


plástico especial = variável y

2x + 2y = 8
(2)
5x + 3y = 15
Escolha de um método numérico - Substituição de variáveis
x = 1.5 toneladas
y = 2.5 toneladas

Análise dos resultados

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erros na fase de resolução

Resolução de modelos matemáticos: necessária a utilização de


instrumentos de cálculo.
Instrumentos de cálculo: representação dos números e
operações numéricas efetuadas.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Exemplo

Exemplo 1 [RL14]
Calcular a área de uma circunferência de raio 100 m.

Resultados obtidos:

1 A = 31400m2
2 A = 31416m2
3 A = 31415.92654m2
Como justificar as diferenças entre os resultados? É possı́vel obter
exatamente esta área?

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Exemplo

Exemplo 2 [RL14]
Efetuar o somatório em uma calculadora e em um computador:
30000
X
S= xi , para xi = 0.5 e xi = 0.11
i=1

Resultados obtidos:

xi Calculadora Computador
0.5 S = 15000 S = 15000
0.11 S = 3300 S = 3299.99691

Como justificar a diferença entre os resultados obtidos pela


calculadora e pelo computador para xi = 0.11?
Métodos Numéricos Computacionais
Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conclusões sobre os exemplos

Os erros ocorridos nos dois problemas dependem da


representação dos números na máquina utilizada.
A representação de um número depende da base escolhida
ou disponı́vel na máquina em em uso e do número máximo
de dı́gitos usados na sua representação.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conclusões sobre os exemplos

O número π não pode ser representado através de um número


finito de dı́gitos decimais.
Resultados a, b e c no Exemplo 1 são diferentes porque
usou-se quantidades de dı́gitos diferentes para o número π.
O erro neste caso depende exclusivamente da aproximação.
Qualquer cálculo que envolva números que não podem ser
representados através de um número finito de dı́gitos não
fornecerá com resultado valor exato.
Quanto maior o número de dı́gitos utilizados, maior será a
precisão obtida.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conclusões sobre os exemplos

Além disto, um número pode ter representação finita em uma


base e não finita em outras bases.
No exemplo 2, o número 0.5 tem representação finita no
sistema binário e o número 0.11 tem representação não finita.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erro de arredondamento

O erro de arredondamento é consequência do fato de os


computadores poderem representar apenas quantidades com
números finitos de algarismos.

π, e ou 7 representem quantidades especı́ficas, porém, elas
não podem ser expressas exatamente por um número limitado
de algarismos.
Por exemplo, π = 3, 141592653589793238462643 . . .
Como os computadores mantêm apenas um número finito de
algarismos significativos, tais números jamais podem ser
representados exatamente.
A omissão dos algarismos significativos remanescentes é
chamada de erro de arredondamento.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Erro de arredondamento

Além disso, como os computadores usam uma representação


na base 2, não podem representar precisamente certos
números exatos na base 10.
Logo, alguns números decimais não podem ser exatamente
representados por um computador.
Erro de arredondamento é causado por esta imperfeição na
representação de um número.
Para analisar as causas e consequências desse tipo de erro
precisa-se conhecer como é realizada a conversão entre bases
e como os números são armazenados em um computador.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Sistema Binário

O sistema decimal não pode ser implementado


satisfatoriamente em sistemas digitais.
Exemplo: é difı́cil projetar um equipamento eletrônico que
possa trabalhar com 10 nı́veis diferentes de tensão (um para
cada algarismo decimal, do 0 ao 9).
É fácil implementar circuitos eletrônicos simples e precisos que
operem somente com dois nı́veis de tensão.
Por esta razão, quase todo sistema digital usa o sistema de
numeração binário (base 2) como sistema de numeração
básico para suas operações.
Obs: Outros sistemas de numeração, às vezes, podem ser
usados em conjunção com o sistema binário.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Sistema Binário

No sistema binário existem apenas dois sı́mbolos ou valores


possı́veis para os dı́gitos: 0 e 1.
Ainda assim, pode ser usado para representar qualquer valor
que possa ser representado no sistema decimal ou em
qualquer outro sistema.
Número maior de dı́gitos.
Sistema de valor posicional.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Sistema Binário

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Sistema Binário

As posições à esquerda da vı́rgula binária representam as


potências positivas de 2.
Posições à direita representam as potências negativas de 2.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Um número na base 2 pode ser escrito como:

am bm + . . . + a2 22 + a1 21 + a0 20 + a1 2−1 + a2 2−2 + . . . + an 2n
Xm
= ai 2i
i=n

em que
ai : 0 ou 1.
n,m : números inteiros, n 6 0 e m > 0
Para mudar de base 2 para base 10, basta multiplicar o dı́gito
binário por uma potência de 2 adequada.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10112 =?10
10112 = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
=8+0+2+1
= 1110

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10112 =?10
10112 = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
=8+0+2+1
= 1110

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10112 =?10
10112 = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
=8+0+2+1
= 1110

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10112 =?10
10112 = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
=8+0+2+1
= 1110

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10, 12 =?10
10, 12 = 1 × 21 + 0 × 20 + 1 × 2−1
= 2 + 0 + 0, 5
= 2, 510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10, 12 =?10
10, 12 = 1 × 21 + 0 × 20 + 1 × 2−1
= 2 + 0 + 0, 5
= 2, 510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10, 12 =?10
10, 12 = 1 × 21 + 0 × 20 + 1 × 2−1
= 2 + 0 + 0, 5
= 2, 510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

10, 12 =?10
10, 12 = 1 × 21 + 0 × 20 + 1 × 2−1
= 2 + 0 + 0, 5
= 2, 510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

11, 012 =?10


11, 012 = 1 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2
= 3, 2510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

11, 012 =?10


11, 012 = 1 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2
= 3, 2510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Exemplo

11, 012 =?10


11, 012 = 1 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2
= 3, 2510

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Para converter um número da base 10 para a base 2, tem-se que


aplicar um processo para a parte inteira e um outro para a parte
fracionária.

Número inteiro na base 10 para base 2

Método das divisões sucessivas.


Consiste em dividir o número por 2, a seguir divide-se por 2 o
quociente encontrado e assim o processo é repetido até que o
último quociente seja igual a 1.
O número binário é formado pela concatenação do último
quociente com os restos das divisões lidos em sentido inverso
ao que foram obtidos.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base:Método das divisões sucessivas

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base:Método das divisões sucessivas

Exemplo
1810 =?2

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base:Método das divisões sucessivas

Exemplo
1110 =?2

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Número fracionário na base 10 para base 2

Método das multiplicações sucessivas.


Multiplicar o número fracionário por 2.
Deste resultado, a parte inteira será o primeiro dı́gito do
número na base 2 e a parte fracionária é novamente
multiplicada por 2.
O processo é repetido até que a parte fracionária do último
produto seja igual a zero.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base
Multiplicações sucessivas

Exemplo
0.187510 =?2

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base
Exercı́cios

Exemplo
1 1810 =?2
2 13, 2510 =?2
3 0, 110 =?2
4 11002 =?10
5 1100, 012 =?10

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Observações

Vimos que 0.110 = 0.0001100110011 . . ..


Ou seja, o número 0.110 não tem representação binária finita.
Representação não finita: pode acarretar a ocorrência de erros
aparentemente inexplicáveis.
Computador: possui uma quantidade fixa de posições para
guardar os dı́gitos de um número: irá armazenar uma
aproximação para 0.110 .
Aproximação será usada para realizar os cálculos: resultados
não serão exatos.

Métodos Numéricos Computacionais


Introdução
Tipos de erros Erros na fase de modelagem
Erros na Aritmética de ponto flutuante Erros na fase de resolução
Desastres causados por erros

Conversão de base

Observações

P30000
Isso explica o resultado obtido por S = i=1 0.11

Explicação
Computador hipotético com 6 dı́gitos.
0.1110 = 0.0001112 .
0.0001112 é 0.10937510
Portanto, todas as operações que envolvem o número 0.1110
seriam realizadas com esta aproximação.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Um computador ou calculadora representa um número real no


sistema denominado aritmética de ponto flutuante. Neste sistema,
o número r será representado na forma:
Formato padrão
r = ±.(d1 d2 . . . dp ) × B e

em que
B: base em que a máquina opera.
p: número de dı́gitos na mantissa,
0 ≤ dj ≤ (B − 1), j = 1, . . . , p.
Números normalizados: d1 6= 0.
e: é o expoente inteiro.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Formato padrão
r = ±.(d1 d2 . . . dp ) × B e

Um número de ponto flutuante tem três partes: o sinal, a


parte fracionária (chamada de significando ou mantissa) e o
expoente.
As três partes têm um comprimento total
fixo que depende do computador e do tipo de número:
precisão simples, dupla ou estendida.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo
Para uma máquina que opera no sistema: B = 10; p = 3; e
e [−5, 5] informe:
Os números representados.
O menor número representado em valor absoluto.
O maior número representado em valor absoluto.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo: solução
Números: 0.d1 d2 d3 × 10e , 0 ≤ dj ≤ 9, d1 6= 0, e [−5, 5]

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo: solução
Números: 0.d1 d2 d3 × 10e , 0 ≤ dj ≤ 9, d1 6= 0, e [−5, 5]
Menor: m = 0.100 × 10−5 = 10−6 .

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo: solução
Números: 0.d1 d2 d3 × 10e , 0 ≤ dj ≤ 9, d1 6= 0, e [−5, 5]
Menor: m = 0.100 × 10−5 = 10−6 .
Maior: 0.9999 × 105 = 99900.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato Padrão

A representação de um número real será realizada por meio de


truncamento ou arredondamento.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Seja o conjunto dos números reais < e o seguinte conjunto:


G = {x ∈ <|m ≤ |x| ≤ M}. Dado um número real x, três
situações poderão ocorrer:
1 x ∈ G : x = 235.89 −→ 0.235 × 103 (truncamento) e
0.236 × 103 (arredondamento).
2 |x| < m: x = 0.345 × 10−7 −→ underflow.
3 |x| > M : x = 0.875 × 109 −→ overflow.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Números discretos

Os números de ponto flutuante são discretos e não contı́nuos


como um número real definido na matemática.
O conceito de sempre existir um número real entre dois
números reais quaisquer não é válido para os números de
ponto flutuante.
Em qualquer máquina, apenas um subconjunto dos números
reais é representado exatamente.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Números discretos: Exemplo [CF07]

Exemplo
Computador hipotético com dois dı́gitos (p = 2), base B = 2 e
expoente na faixa e ∈ [−1, 2].

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Números discretos: Exemplo [CF07]

Números representados:

±.10 × 2e ou ± .11 × 2e , e = −1, . . . , −2.

Conversão de binário para decimal número menor que 1:

.10 = 1/2

.11 = 3/4

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Números discretos: Exemplo [CF07]

Únicos números positivos representáveis neste computador:

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo 3 [RL14]
Dar a representação dos números a seguir num sistema de
aritmética de ponto flutuante com: B = 10, p = 3 e e ∈ [−4, 4].

Representação Representação
x
Arredondamento Truncamento
1.25
10.053
238.15
2.71828 . . .
0.000007
718235.82

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Formato padrão

Exemplo 3 [RL14]
Representação Representação
x
Arredondamento Truncamento
1.25 0.125 × 101 0.125 × 101
10.053 0.101 × 102 0.100 × 102
238.15 0.238 × 103 0.238 × 103
2.71828 . . . 0.272 × 101 0.271 × 101
0.000007 (expoente menor que -4) -
718235.82 (expoente maior que 4) -

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Operações aritméticas de ponto flutuante

Soma:
A adição requer o alinhamento dos pontos decimais dos dois
números.
Para isto, a mantissa do número de menor expoente deve ser
deslocada para a direita. Este deslocamento deve ser de um
número de casas decimais igual à diferença entre os dois
expoentes.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Operações aritméticas de ponto flutuante

Computador com dois dı́gitos (p = 2), base B = 10, e expoente


e ∈ [−5, 5].

O resultado da adição foi 4.4 em vez de 4.384.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Operações aritméticas de ponto flutuante

Subtração: Subtrair 372 − 371.

A subtração deu 0 em vez de 1.


Subtração de dois números aproximadamente iguais: perda de
precisão → maior fonte de erro nas operações de ponto
flutuante.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Operações aritméticas de ponto flutuante

Multiplicação: Multiplicar 1234 por 0.016


Números armazenados no formato indicado.
Multiplica-se as mantissas.
Soma os expoentes.
Resultado é normalizado e arredondado.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Operações aritméticas de ponto flutuante

Divisão:
Números armazenados no formato especificado.
Dividi-se as mantissas.
O resultado é normalizado e arredondando.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Exercı́cios

Para um computador hipotético com dois dı́gitos (p = 2), base


B = 10, e expoente e ∈ [−5, 5], realize as operações e discuta os
resultados:
1 0.0064 ÷ 7312
2 3.51 + 0.045
3 0.1557 × 101 + 0.4381 × 10−1
4 36.41 − 26.86

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erro de truncamento

Provenientes da utilização de processos que deveriam ser


infinitos ou muito grandes para a determinação de um valor e
que, por razões práticas são truncados.
Processos infinitos são utilizados na avaliação de funções
matemáticas como seno, exponencial, funções
trigonométricas, entre outras.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erro de truncamento

Aproximar f (x) = sin(x) por uma série:

Resultado é melhorado com o aumento de t.


Erro: truncamento da série.
Métodos Numéricos Computacionais
Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erros absolutos

Erro absoluto: diferença entre o valor exato de um número x


e de seu valor aproximado x̄.

EAx = x − x̄

Desvantagem: Não leva em conta a ordem de grandeza do


valor que está sendo examinado.
Um erro de um centı́metro é muito mais significativo quando
se mede um rebite do que uma ponte.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Erros relativos

Forma de considerar o valor das quantidades que estão sendo


calculadas.
Erro relativo:
x − x̄ EAx
ERx = =
x x

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Medidas de erro

Exemplo [CC08]
Suponha que você tenha a tarefa de medir os comprimentos de
uma ponte e de um rebite e que conseguiu 9.999 e 9 cm,
respectivamente. Se os valores verdadeiros forem 10.000 e 10 cm,
respectivamente, calcule (a) o erro absoluto e (b) o erro relativo
percentual para cada caso.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Falha do lançamento do mı́ssil Patriot

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Falha no lançamento do mı́ssil - 25/02/1991 (Guerra da Golfo)

Custo: Morte de 28 soldados e mais de 100 feridos.

Desastre: Durante a guerra do Golfo foi usado um sistema de


defesa das tropas americanas chamado “Sistema de Defesa
com Mı́sseis Aéreos Patriot”. Em 25/02/1991 este sistema de
defesa e detecção de ataques inimigos falhou, não conseguindo
interceptar um mı́ssil Scud lançado pela Arábia Saudita.

Causa: Erro de arredondamento no cálculo e na medição do


tempo. A unidade de tempo usada para incrementar o relógio
era de 1/10 segundos [Arn98].

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Explosão do Ariane 5 04/06/1996

Custo: 500 milhões de dólares (era um foguete não-tripulado).

Desastre: 37 segundos após sua decolagem, o foguete Ariane 5


se desviou bruscamente do curso previsto, partiu-se e explodiu.

Causa: Perda total da orientação e das informações de


altitude pelo pelo software que controla o alinhamento da
plataforma inercial. Erro devido a execução de uma conversão
de dados de um número de 64 bits em ponto flutuante para
um inteiro de 16 bits. O valor do número em ponto flutuante
era maior do que poderia ser representado pelo inteiro de 16
bits com sinal. O resultado foi um operando inválido [Hin16].

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Douglas N. Arnold.
Some disasters attributable to bad numerical computing,
Agosto 1998.
Steven C Chapra and Raymond P Canale.
Métodos numéricos para engenharia.
McGraw-Hill, 2008.
Frederico Ferreira Campos Filho.
Algoritmos numéricos.
LTC, 2007.
A. Cherri, A. Vianna, A. Balbo, and E. Baptista.
Apostila métodos numéricos computacionais.
José Nivaldo Hinkel.
Ariane 5: um erro numérico(overflow) levou à falha no
primeiro lançamento, Agosto 2016.

Métodos Numéricos Computacionais


Introdução
Tipos de erros
Erros na Aritmética de ponto flutuante
Desastres causados por erros

Márcia A Gomes Ruggiero and Vera Lúcia da Rocha Lopes.


Cálculo numérico: aspectos teóricos e computacionais.
Pearson, 2014.

Métodos Numéricos Computacionais

Você também pode gostar