Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Fundamentos IVIntroducao a analise de erros
Clarimar J. Coelho
Departamento de Computacao
August 14, 2014
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 1 / 40
Como aparecem os erros em
matematica?
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 2 / 40
Objetivos da ciencia
Entender, modelar e simular um fato real
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 3 / 40
Modelagem matematitca
Fases da modelagem matematica
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 4 / 40
Erros intrınsicos aos modelos
Erros inerentes aos modelos
Erros nos instrumentos de medida
Erros em medicoes experimentais
Erros de conversao numerica
Erros das operacoes aritmeticas
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 5 / 40
Erros numericos - erro absoluto
Diferenca entre o valor exato e o valor aproximado de um numero
Ex = x − x
Onde, x e o valor exato e x e o valor aproximado
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 6 / 40
Erros numericos - Erro relativo
Diferenca entre o valor exato e o valor aproximado de um numero,
dividida pelo valor exato
Rx =x − x
x=
Rx
x
Onde, x e o valor exato e x e o valor aproximado
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 7 / 40
Exemplo 1
Se x = 5 e x = 4
Ex = x − x = 5 − 4 = 1
Rx = x−xx = 5−4
5 = 15 = 0,2 = 20%
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 8 / 40
Exemplo 2
Se y = 10000 e y = 9999
Ey = y − y = 10000 − 9999 = 1
Ry = y−yy = 1
10000 = 0,0001 = 0,001%
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 9 / 40
Conclusao
O erro relativo e uma medida melhor do erro, pois leva em
consideracao a ordem de grandeza da quantidade
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 10 / 40
Erros na resolucao do modelo matematico
Erro de conversao do sistema decimal (humano) para o sistema
binario (computador)
No computador existe uma quantidade finita (muito grande) de
numeros
As operacoes aritmeticas sao realizadas com essa quantidade
finita de numeros
O conjunto de numeros usados pelo computador chama sistema
aritmetico de ponto flutuante
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 11 / 40
Sistema aritmetico de ponto flutuante
Conjunto de numeros que depende de varios parametros
β - base do sistema de numeracao
t - numero de algarismos de uma mantissam - mentor potencia de β permitida
M - Maior potencia de β permitida
Denotamos o sistema por
F (β, t ,m,M)
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 12 / 40
Quais sao os elementos de um
sistema aritmetico de ponto
flutuante?
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 13 / 40
Os elementos do sistema
0
Numeros da forma ±(0,d1d2 . . . dt)β × βexp, onde m ≤ exp ≤ M e
β e a base do sistema de numeracao
Os algarismos d1d2 . . . dt , sao numeros inteiros escolhidos entre
os numeros {0,1, . . . , β − 1}, com d1 6= 0
O conjunto {0,1, . . . , β − 1} e a mantissa
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 14 / 40
Quantidade de elementos
Quantos elementos contem um sistema aritmetico de ponto
flutuante?
2(β − 1)(M − m + 1)βt−1
+ 1
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 15 / 40
Exemplo 3
No sistema F (2,4,−4,5), temos β = 2, t = 4,m = −4,M = 5
Entao F , possui
2 × (2 − 1)(5 − (−4) + 1)× 24−1 + 1
= 2 × 1 × 10 × 8 + 1
= 161 elementos
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 16 / 40
Maior numero num sistema
Qual e o maior numero num sistema aritmetico de ponto
flutuante?βt − 1
βt× βM
Todo numero real, com valor maior que este numero, e
considerado +∞ pelo computador
Todo numero real, com valor menor que e o oposto deste numero,
e considerado −∞ pelo computador
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 17 / 40
Exemplo 4
No sistema F (2,4,−4,5)
O valor do maior elemento e
24 − 1
24× 25 = 30
Nesse sistema, todo numero real maior que 30 e tido como +∞Todo numero menor que -30 e tido como −∞
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 18 / 40
Qual e o menor numero num
sistema aritmetico de ponto
flutuante?
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 19 / 40
Menor numero
βm−1
Todo numero real com valor maior que zero e menor que este
numero, e considerado zero pelo computador/calculadora
Todo numero real, com valor que zero e maior que o oposto deste
numero, e considerado zero pelo computador
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 20 / 40
Exemplo 5
No sistema F (2,4,−4,5)
O valor do menor elemento e
2−4−1 = 1/32
Nesse sistema, todo numero real 0 < x < 1/32 e tido como zero
Todo numero real −1/32 < x < 0 e tido como zero
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 21 / 40
Diversos sistemas aritmeticos de ponto flutuante
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 22 / 40
Erros de aproximacao
numerica
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 23 / 40
Erros de aproximacao numerica
Truncamento
Arredondamento
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 24 / 40
Truncamento
Consiste em aproximar o valor de um numero mantendo os k
primeiros dıgitos na sua representacao decimal
Se x = 0,d1d2 . . . dk+1dk+2 . . . 10n, com d1 6= 0
Usamos x = 0,d1d2 . . . dk × 10n como valor aproximado de x
O erro relativo que se comete nao e sempre conhecido, mas pode
ser estimado
|Rtrunc | ≤ 10−k+1, no maximo
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 25 / 40
Exemplo 6
Sabemos que√
7 = 2,6457513110 . . .
Assim,√
7 = 0,26457513110× 101
Entao,√
7 ≈ 0,264 × 101
Trancando com tres dıgitos,√
7 = 2,64
O erro relativo nao e maior que 10−3+1 = 10−2 = 0,01 ou 1%
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 26 / 40
Arredondamento
Consiste em aproximar o valor de um numero mantendo os k − 1
dıgitos na sua representacao decimal
Mantem-se o dıgito dk se este e menor do que 5, ou
Substituindo-o pelo dıgito dk+1 se este e maior ou igual a 5:
Se x = 0, d1d2 . . . dk dk+1dk+2 . . . 10n, como d1 6= 0
Usamos x = 0, d1d2 . . . dk × 10n como valor aproximado de x
Se dk+1 ∈ {0, 1, 2, 3, 4} ou usamos x = 0, d1d2 . . . (dk+1)× 10n
como valor aproximado de x se dk+1 ∈ {5, 6, 7, 8, 9}O erro relativo desse processo e estimado por
|Rtrunc | ≤ 0, 5 × 10−k+1
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 27 / 40
Exemplo 6
Sabemos que√
7 = 2,6457513110 . . .
Assim,√
7 = 0,26457513110× 101
Entao,√
7 ≈ 0,264 × 101
Arrendondando com tres dıgitos,√
7 = 2,64
O erro relativo nao e maior que
0,5 × 10−3+1 = 0,5 × 10−2 = 0,005 ou 0,5%
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 28 / 40
Outros tipos de erros: perda
de significancia e propagacao
de erro
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 29 / 40
Perda de significancia
Considere os numeros p = 3,1415926536 e q = 3,1415957341
p e q sao numeros quase iguais com 11 dıgitos
A diferenca p − q = −0,0000030805, produz um numero com
cinco dıgitos decimais de precisao
Esse fenomeno e conhecido como perda de significancia ou
cancelamento subtrativo
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 30 / 40
Exemplo 7
Compare os resultados do calculo f (0.01) e P(0,01), utilizando
seis dıgitos e de arredondamento, onde
f (x) =ex − 1 − x
x2e P(x) =
1
2+
x
6+
x2
24
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 31 / 40
Calculos
Para f (x)
f (0,01) =e0,01 − 1 − 0,01
(0,01)2=
1,010050 − 1 − 0,01
0,01= 0,5
P(x) e uma polinomio de Taylor de grau n = 2 para f (x)expandindo sobre x = 0
P(0,01) = 12+ 0,01
6+ 0,01
24
= 0,5 + 0,001667 + 0,000004 = 0,501671
Conclusao: P(0,01) = 0,501671 contem menos erro e deveria ter
o mesmo resultado nos dois casos, a perda significancia com a
subtracao e o problema
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 32 / 40
Propagacao de erro
Suponha que o computador trunca todos os valores numericos
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 e truncada para 4 dıgitos
O valor verdadeiro para 6(2/3)=4
O erro relativo e Ra′ = 4−3,9974 = 0,00075
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 33 / 40
Dicas para evitar grande erros
Para diminuir a magnitude dos erros de arredondamento, e parareduzir o possibilidade de overflow/underflow
Faca o resultado intermediario tao perto de 1 quanto possıvel nosprocessos de multiplicacao/divisao consecutivos
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 34 / 40
Usando a regra
De acordo com esta regra, ao calcular xy/z, podemos programara formula como:
(xy)/z quando x e y na multiplicacao sao muito diferentes em
magnitudex(y/z) quando y e z na divisao sao proximos em magnitude
(x/z)y quando x e z na divisao sao proximos em magnitude
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 35 / 40
Exemplo 8
Quando calculamos yn/enx quando x ≻ 1 y ≻ 1, devemos
programar como (y/ex )n e nao yn/enx para evitar
overflow/underflow
Rodar dica.m
Clarimar (Departamento de Computacao) 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 pagina da disciplina
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 37 / 40
Lista de exercıcios
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 38 / 40
Exercıcios
1 Calcule o erro absoluto e o erro relativo nas aproximacoes de p ep
(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 maximo 10−3. Encontre o maior intervalo que
comporte p para p = 150
3 Execute o calculo(
1
3− 3
11
)
+3
20
(i) exatamente, (ii) usando aritmetica com numeros de tres
dıgitos e o metodo de truncamento, (iii) usando a aritmetica com
tres dıgitos e o metodo de arredondamento e (iv) calcule os erros
relativos dos itens (ii) e (iii)
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 39 / 40
Exercıcios, cont.
5 Seja
f (x) =x cos x − senx
x − senx
(a) Use aritmetica com arredondamento para valores de quatro dıgitos
para calcular f (0, 1)(b) Substitua cada funcao trigonometrica com seu polinomio de
Maclaurin de terceiro grau e repita o item (a)
(d) O valore real e f (0, 1) = −1, 99899998. Encontre o erro relativopara os valores obtidos nos itens (b) e (c)
6 Complete o calculo
∫ 1/4
0
ex2
dx =
∫ 1/4
0
(
1 + x2 +x2
2!+
x6
3!
)
dx = p
Estabeleca que tipo de erro esta presente nessa situacao.
Compare sua resposta com o valor verdadeiro p = 0,2553074606
Clarimar (Departamento de Computacao) Aula 2 August 14, 2014 40 / 40