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

Captulo 2

An
alise de Arredondamento em
Ponto Flutuante
2.1

Introdu
c
ao

Neste captulo, chamamos atenc


ao para o fato de que o conjunto dos n
umeros representaveis em
qualquer m
aquina e finito, e portanto discreto, ou seja nao e possvel representar em uma maquina todos
os n
umeros de um dado intervalo [a, b]. A implicacao imediata desse fato e que o resultado de uma
simples operac
ao aritmetica ou o c
alculo de uma funcao, realizadas com esses n
umeros, podem conter
erros. A menos que medidas apropriadas sejam tomadas, essas imprecisoes causadas, por exemplo, por
simplificac
ao no modelo matem
atico (algumas vezes necessarias para se obter um modelo matematico
sol
uvel); erro de truncamento (troca de uma serie infinita por uma finita); erro de arredondamento
(devido a propria estrutura da m
aquina); erro nos dados (dados imprecisos obtidos de experimentos,
ou arredondados na entrada); etc, podem diminuir e algumas vezes destruir, a precisao dos resultados,
mesmo em precis
ao dupla.
Assim, nosso objetivo aqui ser
a o de alertar o leitor para os problemas que possam surgir durante a
resolucao de um problema, bem como dar subsdios para evita-los e para uma melhor interpretac
ao dos
resultados obtidos.

2.2

Sistema de N
umeros Discreto no Computador

Inicialmente, descreveremos como os n


umeros sao representados num 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

Por exemplo, na base = 10, o n


umero 1997 e representado por:
1997 = 7 100 + 9 101 + 9 102 + 1 103 ,
e e armazenado como n3 n2 n1 n0 .

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

= 1 103 + 9 102 + 9 101 + 7 100 + 1 101 + 6 102


= 1 1000 + 9 100 + 9 10 + 7 1 + 1 0.1 + 6 0.01 ,
e e armazenado como x3 x2 x1 x0 .x1 x2 .
b) Representa
c
ao em Ponto Flutuante
Esta representac
ao, que e mais flexvel que a representacao em ponto fixo, e universalmente utilizada
nos dias atuais. Dado um n
umero real, x 6= 0, este sera representado em ponto flutuante por:
x = d e ,
onde e a base do sistema de numeracao, d e a mantissa e e e o expoente. A mantissa e um n
umero em
ponto fixo, isto e:
n
X
d =
di i ,
i=k

onde, frequentemente, nos grandes computadores, k = 1, tal que se x 6= 0, entao d1 6= 0; 0 di < , i =


1, 2, . . . t, com t a quantidade de dgitos significativos ou precisao do sistema , 1 d < 1 e m e M .
Observa
c
oes:
a) d1 6= 0 caracteriza o sistema de n
umeros em ponto flutuante normalizado.
b) o n
umero zero pertence a qualquer sistema e e representado com mantissa igual a zero e e = m.


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

34

Exemplo 2.1 - Escrever os n


umeros:
x1 = 0.35; x2 = 5.172; x3 = 0.0123; x4 = 5391.3 e x5 = 0.0003 ,
onde todos est
ao na base = 10, em ponto flutuante na forma normalizada.
Solu
c
ao: Temos ent
ao:
0.35 = (3 101 + 5 102 ) 100 = 0.35 100 ,
5.172 = (5 101 + 1 102 + 7 103 + 2 104 ) 101
= 0.5712 101 ,
0.0123 = (1 101 + 2 102 + 3 103 ) 101 = 0.123 101 ,
5391.3 = (5 101 + 3 102 + 9 103 + 1 104 + 3 105 ) 104
= 0.53913 104 ,
0.0003 = (3 101 ) 103 = 0.3 103 .
Agora, para representarmos um sistema de n
umeros em ponto flutuante normalizado, na base , com
t dgitos significativos e com limites do expoente m e M , usaremos a notacao: F(, t, m, M).
Assim um n
umero em F (, t, m, M ) sera representado por:
0.d1 d2 . . . dt e ,
onde d1 6= 0 e m e M .
Exemplo 2.2 - Considere o sistema F (10, 3, 2, 2). Represente nesse sistema os n
umeros do exemplo
anterior.
Solu
c
ao: Temos ent
ao que nesse sistema um n
umero sera representado por 0.d1 d2 d3 10e , onde
2 e 2. Assim:
0.35 = 0.350 100 ,
5.172 = 0.517 101 ,
0.0123 = 0.123 101 ,
Observe que os n
umeros 5391.3 e 0.0003 nao podem ser representados no sistema. De fato, o
n
umero 5391.3 = 0.539 104 e portanto o expoente e maior que 2, causando overflow, por outro lado
0.0003 = 0.300 103 e assim o expoente e menor que -2 causando underflow.
Podemos ent
ao definir formalmente dgitos significativos de um n
umero.
Defini
c
ao 2.1 - Seja a base do sistema de n
umeros em ponto flutuante. Dgitos significativos de um
n
umero x, s
ao todos os algarismos de 0 a 1, desde que x esteja representado na forma normalizada.
Para exemplificar as limitac
oes da maquina, consideremos agora o seguinte exemplo.
Exemplo 2.3 - Seja f (x) uma func
ao contnua real definida no intervalo [a, b],
a < b e sejam f (a) < 0 e f (b) > 0. Ent
ao de acordo com o teorema do valor intermedi
ario, existe x,
a < x < b tal que f (x) = 0. Seja f (x) = x3 3. Determinar x tal que f (x) = 0.
Solu
c
ao: Para a func
ao dada , consideremos t = 10 e = 10. Obtemos entao:
f (0.1442249570 101 ) = 0.2 108 ;
f (0.1442249571 101 ) = 0.4 108 .
Observe que entre 0.1442249570 101 e 0.1442249571 101 nao existe nenhum n
umero que possa
ser representado no sistema dado e que a funcao f muda de sinal nos extremos desse intervalo. Assim,
esta maquina n
ao contem o n
umero x tal que f (x) = 0 e portanto a equacao dada nao possui solucao.


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

Neste caso o procedimento e dividir o n


umero por 2. A seguir continuar dividindo o quociente por 2
ate que o u
ltimo quociente seja igual a 1. O n
umero na base 2 sera entao obtido tomando-se o u
ltimo
quociente e todos os restos das divis
oes anteriores. Assim:
13
1

6
0

2
3
1

2
1

Logo, (13)10 = (1101)2 .


iv) 0.75 que est
a na base 10, para a base 2.
Neste caso o procedimento e multiplicar a parte decimal por 2. A seguir continuar multiplicando a
parte decimal do resultado obtido, por 2. O n
umero na base 2 sera entao obtido tomando-se a parte
inteira do resultado de cada multiplicacao. Assim:
0.75 2
0.50 2
0.00 2

= 1.50
= 1.00
= 0.00

Logo, (0.75)10 = (0.110)2 .


v) 3.8 que est
a na base 10, para a base 2.
O procedimento neste caso e transformar a parte inteira seguindo o item iii) o que nos fornece
(3)10 = (11)2 e a parte decimal seguindo o item iv). Assim, obtemos:
0.8 2 = 1.6
0.6 2 = 1.2
0.2 2 = 0.4
0.4 2 = 0.8
0.8 2 = . . .

Logo, (3.8)10 = (11.11001100 . . .)2 . Portanto o n


umero (3.8)10 nao tem representacao exata na base
2. Esse exemplo ilustra tambem o caso de erro de arredondamento nos dados.
No exemplo 2.4, mudamos a representacao de n
umeros na base 10 para a base 2 e vice-versa. O
mesmo procedimento pode ser utilizado para mudar da base 10 para uma outra base qualquer e viceversa. A pergunta que surge naturalmente e: qual o procedimento para representar um n
umero que esta
numa dada base 1 em uma outra base 2 , onde 1 6= 2 6= 10? Nesse caso devemos seguir o seguinte
procedimento: inicialmente representamos o n
umero que esta na base 1 na base 10 e a seguir o n
umero
obtido na base 10, na base 2 .
Exemplo 2.5 - Dado o n
umero 12.20 que est
a na base 4, represent
a-lo na base 3.
Solu
c
ao: Assim, usando os procedimentos dados no exemplo 2.4, obtemos:
12 = 2 40 + 1 41 = 6.
0.20 = 2 41 + 0 42 =

2
= 0.5 .
4


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

37

Portanto: (12.20)4 = (6.5)10 . Agora:


6
0

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

desde que (0.101)2 = (0.625)10 ;


1
2

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 ,

desde que (0.110)2 = (0.75)10 ;

desde que (0.111)2 = (0.875)10 .


Exemplo 2.7 - Considerando o mesmo sistema do exemplo 2.6, represente os n
umeros: x1 = 0.38,
x2 = 5.3 e x3 = 0.15 dados na base 10.
Solu
c
ao: Fazendo os c
alculos obtemos que: (0.38)10 = 0.110 21 , (5.3)10 = 0.101 23 e (0.15)10 =
2
0.100 2 . Assim apenas o primeiro n
umero pode ser representado no sistema, pois para o segundo
teremos overflow e para o terceiro underflow. Observe que o n
umero (0.38)10 tem no sistema dado, a
mesma representac
ao que o n
umero (0.375)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

Arredondamento em Ponto Flutuante


Defini
c
ao 2.2 - Arredondar um n
umero x, por outro com um n
umero menor de dgitos significativos,
consiste em encontrar um n
umero x
, pertecente ao sistema de numerac
ao, tal que |
x x| seja o menor
possvel.
Assim para o exemplo dado |2.142 x3 | = 0.000857 e |2.143 x3 | = 0.000143. Logo 2.143 representa
a melhor aproximac
ao para 15
7 , usando 4 dgitos significativos.
Daremos a seguir a regra de como arredondar um n
umero.
Dado x, seja x
sua representac
ao em F (, t, m, M ) adotando arredondamento. Se x = 0 entao x
= 0.
Se x 6= 0, ent
ao escolhemos s e e tais que:
|x| = s e

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:

|x5 | = 0.1 106 .

Observe que tanto em iv) como em v) nao podemos representar o n


umero no sistema dado pois em
iv) teremos overflow e em v) underflow.
Assim, em linhas gerais, para arredondar um n
umero, na base 10, devemos apenas observar o primeiro
dgito a ser descartado. Se este dgito e menor que 5 deixamos os dgitos inalterados e se e maior ou igual
a 5 devemos somar 1 ao u
ltimo dgito remanescente.

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)

(11.4 + 3.18) +5.05 e 11.4 + (3.18 + 5.05) ,


11.4 e 3.18 11.4 ,
ii) 3.185.05
5.05
iii) 3.18 (5.05 + 11.4) e 3.18 5.05 + 3.18 11.4 .


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 .

Exemplo 2.11 - Somar 31 dez vezes consecutivas usando arredondamento.


Solu
c
ao: Temos ent
ao:
0.333 + 0.333 + . . . + 0.333 = 3.31 .
|
{z
}
10 vezes
Entretanto podemos obter um resultado melhor se multiplicarmos 0.333 por 10, obtendo assim 3.33.
Exemplo 2.12 - Avaliar o polin
omio
P (x) = x3 6 x2 + 4 x 0.1 ,
no ponto 5.24 e comparar com o resultado exato.
Solu
c
ao: Para calcular o valor exato consideremos todos os dgitos de uma maquina, sem usar arredondamento a cada operac
ao. Assim:
P (5.24) = 143.8777824 164.7456 + 20.96 0.1 = 0.00776

( valor exato).

Agora, usando arredondamento a cada operacao efetuada, obtemos:


P (5.24)

= 5.24 27.5 6 27.5 + 4 5.24 0.1


= 144. 165. + 21.0 0.1
= 0.10 (somando da esquerda para a direita)
= 0.00 (somando da direita para a esquerda).

Entretanto, observe que P (x) pode ser escrito como:


P (x) = x (x (x 6) + 4) 0.1 .
Assim:
P (5.24)

=
=
=
=
=

5.24 (5.24 (5.24 6) + 4) 0.1


5.24 (3.98 + 4) 0.1
5.24 (0.02) 0.1
0.105 0.1
0.005 (sinal errado).


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)

(1.386 0.987) + 7.6485 e 1.386 (0.987 7.6485) ,

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

a) Calcule x com todos os algarismos da sua calculadora, sem efetuar arredondamento.


b) Calcule x considerando o sistema F (10, 3, 4, 3). Faca arredondamento a cada operac
ao efetuada.
2.11 - Seja P (x) = 2.3 x3 0.6 x2 + 1.8 x 2.2 . Deseja-se obter o valor de P (x) para x = 1.61.
a) Calcule P (1.61) com todos os algarismos da sua calculadora, sem efetuar arredondamento.
b) Calcule P (1.61) considerando o sistema F (10, 3, 4, 3). Faca arredondamento a cada operac
ao
efetuada.
2.12 - Seja:
S =

n
X
i=1

n(n + 1)
.
2

Calcule S, considerando n = 1000 e efetuando a soma dos termos em:


a) ordem crescente,
b) ordem decrescente.

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

O cancelamento ocorre na subtracao de dois n


umeros quase iguais. Vamos supor que estamos
operando com aritmetica de ponto flutuante. Sejam x e y dois n
umeros com expoente e. Quando
formamos a diferenca x y ela tambem tera o expoente e. Se normalizarmos o n
umero obtido, veremos
que devemos mover os dgitos para a esquerda de tal forma que o primeiro seja diferente de zero. Assim,
uma quantidade de dgitos iguais a zero aparecem no final da mantissa do n
umero normalizado. Estes
zeros nao possuem significado algum.Veremos este fato atraves de exemplos, onde iremos considerar que
estamos trabalhando com o sistema F (10, 10, 10, 10).
Exemplo 2.13 - Calcular:

9876

9875 .

Solu
c
ao: Temos que:

9876 = 0.9937806599 102 e


9875 = 0.9937303457 102 .
Portanto:

9876

9875 = 0.0000503142 102 .

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

e assim, no nosso caso, obtemos:

9876

9875 =

= 0.5031418679 104 .
9876 + 9875

que e um resultado com todos os dgitos corretos.


Exemplo 2.14 - Resolver a equac
ao:
x2 1634 x + 2 = 0 .
Solu
c
ao: Temos:
p
(1634)2 4(2)
x =
2

= 817 667487 .
1634

Assim:
x1
x2

=
=

817 + 816.9987760 = 0.1633998776 103 ,


817 816.9987760 = 0.1224000000 102 .

Os seis zeros da mantissa de x2 s


ao resultado do cancelamento e portanto nao tem significado algum.
Uma pergunta que surge naturalmente e: podemos obter um resultado mais preciso? Neste caso a resposta
e sim. Basta lembrar que o produto das razes e igual ao termo independente da equacao, ou seja:
x1 x2 = 2 x2 =

2
.
x1


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

44

Logo: x2 = 0.1223991125 102 , onde agora todos os dgitos estao corretos.


Nos exemplos dados foi razoavelmente facil resolver o problema do cancelamento. Entretanto, cabe salientar, que nem sempre existe uma maneira trivial de resolver problemas ocasionados pelo cancelamento.

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!

Se ex e calculado usando esta f


ormula, a serie deve ser truncada. Assim ja estaremos introduzindo
um erro de truncamento.
Vamos considerar os primeiros 20 termos da serie acima para avaliar e5.25 . Temos entao:
e5.25

=
+
+
+
+

(0.10000 0.52500)101 + (0.13781 0.24117 + 0.31654 0.33236


0.29082 0.21811 + 0.14314)102 + (0.83497 + 0.43836 0.20922)101
(0.91532 0.36965 + 0.13862)100 + (0.48516 + 0.15919)101
(0.49164 + 0.14339)102 + (0.39620 + 0.10401)103
(0.26003)104 + (0.62050 0.14163)105 + (0.30982)106 .


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 )

Exemplo 2.16 - Deseja-se determinar numericamente o valor exato da integral:


Z 1
xn
yn =
dx ,
x+a
0
para um valor fixo de a >> 1 e, n = 0, 1, . . . , 10.
Solu
c
ao: Sabemos que os n
umeros yn sao positivos. Alem disso, como para 0 < x < 1, xn+1 < xn , os
n
umeros yn formam uma sequencia monotonicamente decrescente, e ainda:
Z 1
Z 1 n
xn
x
dx < yn <
dx ,
1+a
a
0
0
e portanto podemos afirmar que:
1
1
< yn <
.
(n + 1)(1 + a)
(n + 1)a


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

46

Assim para a = 10 e n = 10, temos que:


0.0082645 < y10 < 0.0090909 .

(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

Entretanto, os erros intermedi


arios podem, algumas vezes, cancelar-se uns com os outros no mnimo
parcialmente. Em outros casos (tal como em processos iterativos) os erros intermediarios podem ter um
efeito desprezvel no resultado final. Algoritmos com essa propriedade sao chamados est
aveis.
Instabilidade Num
erica ocorre se os erros intermediarios tem uma influencia muito grande no
resultado final. Veremos esse fato atraves do seguinte exemplo.
Exemplo 2.17 - Resolver a integral:
Z

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 .

Assim, obtemos uma f


ormula de recorrencia para In , isto e:
In = 1 n In1 ,

n = 1, 2, . . . ,

(2.4)

e desde que:
1

I0 = e

ex dx = e1 (e 1) = 0.6321,

e conhecido, podemos, teoricamente, calcular In , usando (2.4). Fazendo os calculos, obtemos:


I0

0.6321 , I1 = 0.3679 , I2 = 0.2642 , I3 = 0.2074 ,

I4

0.1704 , I5 = 0.1480 , I6 = 0.1120 , I7 = 0.216 .

O resultado obtido para I7 est


a claramente errado, desde que:
Z 1
1
I7 < e1 max (ex )
,
xn dx <
0x1
n+1
0
isto e, I7 < 18 = 0.1250. Alem disso a sequencia In e uma sequencia decrescente. Para ver que a
instabilidade existe, vamos supor que o valor de I0 esteja afetado de um erro 0 . Vamos supor ainda que
todos as operacoes aritmeticas subsequentes sao calculadas exatamente. Denotando por In o valor exato
da integral e por In o valor calculado assumindo que so existe erro no valor inicial, obtemos que:
I0 = I0 + 0 ,
e assim:
In = 1 n In1 , n = 1, 2, . . . .
Seja rn o erro, isto e:

rn = In In .

(2.5)


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

48

Subtraindo (2.4) de (2.5), segue que:


rn = n rn1 ,

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)

Se usada nessa forma, a relac


ao tambem precisa de um valor inicial. Entretanto, nao e facil encontrar
esse valor pois todo In onde n > 0 e desconhecido. Mas sabemos que In 0 quando n . Assim,
tomando I20 = 0 e usando (2.6) para n = 20, 19, 18, . . ., obtemos: I7 = 0.1123835 onde agora todos os
interessante notar que comecando com I7 = 0, obtemos I0 = 0.6320. Isto ocorre
dgitos est
ao corretos. E
porque neste caso o erro est
a sendo reduzido substancialmente a cada passo, isto e, a cada passo o erro
1.
decresce do fator n

2.5.4

Mal Condicionamento

A maioria dos processos numericos seguem a seguinte linha geral:


Dados s
ao fornecidos,
Os dados s
ao processados de acordo com um plano pre-estabelecido (algoritmo),
Resultados s
ao produzidos.
Analisaremos aqui problemas onde os resultados dependem continuamente dos dados. Tais problemas
sao chamados de problema bem posto. Problemas que nao dependem continuamente dos dados sao
chamados de problema mal posto.
Vamos ent
ao analisar como pertubacoes nos dados podem ou nao influenciar os resultados.
Exemplo 2.18 - Resolver o sistema:


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

Exemplo 2.19 - Determinar a soluc


ao do problema

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)

onde C1 e C2 dependem de a e b. Assim, se tomarmos a = 1 e b = 1, entao desde que y 0 (x) =


C1 ex C2 ex , obtemos o sistema linear:

y(0) = C1 + C2 = 1
y 0 (0) = C1 C2 = 1
cuja soluc
ao e: C1 = 0 e C2 = 1. Substituindo esses valores em (2.7) obtemos que y(x) = ex . Logo,
quando x a soluc
ao decresce rapidamente para zero. Mas se tomarmos a = 1 e b = 1 + , onde ||
pode ser arbitrariamente pequeno, entao, como anteriormente, obtemos o sistema linear:

C1 + C2 =
1
C1 C2 = 1 +
cuja soluc
ao e: C1 = 2 e C2 = 1 2 . Assim a solucao do novo problema de valor inicial e:
y(x) =

e + (1 )ex = ex + (ex ex ) = ex + senh x .


2
2
2

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 =

Assim se cr 1 dizemos que o problema e relativamente bem condicionado.


Exemplo 2.21 - Analisar o problema de calcular:

f (x) =

ln

1
x

 1
8

num ponto x qualquer.


Solu
c
ao: Desde que f e diferenci
avel o n
umero de condicao e simplesmente |f 0 (x)|. Assim:
f 0 (x)

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

c) Calcule yn , n = 1, 2 . . . , 10, usando a relac


ao de recorrencia.
Os valores obtidos s
ao confi
aveis?
2.14 - Considere agora a relac
ao de recorrencia do exerccio anterior escrita na forma:


1
1
yn1 =

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

2.18 - Considere o sistema F (2, 8, 10, 10). Represente no sistema os n


umeros:
x1 = 8, x2 = e2 , x3 = 3.57, onde todos est
ao na base 10. Existe algum com representac
ao exata nesse
sistema?
2.19 - Mostre que se x e um n
umero no sistema F (, t, m, M ) ent
ao x
= x(1 + ) onde || 12 1t .
1t
2.20 - Mostre que 1
e o melhor limitante para ||.
2

2.21 - Efetue as operac


oes indicadas, utilizando aritmetica de ponto flutuante com 3 algarismos significativos.
a) (19.3 1.07) 10.3 e 19.3 (1.07 + 10.3) ,
b) 27.2 1.3 327. 0.00251 ,
c)

10.1 3.1 8.2 ,


14.1 + 7.09 3.22

d) (367. + 0.6) + 0.5 e 367. + (0.6 + 0.5) ,


P100
e)
i=1 0.11 . (Compare seu resultado com 100 0.11) .
2.22 - Deseja-se calcular:
S =

10
X
2
,
k2

k=1

no sistema F (10, 3, 5, 4), usando arredondamento em todas as operac


oes. Assim, efetue a soma:
a) da direita para a esquerda,
b) da esquerda para a direita,
Os valores obtidos em a) e b s
ao iguais?
2.23 - Usando arredondamento para 4 dgitos significativos, efetue as operac
oes indicadas, e escreva o
resultado na forma normalizada.
a) 0.5971 103 + 0.4268 100 ,
b) 0.5971 101 0.5956 102 ,
3
c) 0.5971 101 ,
0.4268 10

d) (0.5971 103 ) (0.4268 100 ) ,


2.24 - Usando arredondamento, a cada operac
ao efetuada, calcule:
n
X
i=1

somando os termos em:


a) ordem crescente,
b) ordem decrescente.

i2

n
X
i=2

i2 = 1 ,


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

53

Considere n = 100. Os valores obtidos s


ao iguais?
2.25 - Deseja-se calcular e0.15 .
a) Obtenha atraves de uma calculadora o valor exato de e0.15 .
b) Considere o sistema F (10, 5, 10, 10) e a serie truncada em 25 termos. Calcule:
b.1) e0.15
1
e0.15
e compare os resultados.
b.2)

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

Se x = 1, J0 (1) = 0.7652 e J1 (1) = 0.4401, calcule Jn (1) para n = 2, 3, . . . , 10. Refaca os c


alculos
comecando com valores mais precisos: J0 (1) = 0.76519769 e J1 (1) = 0.44005059. Como voce explica
seus resultados com o fato que Jn (1) 0 quando n cresce?


CAPITULO 2. ANALISE
DE ARREDONDAMENTO EM PONTO FLUTUANTE

2.28 - Faca J10 (1) = 0 e J9 (1) = . Use a f


ormula do exerccio anterior, na forma:
Jn1 (1) = 2 nJn (1) Jn+1 (1) .
e calcule J8 (1), J7 (1), . . .. Encontre atraves da identidade:
J0 (x) + 2 J2 (x) + 2 J4 (x) + 2 J6 (x) + . . . = 1 ,
e calcule J9 (1), J8 (1), . . . , J0 (1). Como esses resultados se comparam com os valores exatos?

54

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