Cap1 - Erros em Ponto Flutuante - v1-1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 73

Matemática Aplicada

Engenharia Automóvel
Engenharia e Gestão Industrial
Engenharia Mecânica

Erros e Representação de
Números Reais em Ponto
Flutuante
Objetivo:
Introduzir o estudo dos métodos numéricos. Noções de
erro. Representação de números reais em ponto flutuante.
Arredondamento. Propagação de erros. Cancelamento
subtrativo.

2014
4 de março de 2014 Versão 1.1
Tabela de Conteúdo
1. Motivação para o estudo de métodos numéricos
2. Erros
2.1. Tipos de erros
2.2. Fontes de erro
2.3. Noções elementares da teoria de erros
2.4. Erros: caso vetorial
3. Erros de arredondamento
3.1. Representação de números reais
3.2. Representação em ponto (ou vı́rgula) flu-
tuante (normalizada)
3.3. Precisão simples e dupla
3.4. Algumas observações sobre operações com
números em ponto flutuante
3.5. Tipos de Arredondamento
4. Casas decimais corretas e algarismos significati-
Tabela de Conteúdo (cont.) 3
vos
5. Propagação de erros
5.1. Motivação
5.2. Propagação de erros nas operações aritmé-
ticas
5.3. Cancelamento subtrativo
5.4. O condicionamento matemático
5.5. A estabilidade numérica
5.6. Algumas consequências de um deficiente
estudo dos erros de arredondamento
6. Referências
Soluções dos Exercı́cios

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Tabela de Conteúdo (cont.) 4
O aparecimento do nome Análise Numérica remota aos anos
40 e está ligado ao desenvolvimento dos computadores.
Métodos analı́ticos e Métodos Numéricos
Métodos analı́ticos:
• fornecem uma solução ou fórmula geral (que pode ser
complicada de usar na prática);
• dão geralmente informação sobre a natureza do pro-
blema e dependência das soluções;
• Nem sempre é possı́vel obter soluções analı́ticas.
Métodos Numéricos:
• fornecem uma solução aproximada para o modelo mate-
mático, sendo necessário estudar o erro da aproxi-
mação.
• usam-se quando não se conhecem métodos analı́ticos
ou quando a aplicação destes é difı́cil.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


5
Um cálculo numérico consiste numa sucessão finita de opera-
ções (algoritmo ou método) sobre dados numéricos, proveni-
entes geralmente de observações ou medições, ou resultantes
de cálculos numéricos anteriores.

1. Motivação para o estudo de métodos numéricos

Alguns exemplos de problemas onde os métodos numéricos


são úteis:
Exemplo 1 Calcular o valor máximo e/ou o valor mı́nimo
da função
F (x) = x6 + 5x4 − 9x + 1
no intervalo [0, 1], conduz à resolução da equação po-
linomial do quinto grau
F ′ (x) = 6x5 + 20x3 − 9 = 0.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 1: Motivação para o estudo de métodos numéricos 6
Método da bissecção
400

300

y=6x5+20x3−9
200

100

0
x1 x3 x
2
x
−100

−200

−300

−400
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

Aproximação da raiz real do polinómio usando o método


da bisseção e partindo do intervalo [−2, 2].
A raiz é aproximadamente 0.7294022.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 1: Motivação para o estudo de métodos numéricos 7
Exemplo 2 Calcular os valores extremos (máximos e/ou
mı́nimos) no primeiro quadrante da função de duas
variáveis reais

F (x, y) = x6 + 3x4 y 2 + 4x2 y 4 − 2x + y 6 − 4y

conduz à resolução do sistema não linear



 ∂F

 = 6x5 + 12x3 y 2 + 8xy 4 − 2 = 0
 ∂x
.


 ∂F = 6x4 y + 16x2 y 3 + 6y 5 − 4 = 0

∂y

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 1: Motivação para o estudo de métodos numéricos 8
y
2

1.5

0.5

x
0.5 1 1.5 2

No primeiro quadrante a solução do sistema é,


aproximadamente, x = 0.373282, y = 0.843588.
Exemplo 3 Calcular o integral (Estatı́stica)
Z b
2
e−x dx, b constante.
0

(Não é possı́vel obter uma primitiva para a função inte-


granda em termos de funções elementares .)
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 1: Motivação para o estudo de métodos numéricos 9
1

0.9

0.8
2
y=e−x
0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
Z 1
2
O e−x dx corresponde à área da região a sombreado.
0
Usando a Regra de Simpson composta com n = 50 subin-
tervalos, obtém-se
Z 1
2
e−x dx ≈ 0.746824134120318.
0

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 1: Motivação para o estudo de métodos numéricos 10
Exemplo 4 Determinar a função y = y(t) que satisfaz o
seguinte problema de valor inicial
dy
= y 2 + t2 , y(0) = 1.
dt
Metodo de Euler (n=50): y’ = y2 + t2 e y(0) = 1
35

30

25

20

15

10

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Aproximação (da solução) obtida usando o método de


1
Euler com passo h = .
50
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 1: Motivação para o estudo de métodos numéricos 11
Exemplo 5 Suponha que são dados os pontos da figura.
Na figura estão representadas duas técnicas numéricas
para obter uma função que aproxime estes pontos.
45
pontos
recta da regressão linear
40 p6(x)

35

30
y=f(x)

25

20

15

10

5
5 10 15 20 25
x

Exemplo de interpolação polinomial e regressão linear.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


12
2. Erros
2.1. Tipos de erros
(ver [9])

Problema Fı́sico: xPF


em eg
❄ ec ❄
Modelo Matemático: x ✲ Solução final: x
e

et ea

✲ Problema Numérico: xPN

• xPF é a solução do Problema Fı́sico.

• x é a solução exata do Modelo Matemático.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 13
• xPN é a solução aproximada do Problema Numérico.

• x
e é a solução obtida no fim do processo numérico.

• em é o erro cometido na fase de modelação.

• et é o erro de truncatura.

• ec é o erro computacional (ec = ea + et ).

• ea é o erro de arredondamento.

• eg é o erro global (eg = em + ec ).

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 14
2.2. Fontes de erro
Erros de modelação podem ser controlados com uma es-
colha adequada do modelo matemático.
Erros nos dados podem ser melhorados se forem medidos
com maior exatidão.
Erros de truncatura surgem quando o processo numérico
utiliza um número finito de passos em vez de um
número infinito ou limite. Também são considerados
erros de truncatura (ou erros de discretização) aque-
les que surgem do facto de aproximarmos um pro-
cesso contı́nuo por um processo de natureza discreta
(Ex.: aproximar um integral por uma soma ponde-
rada de valores da função integranda).
Erros de arredondamento surgem devido à representação
de números em computador e às operações entre es-
ses números (onde apenas podemos manipular um
número finito de algarismos).
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 2: Erros 15
2.3. Noções elementares da teoria de erros
No que se segue, xe designa um valor aproximado do valor
exato (número real) x.
Definição (erro):
Chama-se erro da aproximação x
e do valor x, e denota-
se por exe, o valor

exe = x − x
e.

Definição (erro absoluto):


Chama-se erro absoluto da aproximação x
e do valor x,
e denota-se por |exe|, o valor

|exe| = |x − x
e|.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 16

Definição (majorante do erro absoluto):


Um majorante do erro absoluto (ou majorante do erro)
é um número real η ≥ 0 tal que

|exe| ≤ η.

Observação:
Cometer um erro absoluto de um metro na medição da
distância entre Leiria e Coimbra pode ser considerado bom
mas cometer um erro absoluto de um metro na medição da
altura de uma pessoa é um erro grave.
Assim, tem interesse usar uma medida de erro independente
da escala/grandeza dos números: o erro relativo.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 17

Definição (erro relativo):


Chama-se erro relativo da aproximação x
e do valor x,
e denota-se por δxe, o valor

|exe| |x − xe|
δxe = = (x 6= 0).
|x| |x|
NOTA: O valor do erro relativo pode ser expresso em per-
centagem
δxe × 100 %.

Observações:
1) O majorante do erro deve ser calculado de forma a ser o
menor possı́vel.
2) A expressão x = xe ± η significa que η é um majorante
do erro absoluto ou, equivalentemente, que se tem

x
e−η ≤ x ≤ x
e + η ⇔ x ∈ [e
x − η, x
e + η].

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 18

Exemplo. Considere-se o valor aproximado 2.449 de 6.
(a) Calcule o erro absoluto da aproximação xe;
(b) Indique um majorante para o erro absoluto |exe|;
(c) Calcule o erro relativo da aproximação x
e;
(d) Calcule uma estimativa da percentagem de erro da apro-
ximação x
e.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 19
Solução:
(a) Como √
6 = 2.44948974...,
o erro absoluto da aproximação é


|e f6 | = 6 − 2.449 = 0.48974... × 10−3.

(b) Um majorante do erro é, por exemplo, 0.49 × 10−3 e


podemos escrever

6 = 2.449 ± 0.00049.

(c) O erro relativo da aproximação x


e é

6 − 2.449
δxe = √ = 0.19993665... × 10−3 .
6

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 20
(d) A percentagem de erro é

100 × 0.19993665... × 10−3 ≈ 0.02%.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 21
Exercı́cio 2.1. Calcule o erro absoluto e o erro relativo
das seguintes aproximações:
1
e = 0.3333 do valor exato x = ;
(a) x
3
1
(b) x
e = 0.0003 do valor exato x = .
3000
(c) Qual a aproximação mais precisa?

Exercı́cio 2.2. ([10]) Suponha que se conseguiu demons-


trar teoricamente que existem 64.345 × 1023 moléculas de
uma determinada substância num recipiente. No entanto,
utilizando métodos laboratoriais apropriados obteve-se o
valor experimental de 64.632 × 1023 moléculas. Determine
o erro absoluto e o erro relativo da aproximação obtida.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 22
Observações:
1. Uma estimativa do erro relativo pode ser obtida com
η
δxe ≈ (e
x 6= 0)
|e
x|

onde η é um majorante do erro absoluto da apro-


ximação.
|exe|
2. Majorantes do erro relativo δxe = quando sabe-
|x|
mos que x = x e ± η:
η
(a) se xe − η > 0 então δxe ≤ ;
x
e−η
η
(b) se xe + η < 0 então δxe ≤ .
|e
x + η|
(c) se 0 ∈ [e x − η, x
e + η], não é possı́vel encontrar
um majorante porque o denominador do erro
relativo pode assumir valores positivos arbitra-
riamente pequenos.
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 2: Erros 23
Exercı́cio 2.3. Seja x = 2.57 ± 0.005.

(a) Indique um valor aproximado de x;


(b) Indique um majorante do erro absoluto da aproximação
x
e;
(c) Indique uma estimativa para o erro relativo δxe;
(d) Indique um majorante para o erro relativo δxe.

2.4. Erros: caso vetorial


Se x é um vetor e x
e uma sua aproximação usa-se uma norma
para calcular o erro.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 24

Definição (erro absoluto (caso vetorial)):


Seja x
e um valor aproximado do valor exato x.
Chama-se erro absoluto da aproximação x
ea

exe = kx − x
ek

usando uma norma adequada.

Definição (erro relativo (caso vetorial)):


Seja x
e um valor aproximado do valor exato x.
Chama-se erro relativo da aproximação x
ea

kx − x
ek
δxe = (x 6= 0)
kxk

usando uma norma adequada.


Observação: De modo análogo ao caso escalar, também
podemos representar o erro relativo em percentagem.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 25
Exemplo. Numa experiência fez-se variar um dado parâmetro
e obteve-se o seguinte vetor de dados

(6.71, 6.90, 6.34).

Sabendo que teoricamente eram esperados os seguintes valo-


res
(6.70, 6.95, 6.42),
calcule o erro absoluto e o erro relativo dos dados expe-
rimentais usando a norma Euclidiana (também chamada
norma 2).

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 2: Erros 26
Solução: Temos x = (6.70, 6.95, 6.42) e x
e = (6.71, 6.90, 6.34).

exe = kx − x
e k2
p
= (6.70 − 6.71)2 + (6.95 − 6.90)2 + (6.42 − 6.34)2
≈ 0.09487
exe
δxe = √ ≈ 0.008183
6.702 + 6.952 + 6.422


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


27
3. Erros de arredondamento

Como o principal meio de cálculo em Análise Numérica é


o computador, temos todo o interesse em conhecer a ma-
neira como os computadores representam/armazenam os
números reais e em perceber que há limitações nesta re-
presentação.
Designa-se por erro de arredondamento a omissão
de dı́gitos significativos causada pela armazenagem
e cálculos em computador.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 28
3.1. Representação de números reais
Um número real x admite várias representações.
Exemplos de representação de números reais
121
• x= = 30.25 (dı́zima finita)
4
1
• x = = 0.3333333 . . . (dı́zima infinita periódica)
3
1
• x = = 0.(142857) . . . (dı́zima infinita periódica)
7

• x = 2 = 1.414213562 . . .(dı́zima infinita não periódica)
• 1.62510 (base 10) = 1.1012(base 2)
(1.1012 = 1 × 20 + 1 × 2−1 + 0 × 2−2 + 1 × 2−3 )
1
• ☛ = 0.110 = 0.000110011 . . .2 (comentar!)
10
Nota: Usaremos um ponto (notação inglesa) em vez de uma
vı́rgula (notação portuguesa) como separador da parte inteira e
parte fracionária.
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 29
Exemplo (base 10):

534.7201 = 5 × 102 + 3 × 101 + 4 × 100


+7 × 10−1 + 2 × 10−2 + 0 × 10−3
+1 × 10−4

5 3 4 r 7 2 0 1
✁✁
✕ ✻ ✻ ✻ ✻ ✻❆❑❆ ❅■

2 0 −2 ❆
10 10 10 −3 10
−4
101 10−1 10
ponto decimal

Parte inteira Parte fracionária


5 3 4 · 7 2 0 1

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 30
Exemplo (base 2):

101.00012 = 1 × 22 + 0 × 21 + 1 × 20
+0 × 2−1 + 0 × 2−2 + 0 × 2−3
+1 × 2−4 = 5.0625.

1 0 1 r 0 0 0 1
✁✁
✕ ✻ ✻ ✻ ✻ ✻❆❑❆ ❅■

2 0 −2 ❆
2 2 2 −3 2
−4
21 2−1 2
ponto binário

Parte inteira Parte fracionária


1 0 1 · 0 0 0 1

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 31
3.2. Representação em ponto (ou vı́rgula) flutuante
(normalizada)
Seja β ∈ N\{1} a base do sistema de numeração utilizado.
Então um qualquer número real x pode ser representado
em notação cientı́fica como

x = ± . d1 d2 . . . dt × β e
= ± d1 d2 . . . dt ×β e−t
| {z }
m
onde
• m é a mantissa possuindo t algarismos entre 0 e β −1;
• e ∈ Z é o expoente, L ≤ e ≤ U;
• t é o número de dı́gitos significativos da mantissa.
• d1 6= 0 (representação normalizada da mantissa).
Neste caso, tem-se
β −1 ≤ . d1 d2 . . . dt < 1.
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 32
O sistema de representação de números reais em vı́rgula
flutuante, é caracterizado por:
1. base β;
2. número de dı́gitos, t, na mantissa;
3. o domı́nio de variação do expoente, L e U.
Abreviadamente, denotamos o sistema de representação de
números reais em vı́rgula flutuante por F (β, t, L, U).

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 33
Observações:
• A maioria dos números em ponto flutuante são nor-
malizados na forma (base 2)

x = ±(1 + m).2e

onde m é a mantissa e e é o expoente. Não é necessário


armazenar o 1 de 1 + m.
A mantissa satisfaz

0 ≤ m < 1.

• Não é necessário guardar o sinal do expoente e pois


este é armazenado de uma forma enviesada como e+n,
de forma a corresponder a um inteiro positivo (n > 0):
– n = 127 no caso de precisão simples;
– n = 1023 no caso de precisão dupla (ver [1, 4, 6]).

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 34
• O número 0 tem uma representação diferente, que não
é normalizada. Mais ainda, −0 e +0 são valores dis-
tintos apesar de, quando comparados, serem tratados
como iguais. (Para mais detalhes ver, por exemplo,
[4, 6].)

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 35

Figura: floatgui.m (ver [7]).

Observações:
• t representa o número de bits da mantissa;
• O expoente e é tal que L ≤ e ≤ U;
• eps= e−t .
No modelo floatgui.m, eps= 2−t .

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 36
3.3. Precisão simples e dupla
É tı́pico dos computadores disporem dos formatos de pre-
cisão simples e a precisão dupla para a representação de
números em ponto flutuante.
No caso da representação em base binária
(β = 2), os dı́gitos binários permitidos são apenas os cha-
mados bits (binary digits), 0 e 1.
A precisão simples corresponde a armazenar 32 bits
1 8 bits 23 bits
± e m
1 9 32
enquanto que na precisão dupla são armazenados 64 bits
1 11 bits 52 bits
± e m
1 13 64

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 37
No Matlab:
• É usada a aritmética de precisão dupla IEEE (ver [4,
5, 3, 6, 11]) que corresponde a cerca de 15-16 dı́gitos
(significativos) em base 10.

• Menor número positivo representado:


realmin= |2−1021−1
{z } = 2.2251 × 10
−308

β L−1

• Maior número positivo representado:


realmax= 21024 (1 − 2−53 ) = 1.7977 × 10+308
| {z }
β U (1−β −t )

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 38
• epsilon da máquina, eps, que é o espaçamento entre 1
e o número em ponto flutuante, maior e mais próximo
de 1:
eps= β 1−t = 2−52 ≃ 2.2204 × 10−16

• unidade de arredondamento da máquina, u:


1
u = eps.
2

(É o valor máximo do erro relativo que ocorre quando


o resultado de uma operação aritmética é arredondado
para o número em ponto flutuante mais próximo.)

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 39
3.4. Algumas observações sobre operações com nú-
meros em ponto flutuante

Nem todas as propriedades dos números reais se mantêm.


Pode ser mostrado que:
• a propriedade comutativa da adição é válida:
• a propriedade comutativa da multiplição é válida:
• a propriedade associativa da adição não é válida.
• A propriedade distributiva da multiplicação em relação
à adição não é válida.
• O zero, 0, não é o único elemento neutro da adição.
De facto, ao adicionar dois números a e b tem-se

a+b=a

para qualquer número b tal que b < a e b <eps.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 40
3.5. Tipos de Arredondamento
➤ Os erros de arredondamento surgem porque os com-
putadores apenas armazenam e calculam com um nú-
mero finito de dı́gitos.
Por exemplo, como o número
π = 3.14159 . . .
não se consegue exprimir através de um número finito
de dı́gitos, π não pode ser representado exatamente
por um computador.
Se considerarmos
π ≈ 3.14,
estamos a efetuar um arredondamento, isto é, estamos
a substituir o valor exato por um valor aproximado,
segundo um critério determinado, e perdendo eventu-
almente alguns algarismos menos relevantes (algaris-
mos mais à direita).
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 41
➤ Os computadores não representam exatamente alguns
números com representação em dı́zima finita na base
10.
Por exemplo, 0.1 tem representação em dı́zima infinita
na base 2.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 42
Todo o real x admite a forma normalizada

x = ±0.a1 a2 . . . at at+1 . . . × 10e

onde aj (j = 1, 2, . . . , n) são algarismos entre 0 e 9. Supo-


nhamos que o computador só permite armazenar t dı́gitos
na mantissa.
A representação de x em F (β, t, L, U) faz-se por arredon-
damento.
Dois tipos de arredondamento
• Arredondamento por corte;
• Arredondamento simétrico.

Definição (Arredondamento por corte):


No arredondamento por corte ao t−ésimo algarismo
tomamos a aproximação

e = ±.a1 a2 . . . at × 10e .
x
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 43

Definição (Arredondamento simétrico):


No arredondamento simétrico tomamos a aproxi-
mação
e = ±0.a′1 a′2 . . . a′t × 10e
x
em que os algarismos a′j (j = 1, 2, . . . , t) resultam
do arredondamento por corte da soma de x com
0.5 × 10e−t .

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 44
Por outras palavras...
Arredondamento por corte (chopping na literatura
de lı́ngua inglesa):
Diz-se que um número x foi arredondado por corte para
t dı́gitos ou algarismos se todos os dı́gitos que se se-
guiam ao t-ésimo dı́gito são desprezados (e os que ficam
não são alterados).
Observações:
1) Para um número x positivo, fazer um arredondamento
por corte corresponde a escolher o número mais próximo
com t dı́gitos que seja inferior a x (arredondamento por
defeito).
2) Para um número x positivo, fazer um arredondamento
por excesso corresponde a escolher o número mais próximo
com t dı́gitos que seja superior a x.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 45
Por outras palavras...
Arredondamento (rounding na literatura de lı́ngua
inglesa):
Diz-se que um número x foi arredondado para t dı́gitos
ou algarismos se x é substituı́do por um número com
t algarismos aproximando x com um erro mı́nimo.
A escolha recai sobre o número mais próximo com t
dı́gitos.
A única dúvida está em como arredondar um número x com
t + 1 dı́gitos no caso de empate. Neste caso, vários critérios
são possı́veis, entre os quais:
• Arredondamento simétrico (o que utilizamos):
em caso de empate, arredondar (em valor absoluto)
por excesso (round away from zero).

• Arredondamento para número com último dı́gito par


(round to even).
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 46
Exemplo. Considere-se o sistema de vı́rgula flutuante
F (10, 5, −99, 99). Considere também os números

x = 5, y = 0.00234645 × 106 , z = 45.67 × 10−300

e w = 0.023 × 10113 .
Vamos estudar a representação destes números no sistema
de vı́rgula flutuante indicado.

Solução: Como x = 5 = 2.2360679774997..., então
• x ≈ 0.22360 × 101 num arredondamento por corte;
• x ≈ 0.22361 × 101 num arredondamento simétrico.

Para y = 0.00234645 × 106 , temos


• y ≈ 0.23464 × 104 num arredondamento por corte;
• x ≈ 0.23465 × 104 num arredondamento simétrico.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 3: Erros de arredondamento 47

O número z = 45.67 × 10−300 = 0.4567 × 10−298 não pode


ser representado pois o seu expoente −298 < −99. Esta
situação corresponde a um underflow .

O número w = 0.023 × 10113 = 0.23 × 10112 não pode ser


representado pois o seu expoente 112 > 99. Esta situação
corresponde a um overflow . 

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


48
4. Casas decimais corretas e algarismos significati-
vos
Seja x uma quantidade exata e xe um valor aproximado de
x. Suponhamos ainda que estas quantidades estão já re-
presentadas na base 10 e em notação normalizada.
Diz-se que o valor aproximado x
e tem k casas decimais
corretas se

e| ≤ 0.5 × 10−k .
|exe| = |x − x

Diz-se que o valor aproximado x e tem k algarismos sig-


nificativos (ou uma precisão de k dı́gitos) se

e| ≤ 0.5 × 10p−k+1
|exe| = |x − x

com p tal que


10p ≤ |x| < 10p+1 .
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 4: Casas decimais corretas e algarismos significativos 49
Exercı́cio 4.1.
Considere o número real e−6 = 0.0024787521766... e como
valor aproximado de e−6 o valor 0.00248. Mostre que o valor
aproximado considerado tem 5 casas decimais corretas e 3
algarismos significativos corretos.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


50
5. Propagação de erros
5.1. Motivação
Pretende-se calcular x + 2 de duas maneiras diferentes, em
diferentes valores de x. Como, para x 6= 0, se tem
(x + 1)2 − 1 (x2 + 2x + 1) − 1 x(x + 2)
= = = x + 2,
x x x
vamos usar o MATLAB para calcular as duas expressões,

(x + 1)2 − 1
x+2 e ,
x
em valores diferentes de x.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 51

(x + 1)2 − 1
x x+2
x
10−1 2.1 2.1
10−2 2.01 2.01
10−3 2.00099999999970 2.001
10−4 2.00009999999917 2.0001
10−5 2.00001000001393 2.00001
10−6 2.00000099992437 2.000001
10−7 2.00000010108781 2.0000001
10−8 1.99999998784506 2.00000001

Comparando os valores das duas últimas colunas, pode-


se verificar que os valores da penúltima coluna são menos
precisos, e isso deve-se a erros de arredondamento.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 52
5.2. Propagação de erros nas operações aritméticas
O estudo da propagação de erros em funções e operações
permite analisar como os erros se propagam quando efetua-
mos uma operação ou quando aplicamos uma função.

Apresentam-se de seguida as fórmulas de propagação do


erro absoluto e do erro relativo nas operações aritméticas.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 53

Função Erro absoluto Erro relativo



e e |exe | + eye
S(x, y) = x + y e e ≤ |exe | + eye S

S |S| |x + y|

e e |exe | + eye
D(x, y) = x − y e e ≤ |exe | + eye D

D |D| |x − y|

e e |exe | eye
P (x, y) = x.y e e ≈ |e x| eye
y | |exe | + |e P
≈ +
P |P | |ex| |e
y|

|e
x y | |exe | + |e
x|eye eQe |e | eye
Q(x, y) = eQe ≈ 2
≈ xe +
y ye |Q| |e
x| |e
y|

Para mais detalhes sobre as fórmulas da tabela consultar,


por exemplo, [2].

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 54
Observações:
1. As fórmulas apresentadas na tabela dão-nos uma in-
dicação sobre o erro no resultado de cada uma das
operações aritméticas, admitindo que não houve
arredondamento depois de efetuada a operação.
2. Por exemplo, na expressão do erro relativo da função
multiplicação P (x, y) é possı́vel verificar que o erro de
propagação é moderado.
3. Na expressão do erro relativo da função diferença
D(x, y) é possı́vel verificar que se x e y são números
muito próximos, o valor |x−y| torna-se muito pequeno
originando um erro relativo muito grande.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 55
5.3. Cancelamento subtrativo
• O cancelamento subtrativo pode ocorrer quando se
efetua a diferença entre dois números x e y muito
próximos originando uma perda de algarismos signi-
ficativos no resultado da subtracção.
• O efeito do cancelamento subtrativo pode não ser pre-
judicial, especialmente se não tem grande efeito no
resto dos cálculos, como é o caso se x e y são valores
exatos. Se x >> y ≈ z > 0, o cancelamento x+(y−z)
também é inofensivo [5].

Observação: Atualmente os computadores e muitas calcu-


ladoras calculam a diferença de dois números usando dı́gito(s)
de guarda (ver [4, 5]).

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 56
Como evitar o cancelamento subtrativo em alguns
casos:
1. Se x é bastante grande,

x+1 ≈x

e, possivelmente,
√ √
x+1≈ x.

Para
√ evitar
√ cancelamento subtrativo no cálculo de
x + 1 − x, basta observar que
√ √ √ √
√ √ ( x + 1 − x)( x + 1 + x)
x+1− x = √ √
x+1+ x
1
= √ √
x+1+ x
e usar esta última expressão.
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 5: Propagação de erros 57
2. Se x ≈ y então sin x ≈ sin y. Para evitar cancela-
mento subtrativo, basta observar que
x+y x−y
sin x − sin y = 2 cos sin
2 2
e poderemos usar a expressão do segundo membro
para efetuar o cálculo pretendido.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 58
5.4. O condicionamento matemático
É uma caracterı́stica do problema. Descreve a sensibilidade
do problema matemático a variações nos dados.
Um problema matemático diz-se bem condicionado se pe-
quenos erros nos dados produzem pequenos erros relativos
no resultado. Caso contrário, o problema diz-se mal condi-
cionado.
Por vezes diz-se apenas que um problema apresenta algu-
mas caracterı́sticas de mau condicionamento.

Um problema matemático diz-se bem-posto se tem solução,


se a solução é única e se é bem condicionado.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 59
Exemplo: A equação
1 1
x2 − x+ =0
3 36
tem uma raiz dupla x = 1/6.
Um problema muito semelhante consiste em calcular as
raı́zes de
x2 −0.333333 x+0.027778 = 0.
Esta equação não tem raı́zes reais!
Este problema matemático é mal condicionado.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 60
5.5. A estabilidade numérica
É uma propriedade dos métodos numéricos. Métodos numé-
ricos diferentes têm comportamentos distintos relativamente
a erros de arredondamento. De facto, o número e a ordem
das operações aritméticas envolvidas será diferente.
A sensibilidade de um método numérico relativamente às
operações de arredondamento designa-se por estabilidade
numérica.
Um método numérico diz-se numericamente estável se a
acumulação dos erros durante os cálculos não tem influência
significativa no resultado final. Caso contrário, o método
diz-se numericamente instável.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 5: Propagação de erros 61
5.6. Algumas consequências de um deficiente es-
tudo dos erros de arredondamento
Overflow origina explosão do foguetão Ariane 5 (4
Junho 1996) (ver [4])
O foguetão lançado pela Agência Espacial Europeia a partir
da Guiana Francesa, explodiu 39 segundos depois de ter
descolado na sua viagem inaugural, a uma altitude de 3700
m. Os prejuı́zos totalizaram 500 milhões de dólares.
Os resultados do inquérito realizado revelaram um erro no
software do sistema de referência inercial que originou uma
situação de overflow: um número em representação de ponto
flutuante de 64 bit era convertido num inteiro de 16 bit que
era maior que 32767, o maior inteiro armazenável num sis-
tema de 16 bits, e a conversão falhou.
Referências: (17/Março/2009)
1. http://www.ima.umn.edu/~arnold/disasters/ariane.html
2. http://www.youtube.com/watch?v=kYUrqdUyEpI
3. http://www.around.com/ariane.html
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 5: Propagação de erros 62
Erros de arredondamento originam falha de uma
bateria de mı́sseis Patriot americana (25 Fevereiro
1991) [5]
Durante a guerra do Golfo, em Dharan (Arábia Saudita),
uma bateria de mı́sseis americana não conseguiu interceptar
um mı́ssil Scud iraquiano.
Resultado: a posição do exército americano foi atingida e
28 soldados morreram.
O relatório da ocorrência indica que a falha deveu-se ao
cálculo impreciso do tempo devido a erros de arredonda-
mento por corte que se propagavam com o tempo de funci-
onamento da bateria de mı́sseis.

Referências: (17/Março/2009)
1. http://www.ima.umn.edu/~arnold/disasters/patriot.html
2. http://www.cs.usyd.edu.au/~alum/patriot_bug.html
3. http://ta.twi.tudelft.nl/nw/users/vuik/wi211/disasters.html

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


63

6. Referências

[1] R. L. Burden & J. D. Faires, Análise Numérica, Pioneira


Thomson Learning, São Paulo, 2003. 33
[2] F. Correia dos Santos, Fundamentos de Análise
Numérica, Colecção Matemática, 19, Edições Sı́labo,
Lisboa, 2002. 53
[3] B. Dawson, Comparing floating point num-
bers, http://www.cygnus-software.com/papers/
comparingfloats/comparingfloats.htm. 37
[4] J. W. Demmel, Applied Numerical Linear Algebra,
SIAM, Philadelphia, 1997. 33, 34, 37, 55, 61
[5] N. J. Higham, Accuracy and Stability of Numerical Al-
gorithms, SIAM, Philadelphia, 1996. 37, 55, 62

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Seção 6: Referências 64
[6] S. Hollasch, IEEE Standard 754 Floating Point Numbers,
http://steve.hollasch.net/cgindex/coding/ieeefloat.
html. 33, 34, 37
[7] C. Moler, Numerical Computing with MATLAB,
http://www.mathworks.com/moler/index.html 35
[8] A. Quarteroni & R. Sacco & F. Saleri, Numerical Mathe-
matics, Texts in Applied Mathematics, 37, Springer-
Verlag, Berlin, 2000.
[9] A. Quarteroni & F. Saleri, Scientific Computing with
Matlab, Texts in Computational Science and Enginee-
ring, 2, Springer-Verlag, Berlin, 2003. 12
[10] P. Serranho, Notas de Matemática Aplicada, ESTG,
2008. 21
[11] J. D. Stone, IEEE floating-point Representation of
real numbers,
http://www.math.grin.edu/~stone/courses/fundamentals/IEEE-reals.
html. 37
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
65
Soluções dos Exercı́cios
Exercı́cio 2.1(a)

1
|exe| = − 0.3333 = |0.3333 . . . − 0.3333|
3
= 0.000033 . . . .
|exe| 0.000033 . . .
δxe = = 1 = 0.000099 . . . .
|x| 3


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 66
Exercı́cio 2.1(b)

1
|exe| = − 0.0003
3000
= |0.000333 . . . − 0.0003| = 0.000033 . . . .

|exe| 0.000033 . . .
δxe = = 1 = 0.099 . . . ≈ 0.1
|x| 3000


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 67
Exercı́cio 2.1(c) A da alı́nea (a) pois o erro relativo é
menor. 

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 68
Exercı́cio 2.2.

|exe| = 64.345 × 1023 − 64.632 × 1023 = 2.87 × 1022
|exe| 2.86 × 1022
δxe = = ≈ 0.00446.
|x| 64.345 × 1023

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 69
Exercı́cio 2.3(a) x
e = 2.57 é um valor aproximado de x.


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 70
Exercı́cio 2.3(b) |exe| ≤ 0.005, logo, 0.005 é um majorante
do erro absoluto da aproximação. 

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 71
Exercı́cio 2.3(c) Uma estimativa para o erro relativo δxe é
0.005
≈ 0.0019455.
2.57


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 72
Exercı́cio 2.3(d) Como

x ∈ [2.57 − 0.005, 2.57 + 0.005] = [2.565, 2.575],

um majorante para o erro relativo δxe é


0.005
= 0.00194931774 . . . ≤ 0.00195.
2.565


Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮


Soluções dos Exercı́cios 73
−6
Exercı́cio 4.1. Seja x = e = 0.0024787521766... e
x
e = 0.00248 a aproximação de x considerada. Então

e| = |e−6 − 0.00248| = 0.0000012478233...


|exe| = |x − x
= 0.12478233... × 10−5 ≤ 0.13 × 10−5 ≤ 0.5 × 10−5 .

e = 0.00248 de e−6 tem 5 casas


Portanto, a aproximação x
decimais corretas.
Como
10−3 ≤ |e−6 | < 10−2
então p = −3 e tem-se

−3 −k + 1 = −5 ⇔ k = −2 + 5 ⇔ k = 3.
|{z}
p

e = 0.00248 de e−6 tem 3 algaris-


Portanto, a aproximação x
mos significativos.

Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮

Você também pode gostar