Buscar

aula05 erro

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ca´lculo Nume´rico
Noc¸o˜es de Erro e Aritme´tica de Ponto Flutuante
Heder S. Bernardino
Heder S. Bernardino Ca´lculo Nume´rico
Suma´rio
1 Aula Anterior
2 Operac¸o˜es Aritme´ticas em Ponto Flutuante
3 Noc¸o˜es Ba´sicas Sobre Erros
4 Efeitos Nume´ricos
5 Revisa˜o
Heder S. Bernardino Ca´lculo Nume´rico
Aula Anterior
Aula Anterior
Heder S. Bernardino Ca´lculo Nume´rico
Aula Anterior
Aula Anterior
◮ Sistemas de numerac¸a˜o
◮ Representac¸a˜o de nu´meros inteiros no computador
◮ Conversa˜o de bases
◮ Complemento a 2
◮ Representac¸a˜o de nu´meros reais no computador
◮ Conversa˜o de nu´meros fraciona´rios
◮ Representac¸a˜o em ponto flutuante
◮ Truncamento e Arredondamento
◮ Padra˜o IEEE 754
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Operac¸o˜es Aritme´ticas em Ponto
Flutuante
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Operac¸o˜es Aritme´ticas em Ponto Flutuante
◮ Adic¸a˜o/Subtrac¸a˜o
◮ Deve-se ajustar o nu´mero de menor expoente para iguala´-lo ao do
outro nu´mero
◮ Multiplicac¸a˜o/Divisa˜o
◮ Realiza-se a operac¸a˜o nas mantissas e nos expoentes
◮ Os valores devem ser representados no sistema utilizado
◮ Os resultados devem ser truncados ou arredondados
◮ Definic¸a˜o do sistema
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 1
Seja o sistema F (10, 2, L, U) com arredondamento; os limitantes do
expoente sa˜o ignorados nesse exemplo. Some 4,32 e 0,064 nesse
sistema.
◮ Soluc¸a˜o:
0,44× 101
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 2
Seja o sistema F (10, 2, L, U) com truncamento. Some 4,32 e 0,064
nesse sistema.
◮ Soluc¸a˜o:
0,43× 101
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 3
Seja o sistema F (10, 5, L, U) com arredondamento. Calcule√
50−√49 nesse sistema, dado que √50 ≈ 7,071067 e √49 = 7.
◮ Soluc¸a˜o:
0,71100× 10−1
◮ O resultado exato e´ 0,71067× 10−1
◮ Cancelamento na subtrac¸a˜o de dois nu´meros aproximadamente iguais
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 4
Seja o sistema F (10, 2, L, U) com arredondamento. Multiplique 1234
por 0,016 nesse sistema.
◮ Soluc¸a˜o:
0,19× 102
◮ O resultado exato e´ 19,744
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 5
Seja o sistema F (10, 2, L, U) com arredondamento. Divida 0,00183
por 492 nesse sistema.
◮ Soluc¸a˜o:
0,3673× 10−5 ⇒ 0,37× 10−5
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Operac¸o˜es Aritme´ticas em Ponto Flutuante
◮ E´ importante observar que algumas propriedades aritme´ticas na˜o sa˜o
va´lidas em sistemas de ponto flutuante
◮ associatividade
(a+ b) + c = a+ (b+ c)
◮ distributividade
a(b+ c) = ab+ ac
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 6
Seja o sistema F (10, 3, L, U) com arredondamento. Calcule
(11,4 + 3,18) + 5,05 e 11,4 + (3,18 + 5,05) nesse sistema. Compare
os resultados encontrados.
◮ Soluc¸a˜o:
(11,4+3,18)+5,05 = 0,197×102 6= 0,196×102 = 11,4+(3,18+5,05)
Heder S. Bernardino Ca´lculo Nume´rico
Operac¸o˜es Aritme´ticas em Ponto Flutuante
Exemplo
◮ Exemplo 7
Seja o sistema F (10, 3, L, U) com arredondamento. Calcule
5,55(4,45− 4,35) e 5,55× 4,45− 5,55× 4,35 nesse sistema. Compare
os resultados encontrados.
◮ Soluc¸a˜o:
5,55(4,45− 4,35) = 0,555× 100 6= 0,600× 100 =
5,55× 4,45− 5,55× 4,35
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Noc¸o˜es Ba´sicas Sobre Erros
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Noc¸o˜es Ba´sicas Sobre Erros
◮ Erros podem ser introduzidos ao representar nu´meros no computador
◮ Um nu´mero real x provavelmente sera´ aproximado quando
representado em ponto flutuante no computador
◮ E´ necessa´rio definir medidas para calcular erros em aproximac¸o˜es
◮ erro absoluto
◮ erro relativo
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erro Absoluto
◮ Seja x¯ uma aproximac¸a˜o de x, o erro absoluto e´ definido como
EA(x¯) = |x− x¯|
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Exemplo
◮ Exemplo 8
Seja o sistema F (10, 4, L, U) com arredondamento. Qual o erro
absoluto ao representar x = 1428,756 nesse sistema?
◮ Soluc¸a˜o:
x¯ = 0,1429× 104 ⇒ EA(x¯) = |1428,756− 1429| = 0,244
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Exemplo
◮ Exemplo 9
Seja o sistema F (10, 4, L, U) com truncamento. Qual o erro absoluto
ao representar x = 1428,756 nesse sistema?
◮ Soluc¸a˜o:
x¯ = 0,1428× 104 ⇒ EA(x¯) = |1428,756− 1428| = 0,756
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erro Relativo
◮ Seja x¯ uma aproximac¸a˜o de x, o erro relativo e´ definido como
ER(x¯) =
|x− x¯|
|x¯| =
EA(x¯)
|x¯|
◮ dado x¯ 6= 0.
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Exemplo
◮ Exemplo 10
Sejam x1 = 1000,5, x¯1 = 1000,6, x2 = 10,5 e x¯2 = 10,6. Nota-se
que EA(x¯1) = EA(x¯2) = 0,1. Quais os erros relativos?
◮ Soluc¸a˜o:
ER(x¯1) =
0,1
1000,6 ≈ 0,9994× 10−4
ER(x¯2) =
0,1
10,6 ≈ 0,9433× 10−2
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Noc¸o˜es Ba´sicas Sobre Erros
◮ O valor de x geralmente na˜o e´ conhecido
◮ Na pra´tica utiliza-se uma medida de erro entre aproximac¸o˜es
||xnovo − xantigo||
||xnovo||
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Noc¸o˜es Ba´sicas Sobre Erros
◮ Apesar dos erros absoluto e relativo terem sido definidos para valores
reais, eles tambe´m podem ser adotados para vetores e matrizes
◮ Denotando a norma de um vetor (ou matriz) por || · ||, enta˜o
◮ erro absoluto
||x− x¯||
◮ erro relativo
||x− x¯||
||x¯||
◮ Esses conceitos sera˜o utilizados durante o curso
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento e Truncamento
◮ Sera˜o analisados os erros quando se representa x ∈ R em ponto
flutuante
◮ Seja um sistema F (10, t, L, U) com t d´ıgitos na mantissa
◮ Logo
x = xm × 10e + xr × 10e−t
onde
◮ xm × 10e e´ a parte de x que pode ser representada nesse sistema
◮ xr × 10e−t e´ a parte na˜o representa´vel
◮ e e´ o expoente
◮ 0,1 ≤ xm < 1
◮ 0 ≤ xr < 1
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento e Truncamento
◮ Por exemplo, ao representar x = 234,57 num sistema F (10, 4, L, U),
enta˜o
x = 0,2345× 103︸ ︷︷ ︸
xm×10e
+0,7× 10−1︸ ︷︷ ︸
xr×10e−t
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Truncamento
◮ A parcela xr × 10e−t e´ desprezada em sistemas que utilizam
truncamento
◮ Nesses casos, x e´ representado aproximadamente por x¯ = xm × 10e
◮ Assim,
EA(x¯) = |x− x¯| = |xm × 10e + xr × 10e−t − xm × 10e|
= |xr × 10e−t|
< 10e−t, pois 0 ≤ xr < 1
ER(x¯) =
EA(x¯)
|x¯| =
|xr × 10e−t|
xm × 10e
<
10e−t
0,1× 10e =
10e−t
10e−1
= 10e−t × 10−(e−1) = 101−t
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Truncamento
◮ Logo, o erro no truncamento e´ limitado por
EA(x¯) < 10e−t ER(x¯) < 101−t
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento
◮ A parcela xm × 10e pode ser modificada em sistemas que utilizam
arredondamento◮ Nesses casos, x e´ representado aproximadamente por
x¯ =


xm × 10e, se xr < 0,5
xm × 10e + 1× 10e−t︸ ︷︷ ︸
u´ltimo d´ıgito
, caso contra´rio
◮ Para analisar o erro ambos os casos sa˜o abordados separadamente
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento
◮ Se xr < 0,5
EA(x¯) = |x− x¯| = |xm × 10e + xr × 10e−t − xm × 10e| = |xr × 10e−t|
< 0,5× 10e−t
ER(x¯) =
EA(x¯)
|x¯| =
|xr × 10e−t|
|xm × 10e|
<
0,5× 10e−t
0,1× 10e =
0,5× 10e−t
10e−1
= 0,5× 101−t
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento
◮ Caso contra´rio (se xr ≥ 0,5)
EA(x¯) = |x− x¯| = |xm × 10e + xr × 10e−t − (xm × 10e + 1× 10e−t)|
= |(xr − 1)× 10e−t|
< 0,5× 10e−t
ER(x¯) =
EA(x¯)
|x¯| =
|(xr − 1)× 10e−t|
|xm × 10e + 1× 10e−t|
<
0,5× 10e−t
0,1× 10e =
0,5× 10e−t
10e−1
= 0,5× 101−t
Heder S. Bernardino Ca´lculo Nume´rico
Noc¸o˜es Ba´sicas Sobre Erros
Erros no Arredondamento
◮ Logo, em ambos casos, o erro no arredondamento e´ limitado por
EA(x¯) < 0,5× 10e−t ER(x¯) < 0,5× 101−t
◮ Pode-se generalizar a ideia e utilizar o mesmo racioc´ınio para um
sistema de base β
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Ale´m dos erros causados pela representac¸a˜o no computador, existem
certos efeitos nume´ricos que contribuem para aumentar os erros
◮ Somar (ou subtrair) nu´meros com ordens de grandeza muito diferentes
◮ Cancelamento
◮ Propagac¸a˜o do erro
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Somar (ou subtrair) nu´meros com ordens de grandeza muito
diferentes
◮ As operac¸o˜es de soma e subtrac¸a˜o podem na˜o ter o efeito desejado
◮ Por exemplo, ao somar 0,1 e 5000 num sistema F (10, 4, L, U),
obte´m-se
0,1 + 5000 = 0,1000× 100 + 0,5000× 104
= 0,00001× 104 + 0,5000× 104
= 0,50001× 104
= 0,5000× 104 (arredondando ou truncando)
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Assim, nota-se que
S = 5000 + 0,1 + · · ·+ 0,1︸ ︷︷ ︸
10×
= 5000
S = 0,1 + · · ·+ 0,1︸ ︷︷ ︸
10×
+5000 = 5001
◮ Apesar do resultado anal´ıtico ser igual em ambos casos, o valor
calculado e´ diferente quando operado no sistema considerado
◮ Logo, deve-se adotar a segunda alternativa sempre que poss´ıvel
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Cancelamento
◮ Ocorre quando dois nu´mero muito parecidos sa˜o subtra´ıdos
◮ Os expoentes devem ser igualados quando se calcula x− y
◮ Quando x e y sa˜o similares, va´rios zeros aparecem no final da mantissa
do resultado ao normaliza´-lo
◮ Ocorre assim uma perda de d´ıgitos significativos
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Exemplo
◮ Exemplo 11
Calcule
√
37−√36 em uma ma´quina F (10, 4, L, U) que utiliza
arredondamento.
◮ Soluc¸a˜o:
0,8300× 10−1
◮ A resposta exata e´ 0,8277× 10−1
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Exemplo
◮ Exemplo 12
Calcule
√
37−√36 de modo a evitar efeitos de cancelamento em
uma ma´quina F (10, 4, L, U) que utiliza arredondamento.
◮ Soluc¸a˜o:
Adotando
√
x−√y = x−y√
x+
√
y
enta˜o o resultado e´ 0,8278× 10−1
◮ A resposta exata e´ 0,8277× 10−1
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Exemplo
◮ Exemplo 13
Como evitar o efeito de cancelamento ao calcular f(x) = 1− cos(x)
para valores de x pro´ximos de zero em uma ma´quina F (10, 10, L, U)
que utiliza arredondamento?
◮ Soluc¸a˜o:
Adotar 1− cos(x) = 1−cos2(x)1+cos(x) = sen
2(x)
1+cos(x)
◮ Outra soluc¸a˜o:
Aproximar cos(x) por um Polinoˆmio de Taylor em torno de x0 = 0
cos(x) ≈ Pn(x) = 1− x22! + x
4
4! − x
6
6! + · · ·+ (−1)n x
2n
(2n)!
⇒f(x) = 1−
(
1− x22! + x
4
4! − x
6
6! + · · ·+ (−1)n x
2n
(2n)!
)
⇒f(x) = x22! − x
4
4! +
x6
6! + · · ·+ (−1)n+1 x
2n
(2n)!
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Cancelamento
◮ Aproximac¸a˜o da derivada
◮ Ao estudar Polinoˆmios de Taylor, definiu-se a diferenc¸a progressiva
como
f
′(x) ≈
f(x+ h)− f(x)
h
◮ Nota-se que quanto menor h mais precisa e´ a aproximac¸a˜o
◮ Entretanto, o efeito de cancelamento pode ser grande para valores
muito pequenos de h
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Propagac¸a˜o dos erros
◮ Um grande nu´mero de operac¸o˜es elementares e´ normalmente utilizado
em me´todos nume´ricos para buscar a soluc¸a˜o de um determinado
problema
◮ Assim, o erro cometido em uma operac¸a˜o isolada pode na˜o ser muito
significativo para a soluc¸a˜o do problema tratado
◮ Entretanto, e´ necessa´rio analisar como esses erros se propagam
◮ erro ilimitado: se acumulam a uma taxa crescente e a sequeˆncia de
operac¸o˜es e´ considerada insta´vel
◮ erro limitado: se acumulam a uma taxa decrescente e a sequeˆncia de
operac¸o˜es e´ considerada esta´vel
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Propagac¸a˜o dos erros
◮ Por exemplo, considerando um sistema F (10, 4, L, U) com
truncamento, ao efetuar a operac¸a˜o
S =
4∑
i=1
(xi + yi); xi = 0,46709 e yi = 3,5678
◮ Para i = 1
(x1 + y1) = 0,4034× 101
e o erro absoluto e´ dado por EA(S¯) = |4,03569− 4,034| = 0,00169
◮ Para i = 2
(x1 + y1) + (x2 + y2) = 0,8068× 101
e o erro absoluto e´ dado por EA(S¯) = |8,07138− 8,068| = 0,00338
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ Propagac¸a˜o dos erros
◮ Para i = 3
(x1 + y1) + (x2 + y2) + (x3 + y3) = 0,1210× 102
e o erro absoluto e´ dado por EA(S¯) = |12,10707− 12,10| = 0,00707
◮ Para i = 4
S =
4∑
i=1
(xi + yi) = 0,1613× 102
e o erro absoluto e´ dado por EA(S¯) = |16,14267− 16,13| = 0,01276
◮ Pode-se observar que o erro absoluto aumenta a` medida em que as
operac¸o˜es sa˜o realizadas
Heder S. Bernardino Ca´lculo Nume´rico
Efeitos Nume´ricos
Efeitos Nume´ricos
◮ A implementac¸a˜o ou o uso incorreto de algoritmos e softwares
cient´ıficos ja´ foi responsa´vel por alguns desastres
◮ Guerra do Golfo (1991)
◮ Uma bateria de m´ısseis Patriot (“Phased Array TRacking Intercept Of
Target”) americano, falhou ao rastrear e interceptar um m´ıssil Scud
do Iraque
◮ O m´ıssil Scud acertou o acampamento americano
◮ 28 soldados morreram e centenas ficaram feridos
◮ O tempo era medido em de´cimos de segundo
◮ Uma d´ızima perio´dica em um sistema bina´rio
◮ O acu´mulo do erro durante o tempo em que o sistema estava
operante levou a` falha
Heder S. Bernardino Ca´lculo Nume´rico
Revisa˜o
Revisa˜o
Heder S. Bernardino Ca´lculo Nume´rico
Revisa˜o
Revisa˜o
◮ Operac¸o˜es aritme´ticas em sistemas de ponto flutuante
◮ Noc¸o˜es ba´sicas sobre erros
◮ Efeitos nume´ricos
Heder S. Bernardino Ca´lculo Nume´rico
Revisa˜o
Du´vidas?
Heder S. Bernardino Ca´lculo Nume´rico
	Aula Anterior
	Operações Aritméticas em Ponto Flutuante
	Noções Básicas Sobre Erros
	Efeitos Numéricos
	Revisão

Outros materiais