Download - Calc Numerico Erros UFCG
Atelier de Computação e Cultura da UFCG Marcelo Alves de Barros, Bruno C. N. Queiroz, J. Antão B. Moura
José Eustáquio R. de Queiroz, Ulrich Schiel, Marcus Salerno
Cálculo Numérico
Erros Em Cálculo Numérico
Cálculo Numérico
Estudo de Erros
– Absoluto
– Relativo
Quanto menor for o erro, mais preciso
será o resultado da operação
Truncamento
Arredondamento
Cálculo Numérico
Estudo de Erros
• Erro Absoluto = Valor Exato – Valor Aproximado
EAx = x –
• Erro Relativo = Erro Absoluto / Valor Aproximado
ERx = (x – ) /
Obs.: Erro Porcentualx = ERx x 100
x
xx
Cálculo Numérico
Estudo de Erros
Em geral, não é possível obter EAx, pois não se conhece x.
A solução é obter um limitante superior ou uma
estimativa do erro absoluto. |EAx| = |x - | < limitante superior
EX. 01: Para (3.14 ,3.15)
|EA | = | | < 0.01
x
ππ
Cálculo Numérico
Estudo de Erros
Ex. 04: Para = 2112,9 com |EAx| < 0.1
temos x (2112,8, 2113),
Para = 5.3 com |EAx| < 0.1
temos y (5.2,5.4)
Temos mesmos limitantes superiores. Pode-se
afirmar que x e y são representados com a mesma
precisão?
É preciso comparar a ordem de grandeza de x e y.
x
y
Cálculo Numérico
Estudo de Erros
Dependendo da ordem de grandeza o erro
absoluto não é suficiente para descrever a
precisão de um cálculo.
Erro Relativo
Cálculo Numérico
Estudo de Erros
Ainda, no Ex. 04:
Para = 2112,9 com |EAx| < 0.1
|ERx| = |x - | / | | = 0.1/2112.9 4.7 x 10-5
Para = 5.3 com |EAx| < 0.1
|ERy| = |y - | / | | = 0.1/5.3 0.02
Mostramos que X é representado com maior precisão que y
x
y
yy
xx
Cálculo Numérico
Estudo de Erros
Ex. 05: Seja: calcular em uma máquina digital
Não existe uma forma de representar um número
irrracional com um número finito de algarismos.
Portanto, o número apresentado pela
calculadora é uma aproximação do valor real de
= 1,4142136 (ao invés de 1,41421356....). O erro
introduzido é chamado erro de arredondamento
2
2
Cálculo Numérico
Estudo de Erros
Ex. 06: Seja: calcular o valor de .
Sabemos que a exponencial é uma função que
pode ser representada por uma série infinita,
.....4!
x
3!
x
2!
xx1e
432x
xe
Cálculo Numérico
Estudo de Erros
na prática, é impossível calcular seu valor
exato. Tem que se fazer uma aproximação, que
levará a um erro no resultado final de ex. O erro
introduzido é chamado erro de truncamento.
.....4!
x
3!
x
2!
xx1e
432x
Cálculo Numérico
Estudo de Erros
Em um sistema que opera em ponto flutuante de t dígitos, na base 10.
Erro de truncamento (e=dígitos inteiros):
e
Erro de arredondamento:
e
te
x 10EA 1t
x 10ER
1t
x 102
1ER
te
x 102
1EA
Cálculo Numérico
Estudo de Erros
Demonstração: Erros de Arredondamento e de truncamento
Em um sistema que opera em ponto flutuante de t dígitos, na base 10,
Seja: x = fx x10e + gx x10e-t onde 0.1fx 1 e 0.1gx1
Ex.:Para t = 4 e x = 234.57, então
x = 0.2345 x 103 + 0.7 x 10-1,
temos fx = 0.2345 e gx = 0.7
Cálculo Numérico
Estudo de Erros
No truncamento gx x10e-t é desprezado e
Temos:
visto que gx<1
,
pois 0.1 é o menor valor possível para fx
tete
xx 1010gxxEA
e
x 10fx
1t
e
te
e
x
te
xx
x 10100.1
10
10f
10gEAER
x
Cálculo Numérico
Estudo de Erros
No arredondamento tipo simétrico (forma mais utilizada):
se, (gx é desprezado)
se, (soma “1” ao último
dígito de fx)
tee
x
e
x
1010f
10f
x
2
1g x
2
1g x
Cálculo Numérico
Estudo de Erros
Se , teremos
2
1g x
1t
e
te
e
x
te
xx
x 102
1
100.1
105.0
10f
10gEAER
x
tete
xx 102
110gxxEA
Cálculo Numérico
Estudo de Erros
Erros – Arredondamento
Se
e
2
1g x
tee
x
te
x
e
xx 1010f10g10fxxEA
1t
e
te
e
te
e
x
tex
x 102
1
101.0
102/1
10fx
102/1
1010f
102/1
x
EAER
te
tetete
xx 102
1te101gx1010gEA
Cálculo Numérico
Estudo de Erros
Cenário: sistema de aritmética de ponto flutuante
de 4 dígitos, precisão dupla.
Ex. 07: Seja x = 0.937 x 104 e y = 0.1272 x 102 .
Calcular x + y.
Geralmente, o resultado exato de uma operação (OP) é normalizado e arredondado ou truncado para t dígitos - (OP)ª
Cálculo Numérico
Estudo de Erros
Alinhar os pontos decimais antes da soma (A
adição aritmética de PF requer o alinhamento dos
pontos decimais dos dois números)
x = 0.937 x 104 e y = 0.001272 x 104,
x+y = 0.938272 x 104
Resultado com 4 dígitos
Arredondamento : (X+Y)a = 0.9383 x 104
Truncamento: (X+Y)a = 0.9382 x 104
Cálculo Numérico
Estudo de Erros
Arredondamento : (X.Y)a = 0.1192 x106 Truncamento: (X.Y)a = 0.1191 x106
Mesmo que as parcelas ou fatores de uma operação
possam ser representados exatamente no sistema, não
se pode esperar que o resultado armazenado seja
exato. No exemplo, x e y tinham representação exata,
mas o resultado x+y teve representação aproximada
Cálculo Numérico
Estudo de Erros
Propagação
Cálculo Numérico
Estudo de Erros
Ex. 08: Seja: calcular o valor de - e3
(erro de arredondamento)
e3 (erro de truncamento)
Os erros nos valores de e e3
se propagam para o resultado de - e3
Cálculo Numérico
Estudo de Erros
Ao se resolver um problema numericamente, a cada etapa e
a cada operação realizada, devem surgir diferentes tipos de
erros gerados das mais variadas maneiras, e estes erros se
propagam e determinam o erro no resultado final obtido.
Conhecer os efeitos da propagação de erros é muito
importante pois, além de determinar o erro final de uma
operação numérica, pode-se conhecer a sensibilidade de
um determinado problema ou método numérico.
Cálculo Numérico
Estudo de Erros
Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,
Calcular: a + b, a – b e a x b
a pode variar de 47 a 53
b pode variar de 20 a 22.
• O menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 = 75.
Logo, a + b = (50 + 21) ± 4 = 71 ± 4, variando de 67 a 75.
Cálculo Numérico
Estudo de Erros
Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,
a pode variar de 47 a 53
b pode variar de 20 a 22.
O menor valor da subtração seria 47 – 22 = 25 e o
maior valor da subtração seria 53 – 20 = 33. Logo, a – b = (50 – 21) ± 4 = 29 ± 4 , variando de 25 a 33.
Observe que na subtração, os erros absolutos se somam, pois
sempre se admite o pior caso; nunca se subtraem erros, contando
com a sorte; prevê-se, sempre, o caso mais desfavorável
Cálculo Numérico
Estudo de Erros
Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,
a pode variar de 47 a 53
b pode variar de 20 a 22.
O menor valor do produto seria 47 x 20 = 940 e o maior valor do produto seria 53 x 22 = 1166.
Logo, a x b = (50 ± 3) x (21 ± 1) 1050 ± (3 x 21 + 50 x 1) 1050 ± 113. Despreza-se o produto 3 x 1, por ser muito pequeno diante de (3 x 21 + 50 x 1 ) = 113. Assim, o produto ficaria entre 937 e 1163,
ligeiramente diferente do verdadeiro intervalo, exatamente pelo abandono do produto 1 x 3, considerado desprezível
Cálculo Numérico
Estudo de Erros
Análise de Erros nas Operações Aritméticas de
Ponto Flutuante
O erro total em uma operação aritmética é
composto pelo erro das parcelas ou fatores e
pelo erro no resultado da operação.
Cálculo Numérico
Estudo de Erros
Operações Aritméticas em PF – Erros Absolutos
yxyx EAEAyxEAyEAxyx
yyx EAEAyxEAyEAxyx x
Cálculo Numérico
Estudo de Erros
Operações Aritméticas em PF – Erros Absolutos
yxyxyx EAx.EAEAxEA.yy.xEAy.EAxy.x
yxyx EAxEA.yy.xEAy.EAxy.x
muito pequeno
Cálculo Numérico
Estudo de Erros
Operações Aritméticas em PF – Erros Absolutos
y
EA1
1.
y
EAx
EAy
EAx
y
x
y
x
y
x
2
yx
2
x
y
EAyEA.y
y
EAyx
y
EA
y
x
y
x
................y
EA
y
EA
y
EA1
y
EA1
13
y
2
yy
y
(despreza-s os termos de potência >1)
Simplificação:
Cálculo Numérico
Estudo de Erros
Operações Aritméticas em PF – Erros Relativos
Soma:
Subtração:
yx
yER
yx
xER
yx
EAER yx
yx
yx
yx
yER
yx
xER
yx
EAEAER yx
yx
yx
Cálculo Numérico
Estudo de Erros
Operações Aritméticas em PF – Erros Relativos
Multiplicação:
Divisão:
yxy.x ERERER
yxx/y ERERER
Cálculo Numérico
Estudo de Erros
Cenário: sistema de aritmética de ponto flutuante
de 4 dígitos, precisão dupla.
Ex.10: Seja x = 0.937 x 104 e y = 0.1272 x 102
Calcular x + y e ER(x+y)sabendo que x, y estão
exatamente representados.
Cálculo Numérico
Estudo de Erros
Solução:
Alinhar os pontos decimais antes da soma
x = 0.937 x 104 e y = 0.001272 x 104,
x+y = 0.938272 x 104
Resultado com 4 dígitos
Arredondamento : = 0.9383 x 104
yx
Cálculo Numérico
Estudo de Erros
Cálculo de ER(x+y)
Temos:
Como x e y são representados exatamente, ERx+y se resume ao Erro Relativo de Arredondamento (RA) no resultado da soma.
RAER
RAyx
EAER
yx
yx
yx
EAx=EAy= 0, Eay+y=0
1t
yx 102
1RAER
Cálculo Numérico
Estudo de Erros
Oficina
Seja x = 0.937 x 104 e y = 0.1272 x 102
Calcular x - y e ER(x-y)sabendo que x, y e estão
exatamente representados.
Cálculo Numérico
Estudo de Erros
Ex.11: Seja x = 0.937 x 104 e y = 0.1272 x 102
Calcular x . y e ER(x+y)sabendo que x, y e estão exatamente representados.
Cálculo Numérico
Estudo de Erros
Solução: x.y = (0,937 x 104 )x(0,1272 x 102 ) = 0,1191864 x 106
6100,1192y.x
RARAy.x
EAER
y.x
y.x Temos:
(arredondamento)
1t
yx 102
1RAER
Cálculo Numérico
Estudo de Erros
Oficina
Seja x = 0.937 x 104 e y = 0.1272 x 102
Calcular x / y e ER(x/y)sabendo que x, y e estão exatamente representados.
Cálculo Numérico
Estudo de Erros
Oficina:
Seja x = 0,937x104 y = 0,1272x102 e z = 0,231x101
Calcular x + y+z e ER(x+y+z)sabendo que x, y e z estão exatamente representados.
Solução:
Alinhando as vírgulas decimais
x = 0.937x104 y = 0.001272x104 e z=0,000231
A soma é feita por partes: (X+Y)+Z
Cálculo Numérico
Estudo de Erros
No Ex 10 encontramos: x+y = 0.9383 x 104 e Calcular w = x + y+ z? e ER(x+y+z)? Seja s= x+y s+z= 0,9383 x 104 + 0,000231 x 104 = 0,938531x 104 s+z= 0,9385x 104 (arredondamento)
1t
yx 102
1RAER
x+y+z= 0,9385x 104
Cálculo Numérico
Estudo de Erros Erros – Análise
Temos: EAz=0,
ERz=0
1zs
s
zs
sER
zs
sERER
zs
zER
zs
sERER
szs
szs
szs
RARARA
RA
RAz
1t
zs 102
11
zs
sER
Cálculo Numérico
Estudo de Erros
1t
zs 102
11
zs
sER
3
10
2
11
100,9385
100,9383ER
4
4
zs
3
zs 100,9998ER
Cálculo Numérico
Estudo de Erros
Ex.12:
Supondo que x é representado num computador por , que é obtido por arredondamento. Obtenha os limites superiores para os erros relativos de
x
x2.u x x w e
Cálculo Numérico
Estudo de Erros
Solução:
1t
u 10ER
1t
x2.
x2x2.
102
12.ER
RA2.RARARAERERER
Temos:
a) x2.u
Cálculo Numérico
Estudo de Erros
x x w b)
RAxx
xER
xx
xERER
xxw
RA2.RAxx
xRA2.ER w
1t1t
w 10102
12.RA2.ER
1t
uw 10ERER Então:
Cálculo Numérico
Estudo de Erros
Oficina
II.1- Seja um sistema de aritmética de ponto flutuante de quatro dígitos,
sem circuito arredondador, base decimal e com acumulador de precisão
dupla. Dados os números:
X=0,7237x104 y=0,2145x10-3 e z=0,2585x101
Efetue as seguintes operações e obtenha o erro relativo no resultado,
supondo que x, u, e z estão exatamente representados.
a)x+y+z b)x-y-z c)x/y
d)(x.y)/z e)x.(y/z) f) (x+y).z
Cálculo Numérico
Estudo de Erros
II.02- Supondo que x é representado num computador por , onde é obtido por arredondamento, obtenha os limites superiores para os erros relativos de
x
x3.u x x x w
II.03- Idem para
x.u 4 x x x x w e
e
x
Cálculo Numérico
Estudo de Erros
II-04: Sejam e as representações de x e y obtidas por arredondamento em um computador. Deduza expressões de limitante de erro para mostrar que o limitante de erro relativo de
x y
é menor do que o de y. x x x v y. x 3. u
Cálculo Numérico
Estudo de Erros
Etapas de um cálculo numérico envolvendo dois números A e B
representados em sistema de ponto flutuante.
1. A é transferido da memória ou da unidade E/S para uma entrada do acumulador
(ULA).
2. B é transferido da memória ou da unidade E/S para a outra entrada do
acumulador (ULA). .
3. O acumulador normaliza número com expoente menor da base para ambos
ficarem com o mesmo expoente maior de base e realiza a operação. O número
resultante é transferido para a saída do acumulador com a precisão do mesmo
(dupla, tripla, etc).
4. Número resultante é adaptado (truncado ou arredondado) para o limite do
sistema de vírgula flutuante do computador e é transferido para a memória.
5. Se houver uma nova operação, o computador repete os passos 1 a 4.
6. O resultado final do conjunto de operações é transferido para a unidade de E/S
(para o usuário do software de cálculo numérico)
,
Cálculo Numérico
Estudo de Erros
E/S Memória
ULA
1 2
3
5
4
+ ,
1. A é transferido da memória ou da
unidade E/S para uma entrada do
acumulador (ULA).
2. B é transferido da memória ou da
unidade E/S para a outra entrada do
acumulador (ULA). .
3. O acumulador normaliza número com
expoente menor da base para ambos
ficarem com o mesmo expoente maior
de base e realiza a operação. O número
resultante é transferido para a saída do
acumulador com a precisão do mesmo
(dupla, tripla, etc).
4. Número resultante é adaptado (truncado
ou arredondado) para o limite do sistema de
vírgula flutuante do computador e é
transferido para a memória.
5. Se houver uma nova operação, o
computador repete os passos 1 a 4.
6. O resultado final do conjunto de operações
é transferido para a unidade de E/S (para o
usuários do software de cálculo numérico)
Cálculo Numérico
Estudo de Erros
Oficina
1. Desenhe um sistema computacional de aritmética de ponto flutuante de
quatro dígitos, sem circuito arredondador, com base decimal e com
acumulador de precisão dupla.
2. Indique no seu projeto arquitetural com um * o local exato da fonte de erros
por restrição física deste sistema e justifique esta fonte.
3. Dados os números:
X=0,7237x104 y=0,2145x10-1 e z=0,2585x101 +- 0,00071
Efetue a seguinte operação e obtenha o erro relativo no resultado, supondo que
x e y estão exatamente representados.
s = x+y+z+ 2.y