Buscar

Noções Sobre 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 55 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 55 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 55 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

ufca
Noc¸o˜es ba´sicas sobre erros
ECI0080/EM0014 Ca´lculo Nume´rico
Exatida˜o e precisa˜o
Na pra´tica, dificilmente e´ poss´ıvel obter soluc¸o˜es
anal´ıticas para problemas de engenharia
Para estes problemas, os me´todos nume´ricos podem
fornecer soluc¸o˜es aproximadas
Os erros presentes em soluc¸o˜es aproximadas sa˜o
introduzidos pelos pro´prios me´todos nume´ricos e por
processos experimentais de aquisic¸a˜o de dados
Da´ı a importaˆncia de mensurar o erro introduzido
durante os ca´lculos
Exatida˜o e precisa˜o
Exatida˜o. O qua˜o pro´ximo o valor aproximado esta´
do valor real?
Precisa˜o. O qua˜o pro´ximo esta´ o valor aproximado
dos valores calculados anteriormente?
Fonte: Chapra e Canale, 2008
Eror
Existem diversos tipos de erro que surgem durante processos
de modelagem e soluc¸a˜o de problemas f´ısicos no computador
Fonte: Quarteroni e Saleri, Scientific
Computing with MATLAB and
Octave, 2006
Eror
Existem diversos tipos de erro que surgem durante processos
de modelagem e soluc¸a˜o de problemas f´ısicos no computador
Fonte: Quarteroni e Saleri, Scientific
Computing with MATLAB and
Octave, 2006
erro de
modelagem
Eror
Existem diversos tipos de erro que surgem durante processos
de modelagem e soluc¸a˜o de problemas f´ısicos no computador
Fonte: Quarteroni e Saleri, Scientific
Computing with MATLAB and
Octave, 2006
erro de
modelagem
erro de
truncamento
Eror
Existem diversos tipos de erro que surgem durante processos
de modelagem e soluc¸a˜o de problemas f´ısicos no computador
Fonte: Quarteroni e Saleri, Scientific
Computing with MATLAB and
Octave, 2006
erro de
modelagem
erro de
truncamento
erro de
arredondamento
Eror
Existem diversos tipos de erro que surgem durante processos
de modelagem e soluc¸a˜o de problemas f´ısicos no computador
Fonte: Quarteroni e Saleri, Scientific
Computing with MATLAB and
Octave, 2006
erro de
modelagem
erro de
truncamento
erro de
arredondamento
erro
computacional
ec = ea + et
Erros absoluto e relativo
O erro computacional absoluto e´ a diferenc¸a entre x, a soluc¸a˜o
exata do modelo matema´tico, e xˆ, a soluc¸a˜o obtida pelo
me´todo nume´rico, i.e.,
|x− x̂|
Erros absoluto e relativo
O erro computacional absoluto e´ a diferenc¸a entre x, a soluc¸a˜o
exata do modelo matema´tico, e xˆ, a soluc¸a˜o obtida pelo
me´todo nume´rico, i.e.,
|x− x̂|
enquanto que, se x 6= 0, o erro computacional relativo e´:
|x− x̂|
|x|
Erros absoluto e relativo
O erro computacional absoluto e´ a diferenc¸a entre x, a soluc¸a˜o
exata do modelo matema´tico, e xˆ, a soluc¸a˜o obtida pelo
me´todo nume´rico, i.e.,
|x− x̂|
enquanto que, se x 6= 0, o erro computacional relativo e´:
|x− x̂|
|x|
Veremos, mais tarde, que ha´ situac¸o˜es nas quais temos
somente uma estimativa do erro (em processos iterativos)
Erros de arredondamento
Os erros de arredondamento ocorrem, basicamente, durante a
realizac¸a˜o de dois tipos de operac¸o˜es:
• Operac¸o˜es de conversa˜o de um nu´mero real para um
nu´mero em ponto flutuante
• Operac¸o˜es aritme´ticas de nu´meros em ponto flutuante
Conversa˜o em ponto flutuante
Um formato nume´rico define um subconjunto finito F ⊂ R
Conversa˜o em ponto flutuante
Um formato nume´rico define um subconjunto finito F ⊂ R
Portanto, se um nu´mero real x na˜o pertence a F, devemos
aproxima´-lo por algum fl(x) ∈ F
O IEEE754 estabelece quatro modos de arredondamento: para
cima, para baixo, em direc¸a˜o ao zero e para o mais
pro´ximo
O arredondamento em direc¸a˜o ao zero e´ equivalente a
truncar
Conversa˜o em ponto flutuante
Considere o formato bina´rio normalizado
1.b1b2 . . . bm−1bmbm+1bm+2. Ilustraremos dois modos de se
obter fl(x):
• truncar x a um valor com m bits, descartando os bits
restantes
• arredondar (para mais pro´ximo) x usando m bits,
observando
– Se o d´ıgito m+ 1 e´ 0, truncar x com m d´ıgitos
– Se o d´ıgito m+ 1 e´ 1, truncar x com m d´ıgitos e
adicionar 1 ao u´ltimo d´ıgito do resultado
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Os nu´meros na˜o nulos representados por este formato sa˜o:
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Os nu´meros na˜o nulos representados por este formato sa˜o:
(1,00)2 × 2−1 = (0,5)10
(1,01)2 × 2−1 = (0,625)10
(1,10)2 × 2−1 = (0,75)10
(1,11)2 × 2−1 = (0,875)10
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Os nu´meros na˜o nulos representados por este formato sa˜o:
(1,00)2 × 2−1 = (0,5)10
(1,01)2 × 2−1 = (0,625)10
(1,10)2 × 2−1 = (0,75)10
(1,11)2 × 2−1 = (0,875)10
(1,00)2 × 20 = (1,0)10
(1,01)2 × 20 = (1,25)10
(1,10)2 × 20 = (1,5)10
(1,11)2 × 20 = (1,75)10
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Os nu´meros na˜o nulos representados por este formato sa˜o:
(1,00)2 × 2−1 = (0,5)10
(1,01)2 × 2−1 = (0,625)10
(1,10)2 × 2−1 = (0,75)10
(1,11)2 × 2−1 = (0,875)10
(1,00)2 × 20 = (1,0)10
(1,01)2 × 20 = (1,25)10
(1,10)2 × 20 = (1,5)10
(1,11)2 × 20 = (1,75)10
(1,00)2 × 21 = (2,0)10
(1,01)2 × 21 = (2,5)10
(1,10)2 × 21 = (3,0)10
(1,11)2 × 21 = (3,5)10
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
Os nu´meros na˜o nulos representados por este formato sa˜o:
(1,00)2 × 2−1 = (0,5)10
(1,01)2 × 2−1 = (0,625)10
(1,10)2 × 2−1 = (0,75)10
(1,11)2 × 2−1 = (0,875)10
(1,00)2 × 20 = (1,0)10
(1,01)2 × 20 = (1,25)10
(1,10)2 × 20 = (1,5)10
(1,11)2 × 20 = (1,75)10
(1,00)2 × 21 = (2,0)10
(1,01)2 × 21 = (2,5)10
(1,10)2 × 21 = (3,0)10
(1,11)2 × 21 = (3,5)10
e, considerando os nu´meros
subnormais, temos tambe´m
(0,01)2 × 2−1 = (0,125)10
(0,10)2 × 2−1 = (0,25)10
(0,11)2 × 2−1 = (0,375)10
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
0 1 2 3
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
0 1 2 3
Quanto vale fl(1,7)?
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
0 1 2 3
Quanto vale fl(1,7)?
(1,7)10 = (1,101 . . . )2 × 21
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
0 1 2 3
Quanto vale fl(1,7)?
(1,7)10 = (1,101 . . . )2 × 21
fl
(
(1,101 . . . )2 × 21
)
= (1,11)2 × 21 = (1,75)10
Conversa˜o em ponto flutuante
Exemplo. Considere o formato fict´ıcio 1.b1b2, com expoentes
em {−1, 0, 1}, para armazenar reais positivos
0 1 2 3
Quanto vale fl(1,7)?
(1,7)10 = (1,101 . . . )2 × 21
fl
(
(1,101 . . . )2 × 21
)
= (1,11)2 × 21 = (1,75)10
O erro relativo foi |1,7− 1,75|
1,7
≈ 0,0294
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Usando truncamento com precisa˜o simples, obtemos
fl(x) = (1.b1b2b3 . . . b21b22b23)2 × 2e
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Usando truncamento com precisa˜o simples, obtemos
fl(x) = (1.b1b2b3 . . . b21b22b23)2 × 2e
Assim,|fl(x)− x| < 2−23 × 2e
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Usando truncamento com precisa˜o simples, obtemos
fl(x) = (1.b1b2b3 . . . b21b22b23)2 × 2e
Assim, |fl(x)− x| < 2−23 × 2e
No caso de arredondamento para o mais pro´ximo, o erro
ma´ximo e´ reduzido a` metade:
|fl(x)− x| ≤ 2−24 × 2e = 1
2
�× 2e
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Usando truncamento com precisa˜o simples, obtemos
fl(x) = (1.b1b2b3 . . . b21b22b23)2 × 2e
Assim, |fl(x)− x| < 2−23 × 2e
No caso de arredondamento para o mais pro´ximo, o erro
ma´ximo e´ reduzido a` metade:
|fl(x)− x| ≤ 2−24 × 2e = 1
2
�× 2e
Sendo x normalizado, x = ±m× 2e, com m > 1. Enta˜o, o
erro relativo do arredondamento para o mais pro´ximo sera´
|fl(x)− x|
|x| ≤
1
2�× 2e
±m× 2e <
1
2�× 2e
2e
=
1
2
�
Erro de conversa˜o
Seja x = (1.b1b2b3 . . . b21b22b23b24)2 × 2e, x > 0
Usando truncamento com precisa˜o simples, obtemos
fl(x) = (1.b1b2b3 . . . b21b22b23)2 × 2e
Assim, |fl(x)− x| < 2−23 × 2e
No caso de arredondamento para o mais pro´ximo, o erro
ma´ximo e´ reduzido a` metade:
|fl(x)− x| ≤ 2−24 × 2e = 1
2
�× 2e
Sendo x normalizado, x = ±m× 2e, com m > 1. Enta˜o, o
erro relativo do arredondamento para o mais pro´ximo sera´
|fl(x)− x|
|x| ≤
1
2�× 2e
±m× 2e <
1
2�× 2e
2e
=
1
2
� , � = b1−m
Vale para
qualquer
base!
Aritme´tica de ponto flutuante
Considere um formato decimal cujos nu´meros sa˜o
representados sob a forma: (−1)s × be × (0,d1d2d3 . . . dm)
Aritme´tica de ponto flutuante
Considere um formato decimal cujos nu´meros sa˜o
representados sob a forma: (−1)s × be × (0,d1d2d3 . . . dm)
Dados x, y ∈ R, definimos
• Adic¸a˜o: x⊕ y = fl(fl(x) + fl(y))
• Subtrac¸a˜o: x	 y = fl(fl(x)− fl(y))
• Multiplicac¸a˜o: x⊗ y = fl(fl(x)× fl(y))
• Divisa˜o: x� y = fl(fl(x)/fl(y))
Aritme´tica de ponto flutuante
Considere um formato decimal cujos nu´meros sa˜o
representados sob a forma: (−1)s × be × (0,d1d2d3 . . . dm)
Dados x, y ∈ R, definimos
• Adic¸a˜o: x⊕ y = fl(fl(x) + fl(y))
• Subtrac¸a˜o: x	 y = fl(fl(x)− fl(y))
• Multiplicac¸a˜o: x⊗ y = fl(fl(x)× fl(y))
• Divisa˜o: x� y = fl(fl(x)/fl(y))
As operac¸o˜es em ponto flutuante sa˜o realizadas de modo
exato, convertidas ao final em um ponto flutuante
Aritme´tica de ponto flutuante
Adic¸a˜o e subtrac¸a˜o. Sejam x, y ∈ R, com x = m× 2E e
y = p× 2F
• Se os expoentes E e F sa˜o iguais,
1. Adicione as mantissas
2. Normalize o resultado
3. Arredonde o resultado
• Caso contra´rio, supondo E > F ,
1. Deslocar p, E − F d´ıgitos para a direita, de modo a
deixar fl(x) e fl(y) com o mesmo expoente
2. Adicione as mantissas
3. Normalize o resultado
4. Arredonde o resultado
Aritme´tica de ponto flutuante
Adic¸a˜o e subtrac¸a˜o.
Dados (3)10 = (1,100)2 × 21 e (3/4)10 = (1,100)2 × 2−1,
calculamos fl(3) + fl(3/4) como a seguir
(1,10000000000000000000000)2 × 21
+(0,01100000000000000000000)2 × 21
(1,11100000000000000000000)2 × 21
Aritme´tica de ponto flutuante
Adic¸a˜o e subtrac¸a˜o.
Dados (3)10 = (1,100)2× 21 e (3)10× 2−23 = (1,100)2× 2−22,
calculamos fl(fl(3) + fl(3× 2−23)) como a seguir
(1,10000000000000000000000)2 × 21
+(0,00000000000000000000001|1)2 × 21
=(1,10000000000000000000001|1)2 × 21
Arredondado: (1,10000000000000000000010)2 × 21
Aritme´tica de ponto flutuante
Adic¸a˜o e subtrac¸a˜o.
Dados (3)10 = (1,100)2× 21 e (3)10× 2−23 = (1,100)2× 2−22,
calculamos fl(fl(3) + fl(3× 2−23)) como a seguir
(1,10000000000000000000000)2 × 21
+(0,00000000000000000000001|1)2 × 21
=(1,10000000000000000000001|1)2 × 21
Arredondado: (1,10000000000000000000010)2 × 21
bit guarda
Aritme´tica de ponto flutuante
Multiplicac¸a˜o e divisa˜o. Sejam x, y ∈ R, com x = m× 2E e
y = p× 2F
Aritme´tica de ponto flutuante
Multiplicac¸a˜o e divisa˜o. Sejam x, y ∈ R, com x = m× 2E e
y = p× 2F
• x⊗ y = (m× p)× 2E+F ,
1. Multiplicar as mantissas
2. Adicionar os expoentes
3. Normalize o resultado
4. Arredonde o resultado
Aritme´tica de ponto flutuante
Multiplicac¸a˜o e divisa˜o. Sejam x, y ∈ R, com x = m× 2E e
y = p× 2F
• x⊗ y = (m× p)× 2E+F ,
1. Multiplicar as mantissas
2. Adicionar os expoentes
3. Normalize o resultado
4. Arredonde o resultado
• x� y = (m/p)× 2E−F ,
1. Dividir as mantissas
2. Subtrair os expoentes
3. Normalize o resultado
4. Arredonde o resultado
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Portanto, � = 2−23 ≈ 1,192092896× 10−7
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Portanto, � = 2−23 ≈ 1,192092896× 10−7
Ja´ para precisa˜o dupla, � = 2−52 ≈ 2,220446049× 10−16
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Portanto, � = 2−23 ≈ 1,192092896× 10−7
Ja´ para precisa˜o dupla, � = 2−52 ≈ 2,220446049× 10−16
nu´mero de
bits da
mantissa
Precisa˜o de ma´quina
Seja y o menor real representa´vel de modo exato em um
formato nume´rico que seja maior do que 1. A precisa˜o de
ma´quina e´ � = y − 1
Para o caso do formato nume´rico de 32 bits do IEEE, temos
(1,0)2 + (1,0)2 × 2−23 > (1,0)2
Portanto, � = 2−23 ≈ 1,192092896× 10−7
Ja´ para precisa˜o dupla, � = 2−52 ≈ 2,220446049× 10−16
Observac¸a˜o. Existe uma definic¸a˜o alternativa na qual a
precisa˜o de ma´quina se torna �/2, resultando em 2−24 e 2−53
para os formatos de 32 e 64, resp.
Erro de aritme´tica “flutuante”
Como um formato de ponto flutuante define um subconjunto
de R, suas operac¸o˜es aritme´ticas elementares na˜o gozam de
todas as propriedades de R
A comutatividade permanece va´lida para adic¸a˜o e multiplicac¸a˜o
Ja´ a associatividade e a distributividade nem sempre sa˜o
preservadas
Erro de aritme´tica “flutuante”
Considere o formato padra˜o de precisa˜o dupla e
tome a = 1,0× 10308, b = 1,5× 10308 e c = 1,1× 10308
Erro de aritme´tica “flutuante”
Considere o formato padra˜o de precisa˜o dupla e
tome a = 1,0× 10308, b = 1,5× 10308 e c = 1,1× 10308
O resultado de (a+ b)− c e´ +∞,
Erro de aritme´tica “flutuante”
Considere o formato padra˜o de precisa˜o dupla e
tome a = 1,0× 10308, b = 1,5× 10308 e c = 1,1× 10308
O resultado de (a+ b)− c e´ +∞,
enquanto que a+ (b− c) resulta em 1,40× 10308
Erro de aritme´tica “flutuante”
Observe ainda que, se � e´ a precisa˜o de ma´quina, x+ �/2 = x,
para alguns valores de x (x ≥ 2?). Portanto, o elemento
neutro da adic¸a˜o na˜o e´ u´nico
	Exatidão e precisão
	Eror
	Erros absoluto e relativo
	Erros de arredondamento
	Conversão em ponto flutuanteErro de conversão
	Aritmética de ponto flutuante
	Precisão de máquina
	Erro de aritmética ``flutuante''

Outros materiais