Fundamentos IV
Introdução a análise de erros
Clarimar J. Coelho
Departamento de Computação
August 14, 2014
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
1 / 40
Como aparecem os erros em
matemática?
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
2 / 40
Objetivos da ciência
Entender, modelar e simular um fato real
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
3 / 40
Modelagem matemátitca
Fases da modelagem matemática
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
4 / 40
Erros intrı́nsicos aos modelos
Erros inerentes aos modelos
Erros nos instrumentos de medida
Erros em medições experimentais
Erros de conversão numérica
Erros das operações aritméticas
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
5 / 40
Erros numéricos - erro absoluto
Diferença entre o valor exato e o valor aproximado de um número
Ex = x − x̄
Onde, x é o valor exato e x̄ é o valor aproximado
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
6 / 40
Erros numéricos - Erro relativo
Diferença entre o valor exato e o valor aproximado de um número,
dividida pelo valor exato
Rx =
Rx
x − x̄
=
x
x
Onde, x é o valor exato e x̄ é o valor aproximado
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
7 / 40
Exemplo 1
Se x = 5 e x̄ = 4
Ex = x − x̄ = 5 − 4 = 1
Rx =
x−x̄
x
=
5−4
5
=
Clarimar (Departamento de Computação)
1
5
= 0, 2 = 20%
Aula 2
August 14, 2014
8 / 40
Exemplo 2
Se y = 10000 e ȳ = 9999
Ey = y − ȳ = 10000 − 9999 = 1
Ry =
y −ȳ
y
=
1
10000
Clarimar (Departamento de Computação)
= 0, 0001 = 0, 001%
Aula 2
August 14, 2014
9 / 40
Conclusão
O erro relativo é uma medida melhor do erro, pois leva em
consideração a ordem de grandeza da quantidade
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
10 / 40
Erros na resolução do modelo matemático
Erro de conversão do sistema decimal (humano) para o sistema
binário (computador)
No computador existe uma quantidade finita (muito grande) de
números
As operações aritméticas são realizadas com essa quantidade
finita de números
O conjunto de números usados pelo computador chama sistema
aritmético de ponto flutuante
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
11 / 40
Sistema aritmético de ponto flutuante
Conjunto de números que depende de vários parâmetros
β - base do sistema de numeração
t - número de algarismos de uma mantissa
m - mentor potência de β permitida
M - Maior potência de β permitida
Denotamos o sistema por
F (β, t, m, M)
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
12 / 40
Quais são os elementos de um
sistema aritmético de ponto
flutuante?
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
13 / 40
Os elementos do sistema
0
Números da forma ±(0, d1 d2 . . . dt )β × β exp , onde m ≤ exp ≤ M e
β é a base do sistema de numeração
Os algarismos d1 d2 . . . dt , são números inteiros escolhidos entre
os números {0, 1, . . . , β − 1}, com d1 6= 0
O conjunto {0, 1, . . . , β − 1} é a mantissa
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
14 / 40
Quantidade de elementos
Quantos elementos contém um sistema aritmético de ponto
flutuante?
t−1
2(β − 1)(M − m + 1)β + 1
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
15 / 40
Exemplo 3
No sistema F (2, 4, −4, 5), temos β = 2, t = 4, m = −4, M = 5
Então F , possui
2 × (2 − 1)(5 − (−4) + 1) × 24−1 + 1
= 2 × 1 × 10 × 8 + 1
= 161 elementos
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
16 / 40
Maior número num sistema
Qual é o maior número num sistema aritmético de ponto
flutuante?
βt − 1
× βM
βt
Todo número real, com valor maior que este número, é
considerado +∞ pelo computador
Todo número real, com valor menor que é o oposto deste número,
é considerado −∞ pelo computador
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
17 / 40
Exemplo 4
No sistema F (2, 4, −4, 5)
O valor do maior elemento é
24 − 1
× 25 = 30
24
Nesse sistema, todo número real maior que 30 é tido como +∞
Todo número menor que -30 é tido como −∞
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
18 / 40
Qual é o menor número num
sistema aritmético de ponto
flutuante?
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
19 / 40
Menor número
β m−1
Todo número real com valor maior que zero e menor que este
número, é considerado zero pelo computador/calculadora
Todo número real, com valor que zero e maior que o oposto deste
número, é considerado zero pelo computador
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
20 / 40
Exemplo 5
No sistema F (2, 4, −4, 5)
O valor do menor elemento é
2−4−1 = 1/32
Nesse sistema, todo número real 0 < x < 1/32 é tido como zero
Todo número real −1/32 < x < 0 é tido como zero
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
21 / 40
Diversos sistemas aritméticos de ponto flutuante
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
22 / 40
Erros de aproximação
numérica
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
23 / 40
Erros de aproximação numérica
Truncamento
Arredondamento
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
24 / 40
Truncamento
Consiste em aproximar o valor de um número mantendo os k
primeiros dı́gitos na sua representação decimal
Se x = 0, d1 d2 . . . dk +1 dk +2 . . . 10n , com d1 6= 0
Usamos x̄ = 0, d1 d2 . . . dk × 10n como valor aproximado de x
O erro relativo que se comete não é sempre conhecido, mas pode
ser estimado
|Rtrunc | ≤ 10−k +1 , no máximo
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
25 / 40
Exemplo 6
√
Sabemos que 7 = 2, 6457513110 . . .
√
Assim, 7 = 0, 26457513110 × 101
√
Então, 7 ≈ 0, 264 × 101
√
Trancando com três dı́gitos, 7 = 2, 64
O erro relativo não é maior que 10−3+1 = 10−2 = 0, 01 ou 1%
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
26 / 40
Arredondamento
Consiste em aproximar o valor de um número mantendo os k − 1
dı́gitos na sua representação decimal
Mantém-se o dı́gito dk se este é menor do que 5, ou
Substituindo-o pelo dı́gito dk +1 se este é maior ou igual a 5:
Se x = 0, d1 d2 . . . dk dk +1 dk +2 . . . 10n , como d1 6= 0
Usamos x̄ = 0, d1 d2 . . . dk × 10n como valor aproximado de x
Se dk +1 ∈ {0, 1, 2, 3, 4} ou usamos x = 0, d1 d2 . . . (dk +1 ) × 10n
como valor aproximado de x se dk +1 ∈ {5, 6, 7, 8, 9}
O erro relativo desse processo é estimado por
|Rtrunc | ≤ 0, 5 × 10−k +1
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
27 / 40
Exemplo 6
√
Sabemos que 7 = 2, 6457513110 . . .
√
Assim, 7 = 0, 26457513110 × 101
√
Então, 7 ≈ 0, 264 × 101
√
Arrendondando com três dı́gitos, 7 = 2, 64
O erro relativo não é maior que
0, 5 × 10−3+1 = 0, 5 × 10−2 = 0, 005 ou 0, 5%
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
28 / 40
Outros tipos de erros: perda
de significância e propagação
de erro
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
29 / 40
Perda de significância
Considere os números p = 3, 1415926536 e q = 3, 1415957341
p e q são números quase iguais com 11 dı́gitos
A diferença p − q = −0, 0000030805, produz um número com
cinco dı́gitos decimais de precisão
Esse fenômeno é conhecido como perda de significância ou
cancelamento subtrativo
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
30 / 40
Exemplo 7
Compare os resultados do cálculo f (0.01) e P(0, 01), utilizando
seis dı́gitos e de arredondamento, onde
f (x) =
Clarimar (Departamento de Computação)
ex − 1 − x
x2
1 x
+
+
e
P(x)
=
2 6 24
x2
Aula 2
August 14, 2014
31 / 40
Cálculos
Para f (x)
f (0, 01) =
1, 010050 − 1 − 0, 01
e0,01 − 1 − 0, 01
=
= 0, 5
2
0, 01
(0, 01)
P(x) é uma polinômio de Taylor de grau n = 2 para f (x)
expandindo sobre x = 0
0,01
P(0, 01) = 21 + 0,01
6 + 24
= 0, 5 + 0, 001667 + 0, 000004 = 0, 501671
Conclusão: P(0, 01) = 0, 501671 contém menos erro e deveria ter
o mesmo resultado nos dois casos, a perda significância com a
subtração é o problema
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
32 / 40
Propagação de erro
Suponha que o computador trunca todos os valores numéricos
para 4 dı́gitos
a = 2/3 deve ser armazenado como 0,6666 com Ra = 0, 0001
Somando a a ele mesmo seis vezes temos
0, 6666 + 0, 6666 = 1, 333
1, 333 + 0, 6666 = 1, 999
1, 999 + 0, 6666 = 2, 665
2, 666 + 0, 6666 = 3, 331
a′ = 3, 331 + 0, 6666 = 3, 997
Cada vez a soma é truncada para 4 dı́gitos
O valor verdadeiro para 6(2/3)=4
O erro relativo é Ra′ =
Clarimar (Departamento de Computação)
4−3,997
4
= 0, 00075
Aula 2
August 14, 2014
33 / 40
Dicas para evitar grande erros
Para diminuir a magnitude dos erros de arredondamento, e para
reduzir o possibilidade de overflow/underflow
Faça o resultado intermediário tão perto de 1 quanto possı́vel nos
processos de multiplicaç ão/divisão consecutivos
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
34 / 40
Usando a regra
De acordo com esta regra, ao calcular xy/z, podemos programar
a fórmula como:
(xy )/z quando x e y na multiplicação são muito diferentes em
magnitude
x (y /z) quando y e z na divisão são próximos em magnitude
(x /z)y quando x e z na divisão são próximos em magnitude
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
35 / 40
Exemplo 8
Quando calculamos y n /enx quando x ≻ 1 y ≻ 1, devemos
programar como (y/ex )n e não y n /enx para evitar
overflow/underflow
Rodar dica.m
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
36 / 40
Mais sobre erros
Yang, W. Y., Cao, W., Chung, T.-S., Morris, J. Applied numerical
methods using matlab, Welley, 2005.
Disponı́vel na página da disciplina
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
37 / 40
Lista de exercı́cios
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
38 / 40
Exercı́cios
1
Calcule o erro absoluto e o erro relativo nas aproximações de p e
p̄
(a) p = π, p̄ = 22/7
(b) p = e10 , p̄ = 22000
2
Suponha que p̄ seja um valor aproximado de p, com um erro
relativo de no máximo 10−3 . Encontre o maior intervalo que
comporte p̄ para p = 150
3
Execute o cálculo
1
3
−
3 11
+
3
20
(i) exatamente, (ii) usando aritmética com números de três
dı́gitos e o método de truncamento, (iii) usando a aritmética com
três dı́gitos e o método de arredondamento e (iv) calcule os erros
relativos dos itens (ii) e (iii)
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
39 / 40
Exercı́cios, cont.
5 Seja
f (x) =
x cos x − senx
x − senx
(a) Use aritmética com arredondamento para valores de quatro dı́gitos
para calcular f (0, 1)
(b) Substitua cada função trigonométrica com seu polinômio de
Maclaurin de terceiro grau e repita o item (a)
(d) O valore real é f (0, 1) = −1, 99899998. Encontre o erro relativo
para os valores obtidos nos itens (b) e (c)
6 Complete o cálculo
Z
1/4
x2
e dx =
0
Z
1/4
0
x2 x6
2
1+x +
+
dx = p̄
2!
3!
Estabeleça que tipo de erro está presente nessa situação.
Compare sua resposta com o valor verdadeiro p = 0, 2553074606
Clarimar (Departamento de Computação)
Aula 2
August 14, 2014
40 / 40
Download

Aula - Análise de erros