Академический Документы
Профессиональный Документы
Культура Документы
An
alise de Arredondamento em
Ponto Flutuante
2.1
Introdu
c
ao
2.2
Sistema de N
umeros Discreto no Computador
Representa
c
ao de um N
umero Inteiro
Em princpio, a representac
ao de um n
umero inteiro no computador nao apresenta qualquer dificuldade. Qualquer computador trabalha internamente com uma base fixa , onde e um inteiro 2; e
e escolhido como uma potencia de 2.
Assim dado um n
umero inteiro n 6= 0, ele possui uma u
nica representacao,
n = (nk nk+1 . . . n1 n0 ) = (n0 0 + n1 1 + . . . nk k ),
onde os ni , i = 0, 1, . . . , k s
ao inteiros satisfazendo 0 ni < e nk 6= 0.
32
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
33
Representa
c
ao de um n
umero real
A representac
ao de um n
umero real no computador pode ser feita de duas maneiras:
a) Representa
c
ao em ponto fixo
Este foi o sistema usado, no passado, por muitos computadores. Assim, dado um n
umero real,
x 6= 0, ele ser
a representado em ponto fixo por:
x =
n
X
xi i ,
i=k
onde k e n s
ao inteiros satisfazendo k < n e usualmente k 0 e n > 0 e os xi sao inteiros satisfazendo
0 xi < .
Por exemplo, na base = 10, o n
umero 1997.16 e representado por:
1997.16
2
X
xi i
i=3
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
34
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
35
Exerccios
2.1 - Considere o sistema F (10, 4, 4, 4). Represente neste sistema os n
umeros: x1 = 4321.24, x2 =
0.0013523, x3 = 125.64, x4 = 57481.23 e x5 = 0.00034.
2.2 - Represente no sistema F (10, 3, 1, 3) os n
umeros do exerccio 2.1.
Mudan
ca de Base
Como ja dissemos anteriormente a maioria dos computadores trabalham na base onde e um
inteiro 2; e e normalmente escolhido como uma potencia de 2. Assim um mesmo n
umero pode ser
representado em mais do que uma base. Alem disso sabemos que, atraves de uma mudan
ca de base,
e sempre possvel determinar a representacao em uma nova base. Veremos entao, atraves de exemplos,
como se faz mudanca de base.
Exemplo 2.4 - Mudar a representac
ao dos n
umeros:
i) 1101 da base 2, para a base 10,
ii) 0.110 da base 2, para a base 10,
iii) 13 da base 10, para a base 2,
iv) 0.75 da base 10, para a base 2,
v) 3.8 da base 10, para a base 2.
Solu
c
ao: Para cada n
umero daremos qual o procedimento a ser seguido. Assim:
i) 1101 que est
a na base 2, para a base 10.
Neste caso o procedimento e multiplicar cada algarismo do n
umero na base 2 por potencias crescente
de 2, da direita para a esquerda e somar todas as parcelas. Assim:
1101 = 1 20 + 0 21 + 1 22 + 1 23 = 1 + 0 + 4 + 8 = 13 .
Logo, (1101)2 = (13)10 .
ii) 0.110 que est
a na base 2, para a base 10.
Neste caso o procedimento e multiplicar cada algarismo do n
umero na base 2, apos o ponto, por
potencias decrescente de 2, da esquerda para a direita e somar todas as parcelas. Assim:
0.110 = 1 21 + 1 22 + 0 23 =
Logo, (0.110)2 = (0.75)10 .
iii) 13 que est
a na base 10, para a base 2.
1 1
+ + 0 = 0.75 .
2 4
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
36
6
0
2
3
1
2
1
= 1.50
= 1.00
= 0.00
2
= 0.5 .
4
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
37
3
2
0.5 3 = 1.5
0.5 3 = 1.5
..
.
Portanto: (6.5)10 = (20.11 . . .)3 . Logo (12.20)4 = (20.111 . . .)3 . Observe que o n
umero dado na base
4, tem representac
ao exata na base 10, mas nao na base 3.
Exerccios
2.3 - Considere os seguintes n
umeros: x1 = 34, x2 = 0.125 e x3 = 33.023 que est
ao na base 10.
Escreva-os na base 2.
2.4 - Considere os seguintes n
umeros: x1 = 110111, x2 = 0.01011 e x3 = 11.0101 que est
ao na base
2. Escreva-os na base 10.
2.5 - Considere os seguintes n
umeros: x1 = 33, x2 = 0.132 e x3 = 32.013 que est
ao na base 4.
Escreva-os na base 5.
2.3
Representa
c
ao de N
umeros no Sistema F (, t, m, M )
Sabemos que os n
umeros reais podem ser representados por uma reta contnua. Entretanto, em ponto
flutuante podemos representar apenas pontos discretos na reta real. Para ilustrar este fato consideremos
o seguinte exemplo.
Exemplo 2.6 - Quantos e quais n
umeros podem ser representados no sistema F (2, 3, 1, 2)?
Solu
c
ao: Temos que = 2 ent
ao os dgitos podem ser 0 ou 1; m = 1 e M = 2 entao 1 e 2 e
t = 3. Assim, os n
umeros s
ao da forma :
0.d1 d2 d3 e .
Logo temos: duas possiblidades para o sinal, uma possiblidade para d1 , duas para d2 , duas para d3
e quatro para as formas de e . Fazendo o produto 2 1 2 2 4 obtemos 32. Assim neste sistema
podemos representar 33 n
umeros visto que o zero faz parte de qualquer sistema.
Para responder quais s
ao os n
umeros, notemos que as formas da mantissa sao : 0.100, 0.101, 0.110
e 0.111 e as formas de e s
ao: 21 , 20 , 21 , 22 . Assim, obtemos os seguintes n
umeros:
1
2
= (0.25)10
0
2
= (0.5)10
0.100
1
2
= (1.0)10
2
2
= (2.0)10 ,
desde que (0.100)2 = (0.5)10 ;
1
2
0
2
0.101
21
2
2
= (0.3125)10
= (0.625)10
=
(1.25)10
= (2.5)10 ,
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
38
0
2
0.110
1
2
2
2
=
=
=
=
1
2
0
2
0.111
21
2
2
= (0.4375)10
= (0.875)10
=
(1.75)10
= (3.5)10 ,
(0.375)10
(0.75)10
(1.5)10
(3.0)10 ,
Exerccios
2.6 - Considere o sistema F (3, 3, 2, 1).
a) Quantos e quais n
umeros podemos representar neste sistema?
b) Represente no sistema os n
umeros: x1 = (0.40)10 , x2 = (2.8)10 .
2.7 - Considere o sistema F (2, 5, 3, 1).
a) Quantos n
umeros podemos representar neste sistema?
b) Qual o maior n
umero na base 10 que podemos representar neste sistema (sem fazer arredondamento)?
Todas as operac
oes num computador sao arredondadas. Para ilustrar este fato, consideremos o seguinte
exemplo.
Exemplo 2.8 - Calcular o quociente entre 15 e 7.
Solu
c
ao: Temos tres representac
oes alternativas:
x1 =
15
,
7
1
x2 = 2 ,
7
x3 = 2.142857.
Note que x1 e x2 s
ao representac
oes exatas e x3 e uma aproximacao do quociente.
15
Suponha agora que s
o dispomos de 4 dgitos para representar o quociente 15
7 . Da, 7 = 2.142.
umero foi
Mas nao seria melhor aproximarmos 15
7 por 2.143? A resposta e sim e isso significa que o n
arredondado. Mas o que significa arredondar um n
umero?
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
39
onde
1
1
1 (1 t ) s < 1 t .
2
2
(2.1)
Se e est
a fora do intervalo [m, M ] nao temos condicoes de representar o n
umero no sistema. Se
e [m, M ] ent
ao calculamos:
1
s + t = 0.d1 d2 . . . dt dt+1 . . .
2
e truncamos em t dgitos. Assim o n
umero arredondado sera:
x
= (sinalx)(0.d1 d2 . . . dt ) e .
Exemplo 2.9 - Considere o sistema F (10, 3, 5, 5). Represente neste sistema os n
umeros: x1 = 1234.56, x2 =
0.00054962, x3 = 0.9995, x4 = 123456.7 e x5 = 0.0000001 .
Solu
c
ao: Primeiramente, analisemos quais os valores permitidos para s. Desde que = 10 e t = 3,
usando (2.1), segue que:
1
1
101 (1 103 ) s < 1 103 ,
2
2
e fazendo os c
alculos obtemos que:
0.09995 s < 0.9995 .
Podemos agora tentar representar os n
umeros no sistema dado. Assim:
i) Para x1 = 1234.56, obtemos:
|x1 | = 0.123456 104 ,
s + 21 103 = 0.123456 + 0.0005 = 0.123956,
x
1 = 0.123 104 ;
ii) para x2 = 0.00054962, obtemos:
|x2 | = 0.54962 103 ,
3
= 0.54962 + 0.0005 = 0.55012,
s+ 1
2 10
x
2 = 0.550 103 ;
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
40
iii) para x3 = 0.9995, observe que nao podemos considerar |x3 | = 0.9995 100 , pois neste caso s nao
pertence ao seu intervalo, e o n
umero arredondado nao estaria escrito na forma dos elementos do
sistema. Assim neste caso consideramos:
|x3 | = 0.09995 101 ,
s + 12 103 = 0.09995 + 0.0005 = 0.10045,
x
3 = 0.100 101 ;
iv) para x4 = 123456.7, obtemos:
|x4 | = 0.1234567 106 ,
v) para x5 = 0.0000001, obtemos:
Exerccio
2.8 - Considere o sistema F (10, 4, 4, 4).
a) Qual o intervalo para s neste caso?
b) Represente os n
umeros do exemplo 2.9 nesse sistema.
2.4
Opera
c
oes Aritm
eticas em Ponto Flutuante
Considere uma m
aquina qualquer e uma serie de operacoes aritmeticas. Pelo fato do arredondamento
ser feito ap
os cada operac
ao temos, ao contrario do que e valido para n
umeros reais, que as operacoes
aritmeticas (adic
ao, subtracao, divis
ao e multiplicacao) nao sao nem associativas e nem distributivas.
Ilustraremos esse fato atraves de exemplos.
Nos exemplos desta sec
ao considere o sistema com base = 10, e 3 dgitos significativos.
Exemplo 2.10 - Efetue as operac
oes indicadas:
i)
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
41
Solu
c
ao: Para cada item, fazendo o arredondamento apos cada uma das operacoes efetuada, segue que:
i) (11.4 + 3.18) + 5.05 = 14.6 + 5.05 = 19.7
enquanto
11.4 + (3.18 + 5.05) = 11.4 + 8.23 = 19.6
11.4 = 36.3 = 7.19 ,
ii) 3.185.05
5.05
enquanto
3.18 11.4 = 0.630 11.4 = 7.18 .
5.05
iii) 3.18 (5.05 + 11.4) = 3.18 16.5 = 52.3
enquanto
3.18 5.05 + 3.18 11.4 = 16.1 + 36.3 =
,
.
,
52.4 .
( valor exato).
=
=
=
=
=
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
42
Observando os tres u
ltimos exemplos, vemos que erros consideraveis podem ocorrer durante e execucao
de um algoritmo. Isso se deve ao fato de que existem limitacoes da maquina e tambem que os erros de
arredondamento s
ao introduzidos a cada operacao efetuada. Em consequencia, podemos obter resultados
diferentes mesmo utilizando metodos numericos matematicamente equivalentes.
Assim, devemos ser capazes de conseguir desenvolver um algoritmo tal que os efeitos da aritmetica
discreta do computador permaneca inofensivo quando um grande n
umero de operacoes sao executadas.
Exerccios
2.9 - Considere o sistema F (10, 3, 5, 5). Efetue as operac
oes indicadas:
i)
ii)
1.338 2.038 e
4.577
1.338 2.038 ,
4.577
4.577
2.10 - Seja
x=
17.678
(9.617)2
+
3.471
3.716 1.85
n
X
i=1
n(n + 1)
.
2
2.5
Efeitos Num
ericos
Alem dos problemas dos erros causados pelas operacoes aritmeticas, das fontes de erros citadas no
incio deste captulo, existem certos efeitos numericos que contribuem para que o resultado obtido nao
tenha credito. Alguns dos mais frequentes sao:
Cancelamento
Propagac
ao do Erro
Instabilidade Numerica
Mal Condicionamento
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
2.5.1
43
Cancelamento
9876
9875 .
Solu
c
ao: Temos que:
9876
A normalizac
ao muda este resultado para: 0.5031420000 104 . Assim os quatro zeros no final da
mantissa n
ao tem significado e assim perdemos 4 casas decimais. A pergunta que surge naturalmente e:
podemos obter um resultado mais preciso? Neste caso a resposta e sim. Basta consideramos a identidade:
y =
xy
,
x+ y
9876
9875 =
= 0.5031418679 104 .
9876 + 9875
= 817 667487 .
1634
Assim:
x1
x2
=
=
2
.
x1
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
44
2.5.2
Propagac
ao do erro
O cancelamento n
ao ocorre somente quando dois n
umeros quase iguais sao subtraidos diretamente
um do outro. Ele tambem ocorre no calculo de uma soma quando uma soma parcial e muito grande
quando comparada com o resultado final. Para exemplificar, consideremos que:
sk =
n
X
ak ,
k=1
seja a soma a ser calculada, onde os ak podem ser positivos ou negativos. Vamos supor que o calculo seja
feito atraves de uma sequencia de somas parciais da seguinte forma:
s1 = a1 , sk = sk1 + ak , k = 2, 3, . . . , n ,
tal que s = sn .
Se a soma e calculada em aritmetica de ponto fixo, entao cada ak esta afetado de algum erro, os quais
sao limitados por algum para todo k. Se nenhum overflow ocorre, o erro na soma final s sera de no
maximo n. Agora devido ao fato de nem todos os ak terem o mesmo sinal entao o erro sera menor do
que n.
Mas se a soma e calculada em aritmetica de ponto flutuante um novo fenomeno pode ocorrer. Vamos
supor que uma das somas intermedi
arias sk e consideravelmente grande em relacao `a soma final s, no
claro que isso so pode
sentido que o expoente de sk excede o expoente de s em, digamos, p unidades. E
ocorrer se nem todos os ak possuem o mesmo sinal. Se simularmos tal soma em aritmetica de ponto fixo
(usando para todas as somas parciais o mesmo expoente de s) entao devemos trocar os u
ltimos p dgitos
de sk por zeros. Estes dgitos infuenciam os u
ltimos dgitos de s, e, como em geral, estao errados, nao
podemos falar que o erro final ser
a pequeno.
A perda de algarismos significativos devido a uma soma intermediaria grande e chamada de Propaga
c
ao do Erro. Veremos este fato atraves de exemplos.
Exemplo 2.15 - Calcular e5.25 , utilizando 5 dgitos significativos em todas as operac
oes.
Solu
c
ao: O seguinte resultado matematico e bem conhecido: para todo n
umero real x,
ex =
X
k=0
(1)k
xk
.
k!
=
+
+
+
+
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
45
Efetuando os c
alculos obtemos: e5.25 = 0.65974 102 . Observe que, usando uma calculadora, o
5.25
resultado de e
e 0.52475 102 . Essa diferenca entre os valores obtidos ocorreu porque na expressao
acima temos parcelas da ordem de 102 que desprezam toda grandeza inferior a 103 (ver Tabela 2.1),
enquanto que o resultado real de e5.25 e constituido quase que exclusivamente de grandezas dessa ordem.
A pergunta que surge naturalmente e: podemos obter um resultado mais preciso? A resposta e sim. Basta
1 e que:
lembrar que e5.25 = 5.25
e
X
xk
ex =
.
k!
k=0
para todo n
umero real x. Somando todas as parcelas da expressao de e5.25 , (desde que a expansao de
1 =
ex e ex diferem apenas em termos de sinal), obtemos: e5.25 = 0.19057 103 , e assim e5.25 = 5.25
e
1
= 0.52475 102 .
0.19057 103
1 , considerando a expansao ate o termo
Na Tabela 2.1, apresentamos os c
alculos de e5.25 , e5.25 e 5.25
e
de ordem 10k , k = 1, 0, 1, . . . , 6.
Tabela 2.1
e5.25
10k
101
100
101
102
103
104
105
106
0.64130(100 )
0.42990(101 )
0.10393(101 )
0.69105(102 )
0.66183(102 )
0.65929(102 )
0.65971(102 )
0.65974(102 )
1
e5.25
e5.25
0.18907(103 )
0.19049(103 )
0.19056(103 )
0.19056(103 )
0.19057(103 )
0.19057(103 )
0.19057(103 )
0.19057(103 )
0.52890(102 )
0.52496(102 )
0.52477(102 )
0.52477(102 )
0.52475(102 )
0.52475(102 )
0.52475(102 )
0.52475(102 )
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
46
(2.2)
Agora para calcular numericamente o valor da integral dada, podemos primeiramente expressar o
integrando usando o Teorema binomial, isto e:
xn = [(x + a) a]n =
n
X
(1)k
k=0
n
k
(x + a)nk ak .
Substituindo xn na express
ao para yn , obtemos:
Z
yn
n
X
=
0
(1)k
n
k
k=0
n
X
k k
(1) a
k=0
n1
X
n
k
(x + a)nk1 ak dx
Z
(x + a)nk1 dx
Z 1
n
(x + a)nk1 dx
k
0
k=0
Z 1
n
+ (1)n an
(x + a)1 dx
n
0
=
(1)k ak
e assim:
yn
n1
X
k k
(1) a
k=0
n
k
1
n
nk
((1 + a) k a
)
nk
(2.3)
1+a
.
(a)n ln
a
Para a = 10 e n = 10, utilizando (2.3) para calcular yn , obtemos yn = 2.000000, que comparado
com (2.2), est
a totalmente errado. A razao para isso e uma extrema propagacao de erro. Para n = 10, o
termo correspondente a k = 5 na soma (2.3) e igual a:
1
10
(1)5 a5
((1 + a)5 a5 ) = 3.13 1011 .
5
5
Assim para uma calculadora com 10 dgitos na mantissa, no mnimo dois dgitos antes do ponto
decimal do resultado s
ao n
ao confi
aveis, bem como os dgitos depois do ponto decimal.
2.5.3
Instabilidade Num
erica
Se um resultado intermedi
ario de um calculo e contaminado por um erro de arredondamento, este
erro pode influenciar todos os resultados subsequentes que dependem desse resultado intermediario. Os
erros de arredondamento podem propagar-se mesmo que todos os calculos subsequentes sejam feitos com
precisao dupla. Na realidade, cada novo resultado intermediario introduz um novo erro de arredonda de se esperar portanto, que todos esses erros influenciem o resultado final. Numa situacao
mento. E
simples como o caso de uma soma, o erro final pode ser igual a soma de todos os erros intemediarios.
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
47
xn ex dx .
In = e
Solu
c
ao: Vamos tentar encontrar uma formula de recorrencia para In . Integrando por partes, segue que:
Z 1
n1 x
1
n x 1
In = e
[x e ]0
nx
e dx
0
= 1 n e1
xn1 ex dx
1 n In1 .
n = 1, 2, . . . ,
(2.4)
e desde que:
1
I0 = e
ex dx = e1 (e 1) = 0.6321,
I4
rn = In In .
(2.5)
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
48
n = 1, 2, . . . .
Aplicando essa f
ormula repetidamente, obtemos:
rn = nrn1 = (n)2 rn2 = . . . = (n)n r0 ,
e portanto
rn = (n)n 0 ,
desde que r0 = 0 . Assim, a cada passo do calculo, o erro cresce do fator n. Surge entao a pergunta: Como
encontrar o valor exato de In ? Para este caso em particular, observe que: uma relac
ao de recorrencia
ser inst
avel na direc
ao crescente de n n
ao impede de ser est
avel na direc
ao decrescente de n. Assim,
resolvendo (2.4), para In1 , obtemos:
In1 =
(1 In )
.
n
(2.6)
2.5.4
Mal Condicionamento
x +
x +
y
1.01y
=
2
= 2.01
Solu
c
ao: A soluc
ao desse sistema pode ser facilmente obtida, por exemplo, por substituicao. Fazendo
isso, obtemos: x = y = 1. Se o n
umero 2.01, da segunda equacao e mudado para 2.02, obtemos que a
solucao do sistema e agora x=0 e y=2. Portanto uma pequena mudanca nos dados produz uma grande
mudanca no resultado. Vamos ent
ao interpretar geometricamente o resultado. A solucao do sistema e
o ponto de intersec
ao das duas retas: y = 2-x e y = (2.01 -x)/1.01. Essas retas estao desenhadas na
claro que o ponto de intersecao e muito sensvel a pequenas pertubacoes em cada uma
Figura 2.1. E
dessas retas desde que elas sao praticamente paralelas. De fato, se o coeficiente de y na segunda equacao
e 1.00, as duas retas s
ao exatamente paralelas e o sistema nao tem solucao. Isto e tpico de problemas
mal condicionados. Eles s
ao tambem chamados de problemas crticos, pois ou possuem infinitas solucoes
ou nao possuem nenhuma.
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
49
6
@
@
@(1,1)
@
@ y = (2.01 x)/1.01
@
y =2x
Figura 2.1
y 00
y(0)
0
y (0)
de valor inicial:
= y
= a
= b
onde a e b s
ao dados.
Solu
c
ao: A soluc
ao te
orica desse problema de valor inicial e:
y(x) = C1 ex + C2 ex ,
(2.7)
Portanto a soluc
ao difere da solucao do problema anterior de senh x. Assim a caracterstica
matematica da soluc
ao foi mudada completamente, pois enquanto no primeiro resultado a solucao 0,
quando x ela agora quando x . Tudo isso ocorreu apesar da dependencia de y(x) sobre
os dados a e b ser claramente contnua.
Torna-se ent
ao necess
ario introduzir uma medida para o grau de continuidade de um problema. Tal
medida e essencial em muitas definic
oes de continuidade. Seja X o espaco dos dados; os elementos x
de X podem ser n
umeros, pontos de um espaco euclidiano, vetores, matrizes, funcoes, etc.... Podemos
entao falar em continuidade se pudermos ser capazes de medir a distancia entre os elementos de X.
Suponhamos que o espaco X est
a dotado com uma funcao distancia d(x, y) que mede a distancia entre
os elementos x e y de X. Se por exemplo, X e o espaco dos n
umeros reais, a funcao distancia e definida
por: d(x, y) = |x y|. Para X = IRn , veja Definicao 1.7.
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
50
Seja P o processo nos quais os dados x sao transformados no resultado y, isto e: y = P (x). Se o
processo P e contnuo num ponto x, entao a definicao de continuidade (matematica) exige que para cada
> 0, () > 0 tais que:
|P (
x) P (x)| < sempre que |
x x| < () .
Quanto maior a func
ao () pode ser escolhida, mais contnuo e o processo P . No caso em que grandes
mudancas nos dados produzem somente pequenas mudancas nos resultados, ou se () pode ser escolhido
grande, a condic
ao do problema e boa, e o problema e chamado bem condicionado. Por outro lado, se
pequenas mudancas nos dados produzem grandes mudancas nos resultados, ou se () deve ser escolhido
pequeno, a condic
ao do problema e ma, e o problema e chamado mal condicionado.
Exemplo 2.20 - Analisar o problema de valor inicial do exemplo 2.19.
Solu
c
ao: Se queremos que a soluc
ao y(x) num ponto x seja mudada por nao mais que uma quan , o
tidade , ent
ao a condic
ao inicial y 0 (0) = 1 deve ser mudada por nao mais que: () =
senh x
qual pode ser feito arbitrariamente pequeno escolhendo x grande. Por exemplo para x = 10, obtemos:
() = 0.9 104 . Assim temos um problema mal condicionado.
Podemos tambem verificar se um problema e ou nao mal condicionado analisando o n
umero de
condi
c
ao do problema. O problema sera bem condicionado se o n
umero de condicao for pequeno e sera
mal condicionado se o n
umero de condicao for grande. Entretanto a definicao de n
umero de condicao
depende do problema.
Seja y = P (x), com P diferenci
avel. Entao a mudanca em y causada pela mudanca em x pode ser
aproximada, (no sentido do c
alculo diferencial) pelo diferencial de y, isto e: dy = P 0 (x) dx. Assim o
comprimento de |P 0 (x)| do operador linear P (x) representa o n
umero de condicao do problema num
ponto x. O n
umero de condic
ao relativa e definido por:
|P 0 (x)|
|.
|P (x)|
cr =
ln
1
x
1
8
1
8
1
8x
ln
ln
1
x
9
8 1/x2
1/x
1
x
9
8
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
51
e o n
umero de condic
ao relativa e dada por:
0
f (x)
1
=
cr =
.
1
f (x)
8 x ln x
Para x = 0, e x = 1 tanto o n
umero de condicao como o n
umero de condicao relativa sao infinito, e
assim nestes pontos o problema e extremamente mal condicionado. Para aproximadamente 0.1537 x
0.5360, cr 1. Portanto neste intervalo o problema de calcular f e bem condicionado.
O problema de resolver um sistema linear, como vimos, e um outro exemplo de problema onde
pequenas pertubac
oes nos dados podem alterar de modo significativo o resultado. A analise do problema
de mal condicionamento de sistemas lineares, encontra-se no Captulo 4.
Teoricamente, o termo mal condicionado e usado somente para modelos matematicos ou problemas
e o termo instabilidade somente para algoritmos. Entretanto, na pratica os dois termos sao usados sem
distincao.
O leitor interessado em maiores detalhes sobre os topicos apresentados nesse captulo, deve consultar
os livros: [Forsythe, 19 .. ] e [Henrice, 1982].
Exerccios
2.13 - Considere a integral do exerccio 2.13, com a = 10.
a) Calcule y0 usando a integral.
b) Mostre que uma relac
ao de recorrencia para yn e dada por:
yn =
1
a yn1 .
n
yn .
a
n
Considere ainda que y20 = 0. Usando este dado e a relac
ao de recorrencia obtenha os valores de
y10 , y9 , . . . , y1 . Os resultados agora s
ao melhores? Como voce explica isso?
2.6
Exerccios Complementares
2.15 - Dados os n
umeros: (13.44)5 , (122.35)6 , (31.202)4 . Existe algum com representac
ao exata no
sistema F (2, 10, 10, 10)?
2.16 - Considere o sistema F (2, 8, 4, 4) e os n
umeros x1 = 0.10110011 22 e x2 = 0.10110010 22 .
Qual dos dois n
umeros representa melhor (2.8)10 ?
2.17 - Seja o sistema F (2, 3, 1, 2). Exiba todos os n
umeros represent
aveis neste sistema e coloque-os
sobre um eixo ordenado.
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
52
10
X
2
,
k2
k=1
i2
n
X
i=2
i2 = 1 ,
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
53
2.26 - Se a, b e c s
ao reais e a 6= 0, ent
ao a equac
ao
a x2 + b x + c = 0 ,
e satisfeita para exatamente dois valores de x:
b + b2 4 a c ,
x
=
1
2a
(I)
x = b b2 4 a c .
2
2a
Entretanto, desde que, a x2 + b x + c = a (x x1 ) (x x2 ) obtemos que: a x1 x2 = c e assim
podemos reescrever (I) na seguinte forma:
x1 = b + sinal de (b) b 4 a c ,
2a
(II)
x2 = a cx1 ,
Temos ainda que x1 e x2 podem ser escritos como:
2 c
x1 = b + b2 4 a c ,
(III)
x2 = a cx1 .
Utilizando (I), (II) e (III) calcule as razes das equac
oes para os valores de a, b e c dados a seguir:
i) a = 1 ;
ii) a = 1 ;
iii) a = 6 ;
b = 105 ;
b = 4 ;
b = 5;
c = 1 ,
c = 3.9999999 ,
c = 4 .
2.27 - A func
ao de Bessel satisfaz a seguinte relac
ao de recorrencia:
Jn+1 (x)
2n
Jn (x) + Jn1 (x) = 0 .
x
CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE
54