Cap1 - Erros em Ponto Flutuante - v1-1
Cap1 - Erros em Ponto Flutuante - v1-1
Cap1 - Erros em Ponto Flutuante - v1-1
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
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
1.5
0.5
x
0.5 1 1.5 2
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
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
35
30
y=f(x)
25
20
15
10
5
5 10 15 20 25
x
• x
e é a solução obtida no fim do processo numérico.
• et é o erro de truncatura.
• ea é o erro de arredondamento.
exe = x − x
e.
|exe| = |x − x
e|.
|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.
|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 + η].
exe = kx − x
ek
kx − x
ek
δxe = (x 6= 0)
kxk
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
5 3 4 r 7 2 0 1
✁✁
✕ ✻ ✻ ✻ ✻ ✻❆❑❆ ❅■
❅
2 0 −2 ❆
10 10 10 −3 10
−4
101 10−1 10
ponto decimal
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
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).
x = ±(1 + m).2e
0 ≤ m < 1.
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 .
β L−1
a+b=a
e = ±.a1 a2 . . . at × 10e .
x
Toc ◭◭ ◮◮ ◭ ◮ Voltar ◭ Doc Doc ◮
Seção 3: Erros de arredondamento 43
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.
e| ≤ 0.5 × 10−k .
|exe| = |x − x
e| ≤ 0.5 × 10p−k+1
|exe| = |x − x
(x + 1)2 − 1
x+2 e ,
x
em valores diferentes de x.
(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
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.
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
6. Referências
|exe| 0.000033 . . .
δxe = = 1 = 0.099 . . . ≈ 0.1
|x| 3000
−3 −k + 1 = −5 ⇔ k = −2 + 5 ⇔ k = 3.
|{z}
p