Вы находитесь на странице: 1из 39

Erros

Instabilidade Numrica
Representao de nmeros em mquinas
Leonardo F. Guidi
DMPA IM
UFRGS
Clculo Numrico
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
ndice
1
Erros
2
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Erros
O principal propsito da computao cientca: a construo de mtodos
que permitam obter aproximaes numricas para um dado objeto cujo
valor exato seja impossvel ou muito difcil de ser obtido.
Os mtodos devem produzir as aproximaes do modo mais eciente e
acurado possvel.
fundamental controlar as fontes de erro.
Classicao dos erros (de acordo com a sua origem):
erros nos dados de entrada.
erros de arredondamento.
erros de truncamento.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Conceitos iniciais
Notao:
Utilizamos a seguinte notao para expressar os dgitos conhecidos de um
nmero:
x = 34, 456778. . .
Denio (erro absoluto e erro relativo):
O erro absoluto na representao x denido por |x x|. O erro relativo
denido como
|x x|
|x|
.
No contexto da anlise numrica, os termos acurcia e preciso so relaci-
onados denio de erro absoluto e erro relativo: denominamos acurcia,
a medida do erro absoluto ou relativo de uma determinada quantidade. J
preciso, indica a acurcia com a qual so realizadas as operaes aritm-
ticas bsicas +, -, / e *.
No caso dos pontos utuantes, a preciso relaciona-se ao nmero deno-
minado de mquina: o menor nmero que somado a 1 retorna um
ponto utuante diferente de 1. No scilab representado por %eps.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Conceitos iniciais
Notao:
Com x y (x y) queremos dizer que x muito menor (muito
maior) do que y. O termo muito menor (ou muito
maior)depende do contexto.
Com x y queremos dizer que x aproximadamente igual a y, ou
dito de outra forma, |x y| , onde depende do contexto.
Com x y (x y) queremos dizer que x menor (maior) ou
aproximadamente igual a y e possui o mesmo signicado da
expresso x y e x y.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Propagao de erros
Vamos assumir que x uma aproximao de um nmero x, sem perda de
generalidade, vamos supor que x > x.
Se quisermos encontrar o valor da funo f calculada em x mas s dispor-
mos de x devemos aproximar f (x) por f ( x).
Para f diferencivel, o teorema do valor mdio garante que existe um
( x, x):
f (x) f ( x) = f

()(x x).
Mas e ?
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Propagao de erros
Supondo que f

limitada no intervalo de valores entre x e x, ento


podemos limitar em valor absoluto :
|f (x) f ( x)| M|x x| ,
onde M = sup
y(x, x)
|f

(y)|.
Se o erro em valor absoluto for pequeno (o suciente para que f

no varia
apreciavelmente) ento razovel estimar
|f (x) f ( x)|

( x)

|x x| .
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Propagao de erros
Caso em que f depende de mais de uma varivel, ento h duas possibili-
dades:
Seja x = (x
1
, x
2
, . . . , x
n
) o vetor que representa uma quantidade
exata e x = ( x
1
, x
2
, . . . , x
n
) a sua aproximao, ento se f for
diferencivel em uma vizinhana de x que contenha x, ento para x
sucientemente prximo de x:
|f (x) f ( x)|
n

i =1

f
x
i
( x)

|x
i
x
i
| .
Em algumas situaes a estimativa anterior pode ser muito
pessimista. Se os erros |x
i
x
i
| forem variveis aleatrias
(tipicamente os erros de medidas experimentais livres de erros
sistemticos) com desvio padro
i
, ento a propagao de erro
para f dada por
|f (x) f ( x)|

i =1

f
x
i
( x)

2
i
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Propagao de erros
Caso em que f depende de mais de uma varivel, ento h duas possibili-
dades:
Seja x = (x
1
, x
2
, . . . , x
n
) o vetor que representa uma quantidade
exata e x = ( x
1
, x
2
, . . . , x
n
) a sua aproximao, ento se f for
diferencivel em uma vizinhana de x que contenha x, ento para x
sucientemente prximo de x:
|f (x) f ( x)|
n

i =1

f
x
i
( x)

|x
i
x
i
| .
Em algumas situaes a estimativa anterior pode ser muito
pessimista. Se os erros |x
i
x
i
| forem variveis aleatrias
(tipicamente os erros de medidas experimentais livres de erros
sistemticos) com desvio padro
i
, ento a propagao de erro
para f dada por
|f (x) f ( x)|

i =1

f
x
i
( x)

2
i
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
Alguns problemas matemticos e algoritmos numricos possuem a propri-
edade de ampliar drasticamente os erros presentes nos dados de entrada e
assim invalidar a sada ou resposta.
No contexto do clculo numrico, esse fenmeno denominado instabili-
dade numrica.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
Alguns problemas matemticos e algoritmos numricos possuem a propri-
edade de ampliar drasticamente os erros presentes nos dados de entrada e
assim invalidar a sada ou resposta.
No contexto do clculo numrico, esse fenmeno denominado instabili-
dade numrica.
A instabilidade se manifesta devido natureza do algoritmo ou do prprio
problema (nessa caso, dizemos que o problema mal-condicionado).
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
Alguns problemas matemticos e algoritmos numricos possuem a propri-
edade de ampliar drasticamente os erros presentes nos dados de entrada e
assim invalidar a sada ou resposta.
No contexto do clculo numrico, esse fenmeno denominado instabili-
dade numrica.
A instabilidade se manifesta devido natureza do algoritmo ou do prprio
problema (nessa caso, dizemos que o problema mal-condicionado).
Vamos analisar a instabilidade numrica se manifestando em um algoritmo:
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
Alguns problemas matemticos e algoritmos numricos possuem a propri-
edade de ampliar drasticamente os erros presentes nos dados de entrada e
assim invalidar a sada ou resposta.
No contexto do clculo numrico, esse fenmeno denominado instabili-
dade numrica.
A instabilidade se manifesta devido natureza do algoritmo ou do prprio
problema (nessa caso, dizemos que o problema mal-condicionado).
Vamos analisar a instabilidade numrica se manifestando em um algoritmo:
Seja a integral I
n
denida para qualquer n = 0, 1, . . .
I
n
.
=
_
1
0
x
n
e
x1
dx.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
Alguns problemas matemticos e algoritmos numricos possuem a propri-
edade de ampliar drasticamente os erros presentes nos dados de entrada e
assim invalidar a sada ou resposta.
No contexto do clculo numrico, esse fenmeno denominado instabili-
dade numrica.
A instabilidade se manifesta devido natureza do algoritmo ou do prprio
problema (nessa caso, dizemos que o problema mal-condicionado).
Vamos analisar a instabilidade numrica se manifestando em um algoritmo:
Seja a integral I
n
denida para qualquer n = 0, 1, . . .
I
n
.
=
_
1
0
x
n
e
x1
dx.
Essa integral sempre positiva pois seu integrando maior ou igual a zero
e como e
x1
1 no intervalo de integrao, temos que
0 < I
n

1
n +1
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
A integral pode ser resolvida utilizando-se sucessivamente a integrao por
partes. A partir dela, podemos vericar que I
n
satisfaz uma relao de
recorrncia.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica
A integral pode ser resolvida utilizando-se sucessivamente a integrao por
partes. A partir dela, podemos vericar que I
n
satisfaz uma relao de
recorrncia. Se n 1, ento
I
n
= x
n
e
x1

x=1
x=0
n
_
1
0
x
n1
e
x1
I
n
= 1nI
n1
para n = 1, 2, . . .
Veremos que um algoritmo baseado na utilizao direta da relao de
recorrncia para I
n
numericamente instvel.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
um efeito presente nas operaes em ponto utuante, caracterizado
pelo aumento signicativo do erro relativo no resultado da operao. O
cancelamento catastrco pode ser vericado principalmente na operao
de subtrao de dois pontos utuantes muito prximos.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
um efeito presente nas operaes em ponto utuante, caracterizado
pelo aumento signicativo do erro relativo no resultado da operao. O
cancelamento catastrco pode ser vericado principalmente na operao
de subtrao de dois pontos utuantes muito prximos.
Vamos considerar a operao em ponto utuante associada subtrao
dos nmeros racionais 0, 9876543210423456789 e 0, 9876543209.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
um efeito presente nas operaes em ponto utuante, caracterizado
pelo aumento signicativo do erro relativo no resultado da operao. O
cancelamento catastrco pode ser vericado principalmente na operao
de subtrao de dois pontos utuantes muito prximos.
Vamos considerar a operao em ponto utuante associada subtrao
dos nmeros racionais 0, 9876543210423456789 e 0, 9876543209.
Se os registros forem de 10 dgitos, a representao dos dois nmeros ser
respectivamente
0, 9876543210 e 0, 9876543209.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
um efeito presente nas operaes em ponto utuante, caracterizado
pelo aumento signicativo do erro relativo no resultado da operao. O
cancelamento catastrco pode ser vericado principalmente na operao
de subtrao de dois pontos utuantes muito prximos.
Vamos considerar a operao em ponto utuante associada subtrao
dos nmeros racionais 0, 9876543210423456789 e 0, 9876543209.
Se os registros forem de 10 dgitos, a representao dos dois nmeros ser
respectivamente
0, 9876543210 e 0, 9876543209.
A diferena exata entre os dois nmeros de
0, 142345678910
10
enquanto que o resultado da operao de diferena em ponto utuante
0, 10000000010
10
.
O erro relativo aproximadamente 0, 3.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Um outro exemplo clssico o das razes de uma equao polinomial de
segundo grau.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Um outro exemplo clssico o das razes de uma equao polinomial de
segundo grau.
Seja a equao de segundo grau
x
2
+400x 0.00004617 = 0.
Essa equao possui duas razes reais, uma prxima a 400 e outra prxima
a 0.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Um outro exemplo clssico o das razes de uma equao polinomial de
segundo grau.
Seja a equao de segundo grau
x
2
+400x 0.00004617 = 0.
Essa equao possui duas razes reais, uma prxima a 400 e outra prxima
a 0. As razes so dadas exatamente por
400
_
400
2
+40, 00004617
2
e
400+
_
400
2
+40, 00004617
2
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Um outro exemplo clssico o das razes de uma equao polinomial de
segundo grau.
Seja a equao de segundo grau
x
2
+400x 0.00004617 = 0.
Essa equao possui duas razes reais, uma prxima a 400 e outra prxima
a 0.
A sequncia de operaes em ponto utuante utilizada para calcular as
razes dada por
(b sqrt ((b b) (4c))) 2
e
(b sqrt ((b b) (4c))) 2
onde b = 0, 400000000010
3
e c =0.461700000010
4
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Substituindo os valores e realizando as operaes, obtemos
(b sqrt ((b b) (4c))) 2
=
_
0, 400000000010
3
sqrt
_
0, 160000000010
6
0, 184680000010
3
__
2
=
_
0, 400000000010
3
sqrt
_
0, 160000000210
6
__
2
=
_
0, 400000000010
3
0, 400000000210
3
_
2
= 0, 400000000110
3
,
Realizando as operaes para a outra raiz, obtemos o valor 0, 1000000000
10
6
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
O valor da primeira raiz com os dezesseis primeiros dgitos exatos
400, 0000001154249. . . e h concordncia com os dez primeiros dgi-
tos obtidos na operao em ponto utuante. O mesmo no ocorre
com a segunda raiz. Neste caso, o valor com dezesseis dgitos exatos
0, 1154249999666926. . . 10
6
e, exceo do primeiro dgito, todos os
seguintes diferem, o que caracteriza o cancelamento catastrco.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
O valor da primeira raiz com os dezesseis primeiros dgitos exatos
400, 0000001154249. . . e h concordncia com os dez primeiros dgi-
tos obtidos na operao em ponto utuante. O mesmo no ocorre
com a segunda raiz. Neste caso, o valor com dezesseis dgitos exatos
0, 1154249999666926. . . 10
6
e, exceo do primeiro dgito, todos os
seguintes diferem, o que caracteriza o cancelamento catastrco.
A inexatido no clculo da segunda raiz pode ser diminuda consideravel-
mente se manipularmos a expresso de maneira a evitar a subtrao de
dois pontos utuantes muito prximos.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
O valor da primeira raiz com os dezesseis primeiros dgitos exatos
400, 0000001154249. . . e h concordncia com os dez primeiros dgi-
tos obtidos na operao em ponto utuante. O mesmo no ocorre
com a segunda raiz. Neste caso, o valor com dezesseis dgitos exatos
0, 1154249999666926. . . 10
6
e, exceo do primeiro dgito, todos os
seguintes diferem, o que caracteriza o cancelamento catastrco.
A inexatido no clculo da segunda raiz pode ser diminuda consideravel-
mente se manipularmos a expresso de maneira a evitar a subtrao de
dois pontos utuantes muito prximos.
Analisando a expresso para a segunda raiz, podemos vericar que a ope-
rao inexata a subtrao presente na soma dos termos b e

b
2
4c.
Neste exemplo, em valores absolutos, b muito maior que c, portanto
a representao em ponto utuante do termo

b
2
4c partilha muitos
dgitos em comum com a representao de b.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Evitamos o cancelamento catastrco em ponto utuante realizando o
cancelamento na prpria expresso, antes de realizarmos as operaes em
ponto utuante:
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Evitamos o cancelamento catastrco em ponto utuante realizando o
cancelamento na prpria expresso, antes de realizarmos as operaes em
ponto utuante:
b +
_
b
2
4c =
= b +|b|
_
1
4c
b
2
= b +|b|
_
1
2c
b
2
+. . .
_
b +|b|
_
1
2c
b
2
_
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Cancelamento catastrco
Como b > 0, a segunda raiz pode ser calculada a partir da aproximao
b +

b
2
4c
2

c
b
.
Substituindo os valores das constantes b, c e realizando as operaes em
ponto utuante, obtemos a aproximao 0, 115425000010
6
que possui
um erro muitas vezes menor.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade relacionada ao canc. catastr.
Vamos estudar agora um exemplo no qual o cancelamento catastrco leva
instabilidade numrica:
Frmula de recorrncia de Arquimedes (ou algoritmo Borchardt-Pfa) para
aproximar o valor de .
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade relacionada ao canc. catastr.
Vamos estudar agora um exemplo no qual o cancelamento catastrco leva
instabilidade numrica:
Frmula de recorrncia de Arquimedes (ou algoritmo Borchardt-Pfa) para
aproximar o valor de .
Baseia-se na sucessiva aproximao de atravs de polgonos de 6 2
n
lados inscritos em um crculo unitrio e por ele circunscritos.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade relacionada ao canc. catastr.
Vamos estudar agora um exemplo no qual o cancelamento catastrco leva
instabilidade numrica:
Frmula de recorrncia de Arquimedes (ou algoritmo Borchardt-Pfa) para
aproximar o valor de .
Baseia-se na sucessiva aproximao de atravs de polgonos de 6 2
n
lados inscritos em um crculo unitrio e por ele circunscritos.
Podemos utilizar duas frmulas de recorrncia:
s
i +1
=
_
s
2
i
+11
s
i
ou s
i +1
=
s
i
_
s
2
i
+1+1
onde s
0
=
_
3
_
1
. E assim,
62
i
s
i
.
O valor exato
= 3, 14159265358979323846264. . .
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica condicionamento
Um outro exemplo clssico o das razes de uma equao polinomial
de segundo grau. Nesse caso, a instabilidade est relacionada propria
natureza do problema.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica condicionamento
Um outro exemplo clssico o das razes de uma equao polinomial
de segundo grau. Nesse caso, a instabilidade est relacionada propria
natureza do problema.
Seja o polinmio
P(x) = (x 1)(x 2). . . (x 20) = x
20
210x
19
+. . . +20!
Ou seja, P um polinmio em x com razes inteiras 1, 2, 3, . . . , 20.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica condicionamento
Um outro exemplo clssico o das razes de uma equao polinomial
de segundo grau. Nesse caso, a instabilidade est relacionada propria
natureza do problema.
Seja o polinmio
P(x) = (x 1)(x 2). . . (x 20) = x
20
210x
19
+. . . +20!
Ou seja, P um polinmio em x com razes inteiras 1, 2, 3, . . . , 20.
Vamos considerar agora o polinmio

P:

P(x) = P(x) 2
23
x
19
.
Ou seja,

P igual P a menos de um erro relativo de 5, 7 10
10
no coe-
ciente do termo x
9
.
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica condicionamento
As razes do polinmio

P so (com cinco dgitos aps a vrgula)
x
1
= 1, 0000. . . x
6
= 5.9999. . .
x
2
= 2, 0000. . . x
7
= 7, 0003. . .
x
3
= 3, 0000. . . x
8
= 7, 9930. . .
x
4
= 4, 0000. . . x
9
= 9, 1472. . .
x
5
= 5, 0000. . . x
20
= 9, 5020. . .
x
11
= x
10
x
13
= x
12
x
17
= x
16
x
19
= x
18
x
10
= 10, 8929. . . +1, 1493. . . i
x
12
= 12, 8217. . . +2.1234. . . i
x
14
= 15, 3059. . . +2, 7753. . . i
x
16
= 18, 1813. . . +2, 5489. . . i
x
18
= 20, 4767. . . +1, 0390. . . i
x
15
= x
14
Leonardo F. Guidi Representao de nmeros em mquinas
Erros
Instabilidade Numrica
Algoritmos instveis
Cancelamento catastrco
Condicionamento
Instabilidade numrica condicionamento
As razes do polinmio

P so (com cinco dgitos aps a vrgula)
x
1
= 1, 0000. . . x
6
= 5.9999. . .
x
2
= 2, 0000. . . x
7
= 7, 0003. . .
x
3
= 3, 0000. . . x
8
= 7, 9930. . .
x
4
= 4, 0000. . . x
9
= 9, 1472. . .
x
5
= 5, 0000. . . x
20
= 9, 5020. . .
x
11
= x
10
x
13
= x
12
x
17
= x
16
x
19
= x
18
x
10
= 10, 8929. . . +1, 1493. . . i
x
12
= 12, 8217. . . +2.1234. . . i
x
14
= 15, 3059. . . +2, 7753. . . i
x
16
= 18, 1813. . . +2, 5489. . . i
x
18
= 20, 4767. . . +1, 0390. . . i
x
15
= x
14
Um erro relativo de 5, 7 10
10
no coeciente x
19
foi capaz de alterar
drasticamente parte das razes. Como entender esse fenmeno?
Leonardo F. Guidi Representao de nmeros em mquinas

Вам также может понравиться