Buscar

TruncamentoArredondamentoErros

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 23 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 23 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 23 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

Cálculo Numérico
Prof. Aparecido J. de Souza
aparecidosouza@ci.ufpb.br
Erros absoluto, relativo e percentual.
Aproximações por truncamento e arredondamento em
aritmética de ponto flutuante.
Erro Absoluto.
EAx = x − x¯ .
Em geral não se tem o valor preciso do valor do erro absoluto,
mas apenas uma estimativa para o seu valor absoluto.
Por quê? Porque apenas o valor da aproximação x¯ é obtida.
Exemplo 1. Sabendo que pi ∈ (3.14, 3.15) e calculando uma
aproximação ¯ com 3.14 < ¯ < 3.15, então |EApi |< 0.01, pois
|pi− ¯|< 3.15−3.14 = 0.01.
Exemplo 2. Sejam x e y dois números reais. Digamos que
obtivemos as aproximações x¯ = 2112.9 e y¯ = 5.3 com
|EAx |< 0.1 e |EAy |< 0.1. Qual foi a melhor das
aproximações? Foi a aproximação x¯ devido que a ordem de
grandeza de |x | é maior do que a ordem de grandeza de |y |.
Erro Relativo.
ERx =
EAx
x
=
x − x¯
x
. Porém na prática: ERx =
EAx
x¯
=
x− x¯
x¯
.
Exemplo 3. No Exemplo 2 temos
|ERx |= |EAx ||x¯ | <
0.1
2112.9
≈ 0.47×10−4 ,
|ERy |= |EAy ||y¯ | <
0.1
5.3
≈ 0.2×10−1 .
Portanto, de fato a aproximação x¯ é mais precisa do que y¯ .
Erro Relativo Percentual: ERPx = |ERx |×100.
Consequência. Os testes de parada em programas
computacionais para obtenção de aproximações numéricas
são dados em geral em termos de Erros Relativos.
Aproximação por arredondamento e por
truncamento na base 10.
A representação de números em uma máquina e as operações
entre eles podem gerar erros de aproximação devido ao
caráter restritivo do sistema de ponto flutuante de tal máquina.
Exemplo 4. Considere o sistema F (10,4,−3,3). A
representação exata de um númeor real neste sistema é:
±0.d1d2d3d4×10e com d1 6= 0 e e ∈ {−3,−2,−1,0,1,2,3}.
Sejam x = 0.2345×103 e y = 0.7000×10−1.
Sabemos que x +y = 234.5 + 0.07 = 234.57. No entando este
resultado não pode ser representado neste sistema, pois
para isto precisaríamos de cinco dígitos! No caso, seria
x +y = 0.23457×103.
Como aproximar a soma x +y de tal forma que seja
possível representar tal aproximação neste sistema de
ponto flutuante?
Aproximação por truncamento na base 10.
Exemplo 4 (cont.). Como aproximar a soma
s = 234.57 = 0.23457×103 de tal forma que seja possível
representar tal aproximação no sistema de ponto flutuante
F (10,4,−3,3)? Determine os erros.
Temos d1 = 2, d2 = 3, d3 = 4, d4 = 5 e d5 = 7.
Aproximação por Truncamento: Despreze o quinto dígito
(d5 = 7), obtendo s¯ = 0.2345×103 = 234.5.
Erro Absoluto: |EAs|= |s− s¯|= |234.57−234.5|= 0.07.
Erro Relativo: |ERs|= 0.07234.5 ≈ 0.2985×10−3.
Erro Relativo Percentual: ERPs = |ERs|×100 = 0.02985%.
Aproximação por arredondamento na base 10.
Exemplo 4 (cont.). Como aproximar a soma
s = 234.57 = 0.23457×103 de tal forma que seja possível
representar tal aproximação no sistema de ponto flutuante
F (10,4,−3,3)? Determine os erros.
Temos d1 = 2, d2 = 3, d3 = 4, d4 = 5 e d5 = 7.
Observe que o quinto dígito (d5 = 7) é levado em conta
provocando uma modificação no quarto dígito (d4 = 5). Como
7≥ 5 soma-se 0.5×10−4 = 0.00005 à s obtendo:
s˜ = 0.23462×103.
Daí trunca-se s˜ no quarto novo dígito a aproximação de s por
arredondamento é s¯ = 0.2346×103.
Erro Absoluto : |EAs|= |s− s¯|= |234.57−234.6|= 0.03.
Erro Relativo: |ERs|= 0.03234.6 ≈ 0.1278×10−3.
Erro Relativo Percentual: ERPs = |ERs|×100 = 0.01278%.
Aproximação por arredondamento na base 10.
Seja x um número real não nulo, com representação com t +n
dígitos dada por x =±d×10e satisfazendo a condição de que
10−1 (1− 12 ×10−t)≤ d < 1− 12 ×10−t.
Note que
d+(12 ×10−t) = 0.d1d2 · · ·dt−1dtdt+1dt+2 · · ·dt+n + (0.5×10−t)
= 0.d1d2 · · ·dt−1dtdt+1dt+2 · · ·dt+n + 0.00 · · ·00︸ ︷︷ ︸
t zeros
5.
= 0.d1d2 · · ·dt−1dt(dt+1+5)dt+2 · · ·dt+n
= 0.d˜1d˜2 · · · d˜t−1d˜td˜t+1dt+2dt+1 · · ·dt+n = d˜.
Daí, a aproximação de x por arredondamento é obtida
truncando em d˜t, Isto é,
x¯ =±0.d˜1d˜2 · · · d˜t−1d˜t×10e.
Obs. Em geral na base 10, basta observar o dígito dt+1.
Se dt+1 < 5, então trunque em dt.
Se não, adicione 10−t à dt e trunque o resultado no novo d˜t.
Aproximação por arredondamento na base 10.
Exemplo 5. Dado o sistema de ponto flutuante F (10,3,−5,5),
determine a aproximação por por arredondamento do número
x =−0.00054982.
Devemos ter |x |= d×10e
com 0.09995≤ d < 0.9995 e −5≤ e≤ 5.
De fato, |x |= 0.54982×10−3 = d×10−3.
Temos que o quarto dígito de d é d4 = 8 > 5.
Então, soma-se 0.5×10−t = 0.5×10−3 = 0.0005 à d obtendo
d˜ = 0.55032×10−3.
Daí trunca-se d˜ no terceiro dígito e a aproximação de x por
arredondamento é x¯ =−0.550×10−3.
|EAs|= |−0.54982×10−3 + 0.550×10−3|= 0.18×10−3,
|ERPx |= 0.18×10−30.550×10−3 ×100≈ 0.327×100 = 32.7%.
Aproximação por arredondamento na base 10.
Exemplo 6. Represente as aproximações por arredondamento
dos seguintes números no sistema F (10,3,−5,5).
Devemos ter |x |= d×10e
com 0.09995≤ d < 0.9995 e −5≤ e≤ 5.
(a) x = 1234.56.
Note que |x |= 0.123456×104 = d×104. Daí,
d + (0.5×10−3) = 0.123456 + 0.0005 = 0.123956.
Portanto x¯ = 0.123×104 = 1230.
(b) x =−0.00054962.
Note que |x |= 0.54962×10−3 = d×10−3. Daí,
d + (0.5×10−3) = 0.54962 + 0.0005 = 0.55012.
Portanto, x¯ =−0.550×10−3 =−0.00055.
Aproximação por arredondamento na base 10.
Exemplo 6 (cont.). Represente as aproximações por
arredondamento dos seguintes números no sistema
F (10,3,−5,5).
Devemos ter |x |= d×10e
com 0.09995≤ d < 0.9995 e −5≤ e≤ 5.
(c) x = 0.9996.
Note que |x |= 0.9996×100 = d×100.
Porém, d> 0.9995.
Daí, escrevemos |x |= 0.09996×101 = d×101, agora com
0.09995≤d< 0.9995 e −5≤ e≤ 5.
Assim,
d + (0.5×10−3) = 0.09996 + 0.0005 = 0.10046.
Portanto x¯ = 0.100×101 = 1.0.
Aproximação por arredondamento na base β .
Seja x um número real não nulo tal que |x |= d×β e e
satisfazendo a condição de que β−1 (1− 12β−t)≤ d < 1− 12β−t.
Faça d+(12 ×β−t) = 0.d1d2 · · ·dt−1dtdt+1dt+2 · · ·dt+n + (12 ×β−t)
= 0.d˜1d˜2 · · · d˜t−1d˜td˜t+1dt+2dt+1 · · ·dt+n×β e.
A aproximação por arredondamento de x é então
x¯ =±0.d˜1d˜2 · · · d˜t−1d˜t×β e.
Obs. Por ter menor custo computacional, geralmente se usa o
truncamento nos processos de aproximação numérica.
Estimativas de Erro na base 10.
Baseados nas representações e no algorítimos temos as
seguintes estimativas:
Truncamento.
|EAx |= |x− x¯ |< 10e−t.
|ERx |< 10−t+1.
Arredondamento.
|EAx |= |x− x¯ |< 0.5×10e−t.
|ERx |< 0.5×10−t+1.
Operações aritméticas em ponto flutuante.
O fato principal é que como em geral em cada operação é
feito uma aproximação, as operações básicas com números
reais realizadas computacionalmente não tem as mesmas
propriedades de que se fossem realizadas analiticamente. Em
geral estas operações realizadas computacionalmente deixam
de ser associativas e distributivas.
Por isto a importância dos “parênteses” na programação.
Exemplo 7. Em cada item efetue as operações indicadas
usando a base β = 10 e t = 3 dígitos significativos e compare
os resultados.
(a) (11.4 + 3.18) + 5.05, 11.4 + (3.18 + 5.05).
(11.4 + 3.18) + 5.05≈ 14.6 + 5.05 ≈ 19.7.
11.4 + (3.18 + 5.05) = 11.4 + 8.23 ≈ 19.6.
Operações aritméticas em ponto flutuante.
Exemplo 7 (cont.). Em cada item efetue as operações
indicadas usando a base β = 10 e t = 3 dígitos significativos e
compare os resultados.
(b)
3.18×11.4
5.05
,
(
3.18
5.05
)
×11.4.
3.18×11.4
5.05
≈ 36.3
5.05
≈ 7.19.(
3.18
5.05
)
×11.4 ≈ 0.630×11.4 ≈ 7.18.
(c) 3.18× (5.05 + 11.4), 3.18×5.05 + 3.18×11.4.
3.18× (5.05 + 11.4) ≈ 3.18×16.5 ≈ 52.3.
3.18×5.05 + 3.18×11.4 ≈ 16.1 + 36.3 = 52.4.
Operações aritméticas em ponto flutuante.
Exemplo 8. Usando a base β = 10 e t = 3 dígitos significativos
realize as operações fazendo as aproximações por
arredondamento..
0.333 + 0.333 + 0.333 + 0.333 + 0.333 + 0.333 + 0.333 +
0.333 + 0.333 + 0.333.
0.333×10
Operações aritméticas em ponto flutuante.
Exemplo 9. Sabe-se que o valor exato dopolinômio
P(t) = t3−6 t2 + 4 t−0.1 no ponto a = 5.24 é −0.00776.
Usando três dígitos significativos calcule P(5.24)
(a) substituindo diretamente;
(b) escrevendo P(t) = t (t (t−6) + 4)−0.1.
(a) P(5.24) = 5.24×27.5−6×27.5 + 4×5.24−0.10
≈ 144.−165.+ 21.0−0.10 ≈−0.10 (efetuado da esquerda
para a direita −21.0 + 21.0−0.10).
(Da direita para a esquerda tem-se:
144.−165.+ 20.9≈ 144.−144.≈ 0.00.
(b) P(5.24) = 5.24 (5.24 (5.24−6) + 4) −0.1
≈ 5.24 (5.24 (−0.76) + 4) −0.1 ≈ 5.24 (−3.98 + 4)−0.1
= 5.24 (0.02)−0.1 ≈ 0.105−0.1 = 0.005 (sinal errado!).
Conclusão. Erros de arredondamento devido as limitações de
máquina são introduzidos em cada operação realizada!
Propagação de erros em ponto flutuante.
Sejam x e y números reais e x¯ e y¯ os seus valores
aproximados (por truncamento ou por arredondamento).
Sejam EAx = x − x¯ , EAy = y − y¯ , ERx = EAxx¯ e ERy =
EAy
y¯
os
erros absoluto e relativo em x e y , respectivamente.
Então temos que x = x¯ +EAx e y = y¯ +EAy .
Adição / subtração. x±y = x¯± y¯ +EAx ±EAy
= x±y +EAx±y .
Assim, o Erro Absoluto é EAx±y = EAx±EAy.
Já o Erro Relativo é ERx±y =
EAx±y
x±y =
EAx ±EAy
x¯ ± y¯
=
EAx
x¯
(
x¯
x¯ ± y¯
)
± EAy
y¯
(
y¯
x¯ ± y¯
)
= ERx
(
x¯
x¯ ± y¯
)
±ERy
(
y¯
x¯± y¯
)
.
Propagação de erros em ponto flutuante.
Sejam x e y números reais e x¯ e y¯ os seus valores
aproximados (por truncamento ou por arredondamento).
Sejam EAx = x − x¯ , EAy = y − y¯ , ERx = EAxx¯ e ERy =
EAy
y¯
os
erros absoluto e relativo em x e y , respectivamente.
Então temos que x = x¯ +EAx e y = y¯ +EAy .
Multiplicação. x×y = (x¯ +EAx)× (y¯ +EAy )
= (x¯× y¯) + (x¯×EAy ) + (y¯ ×EAx) + (EAx ×EAy ).
Desprezando o termo (EAx ×EAy ), então
EAx×y ≈ (x¯×EAy ) + (y¯ ×EAx).
Já o Erro Relativo é ERx×y =
EAx×y
x×y =
(x¯ ×EAy ) + (y¯ ×EAx)
x¯ × y¯
=
EAy
y¯
+
EAx
x¯
= ERx + ERy.
Propagação de erros em ponto flutuante.
Sejam x e y números reais e x¯ e y¯ os seus valores
aproximados (por truncamento ou por arredondamento).
Sejam EAx = x − x¯ , EAy = y − y¯ , ERx = EAxx¯ e ERy =
EAy
y¯
os
erros absoluto e relativo em x e y , respectivamente.
Então temos que x = x¯ +EAx e y = y¯ +EAy .
Divisão. x/y =
x¯ +EAx
y¯ +EAy
=
x¯ +EAx
y¯
 1
1 +
EAy
y¯
.
Mas,
1
1 +
EAy
y¯
= 1− EAy
y¯
+
(
EAy
y¯
)2
−
(
EAy
y¯
)3
+ · · ·
Desprezando os termos com potências maiores do que 1
temos.
Propagação de erros em ponto flutuante.
x/y =
x¯ +EAx
y¯
 1
1 +
EAy
y¯
 ≈ x¯ +EAxy¯
(
1− EAy
y¯
)
=
x¯
y¯
+
EAx
y¯
− x¯ EAy
y¯2
− EAx EAy
y¯2
.
Logo, x/y ≈ x¯
y¯
+
EAx
y¯
− x¯ EAy
y¯2
.
Assim, EAx/y ≈
EAx
y¯
− x¯ EAy
y¯2
=
y¯ EAx− x¯ EAy
y¯2
,
enquanto
ERx/y ≈
(
y¯ EAx − x¯ EAy
y¯2
)
y¯
x¯
=
EAx
x¯
− EAy
y¯
= ERx−ERy.
Propagação de erros em ponto flutuante.
Exemplo 10. Analise o Erro Relativo no cálculo de
u = (x +y)z− t assumindo que x , y , z e t sejam representados
exatamente e que ocorra um Erro Relativo de Arredondamento
EArr no resultado de cada operação.
Analisemos cada cálculo separadamente.
(a) Seja s = x +y . Então,
ERs = ERx
(
x¯
x¯+y¯
)
+ERy
(
y¯
x¯ + y¯
)
+EArr .
Como x = x¯ e y = y¯ , então ERx = ERy = 0.
Daí, ERs = EArr .
Logo, |ERs|= |EArr |< 12 ×10
−t+1.
Portanto,
o |ERs| tem por limitante o |Erro de Arredondamento|.
Propagação de erros em ponto flutuante.
Exemplo 10 (cont.). Analise o Erro Relativo no cálculo de
u = (x +y)z− t assumindo que x , y , z e t sejam representados
exatamente e que ocorra um Erro Relativo de Arredondamento
RArr no resultado de cada operação.
(b) Seja p = sz. Então, ERp = ERs +ERz +EArr .
Como z = z¯, então ERz = 0.
Daí, ERp = ERs +EArr = EArrs +EArr .
Logo, |ERp| ≤ |EArrs|+ |EArr |< 2× 12 ×10
−t+1 = 10−t+1.
Portanto, o |ERp| tem por limitante o dobro do
|Erro de Arredondamento|.
Propagação de erros em ponto flutuante.
Exemplo 10 (cont.). Analise o Erro Relativo no cálculo de
u = (x +y)z− t assumindo que x , y , z e t sejam representados
exatamente e que ocorra um Erro Relativo de Arredondamento
RArr no resultado de cada operação.
(c) Seja u = p− t . Então,
ERu = ERp
(
p¯
p¯− t¯
)
−ERt
(
t¯
p¯− t¯
)
+EArr .
Como t = t¯ , então ERt = 0.
Daí, ERu = ERp
(
p¯
p¯− t¯
)
+EArr
Logo,
|ERu| ≤ |ERp|× | p¯p¯− t¯ |+ |EArr |< 10
−t+1×| p¯
p¯− t¯ |+
1
2
×10−t+1
=
(
| p¯
p¯− t¯ |+
1
2
)
×10−t+1.

Outros materiais