Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Eduardo Camponogara
Instabilidade de Problemas
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Sumário
Instabilidade de Problemas
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Precisão e Exatidão de Máquinas Digitais
Definição (Precisão)
A precisão de uma máquina digital é definida como o número de
dı́gitos da mantissa dessa máquina.
Definição (Exatidão)
Exatidão é uma medida de perfeição do resultado.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Precisão e Exatidão de Máquinas Digitais
Exemplo: Aproximações de π
Exemplo: Aproximações de π
Conclusões
◮ Somente duas das aproximações possuem os cinco dı́gitos
significantes exatos.
◮ Logo, exatidão de um processo depente além da máquina,
também do algoritmo.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Precisão e Exatidão de Máquinas Digitais
Exemplo
Exemplo
√
Seja o número irracional 2 = 1.414213562 . . ..
a) 1.4142 é mais preciso e mais exato que 1.41, pois o primeiro
√
tem maior número de casas decimais e aproxima melhor 2;
b) 1.4149 é mais preciso que 1.414, pois tem mais casas
decimais, porém, é menos exato do que 1.414, já que o dı́gito
9 do primeiro não é exato.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Instabilidade
Questões de Instabilidade
◮ Veremos agora uma série de problemas cujos diferentes modos
de solução podem acarretar diferentes resultados. Quando os
resultados obtidos não são aceitáveis, os erros podem ser
causados:
a) pelos modelos ou entrada de dados (erros inerentes)
b) pelo arredondamento ou truncamento.
◮ Instabilidade pode ser entendida como uma sensibilidade a
perturbações e pode ocorrer tanto no problema em si como no
algoritmo, isto é, na maneira de resolvê-lo.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Instabilidade: Exemplo 1
Função de exponencial
A instabilidade de algoritmos pode ser ilustrada através do exemplo
de se calcular a constante de Euler. Vamos calcular e e e −5.5 pela
série de Taylor. Dado que:
x2 x3 x4
ex = 1 + x + + + + ...
2 3! 4!
Então para x = 1, temos:
e∼
= 1 + 1 + 0.5 + . . . = 2.7183
Comparando esta soma com o valor 2.718 281 828 obtido em uma
calculadora, verificamos um erro relativo de 6.6 × 10−6 , que é bem
pequeno.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Instabilidade: Exemplo 2
Função de exponencial
Por outro lado, para x = −5.5, temos:
e −5.5 ∼
= 1 − 5.5 + 15.125 − 27.730 + . . . = 0.002 636 3.
Causas da diferença?
A causa do erro é uma combinação de dois fatores:
◮ somas de grandezas de diferentes ordens; e
◮ subtração de grandezas quase iguais.
Tal fenômeno é dito cancelamento subtrativo ou cancelamento
catastrófico, que é bastante comum em cálculos.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Cancelamento Subtrativo
Cancelamento Subtrativo
◮ O cancelamento subtrativo não é a real causa do erro final da
soma, ele apenas aumentou o efeito do erro final.
◮ Note que na primeira soma (para e), não houve tal aumento.
1
◮ Se mudarmos o cálculo de e −5.5 para e 5.5 e utilizarmos as
mesmas parcelas, obteremos 0.0040865 com erro relativo de
6.6 × 10−5 .
◮ Logo podemos utilizar a série de Taylor para argumentos
positivos.
◮ Na prática também devemos utilizar um critério de parada
mais cuidadoso do que o simples número de termos da série.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Qualidade da Aproximação
Qualidade
xj
Seja f (x) = T x
P
j=0 j! a aproximação de e obtida com a
◮
expansão de Taylor de ordem T em torno do ponto x = 0.
◮ Na tabela abaixo ilustramos os valores obtidos com f (x) para
x > 0.
◮ Também ilustramos as aproximações obtidas para e x com
f (x) e 1/f (−x) quando x < 0.
◮ Ainda são dados os valores de e x computados através do
Matlab.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Qualidade da Aproximação
|e x −f (x)| 1
x f (x) 1/f (−x) e x (Matlab) ex
|e x − f (−x) |/e x
-40 50.810 4.2484e-018 4.2484e-018 10e020 5.4400e-016
-20 4.1736e-009 2.0612e-009 2.0612e-009 102.48 2.0066e-016
-10 4.5400e-005 4.5400e-005 4.5400e-005 7.2342e-007 2.9851e-016
-5 6.7379e-003 6.7379e-003 6.7379e-003 2.1369e-011 2.5746e-016
-2 0.13534 0.13534 0.13534 4.1018e-014 2.0509e-016
-1 0.36788 0.36788 0.36788 3.0179e-014 1.5089e-016
0 1.0000 1.0000 0.0000
1 2.7183 2.7183 0.0000
2 7.3891 7.3891 2.4040e-014
5 1.4841e+002 1.4841e+002 1.9150e-014
10 2.2026e+004 2.2026e+004 3.3033e-014
20 4.8517e+008 4.8517e+008 2.4571e-014
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Qualidade da Aproximação
Observação
A partir dos valores apresentados na tabela podemos perceber que
o erro resultante da aproximação f (x) é elevado para x < 0.
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Exemplo 3
Exemplo 3
Exemplo 3
Causas do Erro
◮ Notemos que só foi feito um erro de arredondamento em l1
quando 1e foi tomado por 0.367879 em vez de 0.367879442.
◮ Como a fórmula está correta, o erro final é devido apenas a
este erro cometido em l1 .
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Causas do Erro
◮ Observemos como tal erro ocorreu.
◮ Em l2 o erro foi multiplicado por −2, depois em l3 foi
multiplicado por −3, etc.
◮ Então o erro de l9 é exatamente (−2)(−3) . . . (−9) = 9!.
Sendo
1
E1 = [ − 0.367879] = 4.412 × 10−7 ,
e
teremos no final
Um Algoritmo Estável
Um Algoritmo Estável
◮ Um algoritmo estável é dado por:
1 − ln
ln−1 =
, n = . . . , 4, 3, 2.
n
◮ Nesta fórmula, a cada passo, o valor do erro em ln é
decrescido por n1 (em vez de multiplicado por n).
◮ Se começarmos com n ≫ 1 voltaremos e então o erro inicial
ou erros de arredondamento diminuirão a cada passo.
◮ Resta-nos saber qual será o valor inicial para ln .
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Um Algoritmo Estável
Um Algoritmo Estável
Observamos que:
1 1 1
x n+1
1
Z Z
n x−1 n
ln = x e .dx ≤ x .dx = = .
0 0 n+1 0 n+1
Majorando o Erro
1
Majorando o erro em l20 por 21 temos:
1 1
E19 = 20 × 21 = 0.0024
1 1 1
E18 = 19 × 20 × 21 = 0.00012
.. ..
. .
E15 = 4 × 10−8 .
Introdução à Aritmética de Máquina
Introdução à Aritmética de Máquina
Instabilidade
Continuando
Possı́veis Complicações
◮ Para um dado F = F (b, n, l1 , l2 ) podemos ter conforme os
valores a, b ∈ F os seguintes problemas:
◮ Algoritmo 1: overflow em 2
◮ Algoritmo 2: underflow em 2 e 3
◮ No algoritmo 3 não teremos provavelmente nenhum erro
operacional, mas poderemos ter um erro no comando (2) se
houver cancelamento subtrativo.
Introdução à Aritmética de Máquina
Instabilidade de Problemas
Sumário
Instabilidade de Problemas
Introdução à Aritmética de Máquina
Instabilidade de Problemas
Instabilidade de Problemas
Estabilização
Duas Tarefas de Estabilização
Estável Instável
Estabilização
p(x) = x 20 − 210x 19 + . . .
= (x − 1)(x − 2)(x − 3) . . . (x − 19)(x − 20)
= 0.
R1 =1
R2 =2
R3 =3
R4 =4
R5 = 4.999 999 928
R6 = 6.000 006 944
R7 = 6.999 697 234
R8 = 8.007 267 603
Introdução à Aritmética de Máquina
Instabilidade de Problemas
Instabilidade Numérica
Algumas Considerações
◮ Note que um termo da equação mudou de −210x 19 para
−210x 19 + 2−23 x 19 , ou seja, uma mudança no vigésimo dı́gito
da base 2 de um dos coeficientes.
◮ Apesar desta pequena perturbação, o resultado é
completamente inesperado e as mudanças nas raı́zes são
grandes.
◮ A razão desta mudança drástica não é o arredondamento nem
o algoritmo e sim um problema de condicionamento.
Introdução à Aritmética de Máquina
Instabilidade de Problemas
Instabilidade Numérica
Algumas Considerações
◮ Há certos problemas que, quando sofrem alteração nos dados
de entrada, têm na sua resposta uma pequena diferença
proporcional
◮ Outros mostram grande variação no resultado mesmo com
uma pequenı́ssima alteração nos dados de entrada.
◮ Os primeiros problemas são ditos bem condicionados e os
segundos são ditos mal condicionados.
◮ A noção de problemas bem e mal condicionados será
elaborada na parte de solução de sistemas de equações
lineares.
Introdução à Aritmética de Máquina
Instabilidade de Problemas
Comentários Finais
◮ Fim!
◮ Obrigado pela presença