Você está na página 1de 36

Captulo 1 Erros: existncia, propagao e representao do nmero

real em ponto flutuante


1.1 Erro: existncia
A noo de erro est presente em todos os campos do Clculo Numrico. De
um lado, os dados, em si, j no so exatos e, de outro lado, as operaes
sobre valores no exatos propagam esses erros a seus resultados. Finalmente,
os prprios mtodos numricos, freqentemente mtodos aproximados,
buscam a minimizao dos erros, procurando resultados o mais prximo
possvel do que seriam valores exatos.
A primeira noo fundamental a de que cada medida um intervalo e no
um nmero. Isso decorre do processo de medio, do erro do medidor, da
incerteza do valor verdadeiro. Dessa forma, um comprimento no de 56,7
cm mas, possivelmente, ( 56,7 0,2 ) cm, isto , algo no intervalo 56,5 cm a
56,9 cm.
A segunda noo a de que, quando se opera com esse valor, ele carrega sua
incerteza para o resultado das operaes. Chama-se a esse processo,
propagao de erro.
A terceira noo enfatiza que os mtodos numricos podem ser aproximados,
freqentemente iterativos, no se propondo a chegar a resultados exatos num
nmero finito de iteraes. Busca, sim, obter valores aproximados,
diminuindo o erro a cada iterao, num processo de aproximao sucessiva.
Finalmente, uma quarta noo fundamental a de que no se pode esquecer
que o computador representar os nmeros reais com um nmero finito de
dgitos, sendo forado a aproxim-los quando os nmeros reais exigirem mais
dgitos de que ele est preparado para usar. Como exemplo, ao representarmos
o nmero exato t , ele dever ser forosamente arredondado, pois seus
infinitos dgitos no podero ser integralmente representados no computador.
Vejamos algumas observaes:
1. quando se representa um valor m c , c positivo, vamos sempre admitir
que o valor de c seja bem inferior ao valor absoluto de m, para se supor
que a medida tenha sido bem feita. Assim, o valor m expressivo
diante de c . A medida 23.537m 2m, significa que o valor est entre
23.535m e 23.539m. Essa medida teria sido feita com boa preciso;
tem-se uma boa aproximao do valor, embora com certa margem de
erro, como sempre.
2. Porm, ao dizer-se que um comprimento de 5m 4m, afirma-se que
se sabe muito pouco sobre o valor, que poderia variar desde 1 m at 9
m. Essa medida no tem boa preciso.
3. chama-se desvio absoluto, ou erro absoluto, ao valor de c .
4. chama-se desvio relativo, ou erro relativo, relao c / abs(m), onde
abs(m) o valor absoluto de m.
1.2 Erro: propagao
Vamos aos exemplos:
1- Dados a = 50 3 e b = 21 1 , calcular a soma a + b, a subtrao a b e o
produto a . b
- a pode variar de 47 a 53 enquanto b pode variar de 20 a 22. Assim o
menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 =
75. Logo, a + b = (50 + 21) 4 = 71 4, variando de 67 a 75.
- O menor valor da subtrao seria 47 22 = 25 e o maior valor da
subtrao seria 53 20 = 33. Logo, a b = (50 21) 4 = 29 4 ,
variando de 25 a 33. Observe que na subtrao, os erros absolutos se
somam, pois sempre se admite o pior caso; nunca se subtraem erros,
contando com a sorte; prev-se, sempre, o caso mais desfavorvel.
- O menor valor do produto seria 47 x 20 = 940 e o maior valor do
produto seria 53 x 22 = 1166. Logo, a x b = (50 3) x
(21 1) ~ 1050 (3 x 21 + 50 x 1) ~ 1050 113. Despreza-se o
produto 3 x 1, por ser muito pequeno diante de (3 x 21 + 50 x 1 ) = 113.
Assim, o produto ficaria entre 937 e 1163, ligeiramente diferente do
verdadeiro intervalo, exatamente pelo abandono do produto 1 x 3,
considerado desprezvel.
Quando efetuamos operaes sobre nmeros sujeitos a erro, esses erros se
propagam aos resultados das operaes, que vo refletir a incerteza dos
nmeros que compem a operao.
Assim:
(a e
a
) + (b e
b
) = a + b (e
a
+ e
b
)
(a e
a
) (b e
b
) = a b (e
a
+ e
b
)
(a e
a
) x (b e
b
) ~ a.b (a.e
b
+b.e
a
)
Estamos admitindo a, b, e
a
, e
b
sempre positivos

. No caso de valores negativos
tomaremos a , b etc

Analisemos os erros relativos dessas operaes.
- Erro relativo da soma . E
soma

- Erro relativo da subtrao . E
sub

- Erro relativo do produto . E
prod

- Erro relativo de a .E
a

- Erro relativo de b .E
b

Soma: e
soma
= e
a
+ e
b

Erro Relativo da Soma: E
soma
= e
soma
/ (a + b) = e
a
/ (a + b) + e
b
/ (a + b)
Multiplicando e dividindo o primeiro termo por a e o segundo termo por b,
temos:
E
soma
= e
a
/ a . a/(a+b) + e
b
/b . b/(a+b) = E
a
. a/(a+b) + E
b
.b/(a+b)
Assim, o erro relativo da soma a soma dos erros relativos de cada parcela,
ponderada pela participao da parcela no total da soma. Sendo a = 50 3 e b
= 21 1. A soma a + b = 71 4
Erro relativo de a : E
a
= 3/50 = 0,06 , erro relativo de b : E
b
= 1/21 = 0,05
Erro relativo de a + b : E
a+b
= 0,06 . 50/71 + 0,05 . 21/71 = 0,057 ~ 4/71
Subtrao: e
sub
= e
a
+ e
b

Erro Relativo da Subtrao: E
sub
= e
sub
/ (a-b) = (e
a
+ e
b
) / (a-b) = e
a
/ (a-b) +
e
b
/ (a-b)
Multiplicando de dividindo o primeiro termo por a e o segundo termo por b,
temos:
E
sub
= e
a
/ a . a/(a-b) + e
b
/ b . b/(a-b) =E
a
. a/(a-b) + E
b
. b/(a-b)
Assim o erro relativo da subtrao a soma dos erros relativos do minuendo
com o erro relativo do subtraendo, ponderados pela participao de cada um
no resultado da subtrao.
Sendo a = 50 3 e b = 21 1. A subtrao a b = 29 4
Erro relativo de a : E
a
= 3/50 = 0,06 , erro relativo de b : E
b
= 1/21 = 0,05
Erro relativo de a b : E
a-b
= 0,06 . 50/29 + 0,05 . 21/29 = 0,14 ~ 4/29
Produto: Prod = (a e
a
) . (b e
b
) ~ a.b (a . e
b
+ b .e
a
) e
prod
= a . e
b
+ b . e
a

Erro Relativo do Produto: E
prod
= e
prod
/ (a.b) = e
b
/ b + e
a
/a
Assim o erro relativo do produto a soma dos erros relativos dos fatores.
Sendo a = 50 3 e b = 21 1. O produto a.b = 1050 113
Erro relativo de a : E
a
= 3/50 = 0,06 , erro relativo de b : E
b
= 1/21 = 0,05
Erro relativo de a.b : E
a.b
= 0,06 + 0,05 = 0,11 ~ 113/1050
Vamos analisar a diviso.
Diviso: Div = (a e
a
) / (b e
b
)
Vamos analisar 1/( b e
b
) = 1/b(1 e
b
/b) = 1/b . 1/(1 e
b
/b)
1/(1+x) ~ 1- x + x
2
- , logo: 1/( 1 e
b
/b) ~ 1 e
b
/b , abandonando-se os
termos em x
2
, x
3
...
Div = (a/b e
a
/b) . (1 e
b
/b) = a/b (e
a
/b + e
b
.a/(b.b))
Erro Relativo da Diviso: E
div
= (e
a
/b + e
b
.a/(b.b)) / (a/b) = e
a
/a + e
b
/b
Assim o erro relativo da diviso a soma dos erros relativos do dividendo e
do divisor.
Sendo a = 50 3 e b = 21 1. A diviso estar entre 47/22 = 2,14 e 53/20 =
2,65 .
A diviso a/b = 2,38 (3/21 + 1x50/(21x21)) = 2,38 0,26, isto , entre 2,12
e 2,64.
Erro relativo de a/b : E
a/b
= 0,06 + 0,05 = 0,11 ~ 0,26/2,38
RESUMO
Propagao de Erros
1. o erro relativo da soma a soma dos erros relativos de cada parcela,
ponderada pela participao da parcela no total da soma.
2. o erro relativo da subtrao a soma dos erros relativos do minuendo
com o erro relativo do subtraendo, ponderados pela participao de
cada um no resultado da subtrao.
3. o erro relativo do produto a soma dos erros relativos dos fatores.
4. o erro relativo da diviso a soma dos erros relativos do dividendo e do
divisor.





Captulo 2 - Representao binria de nmeros inteiros e reais
2.1 Representao de um nmero na base dois
Escrever um nmero inteiro em binrio, isto , na base dois, no apresenta
problema. Cada posio digital representar uma potncia de dois, da mesma
forma que nos nmeros decimais, cada posio representa uma potncia de
dez. Assim, 23.457 significa:
2x10
4
+ 3x10
3
+ 4x10
2
+ 5x10
1
+ 7x10
0
.
Na base dois, a base usada nos computadores binrios, o nmero 110101
representa:
1x2
5
+ 1x2
4
+ 1x2
2
+ 1x2
0
= (53)
decimal

Os nmeros com parte fracionria, da mesma forma, podem ser representados,
usando-se potncias negativas de dez, na base dez e de dois, na base dois.
Assim, 456,78 significa: 4x10
2
+ 5x10
1
+ 6x10
0
+ 7x10
-1
+ 8x10
-2
.
O nmero binrio 101,101 significa, na base dois:
1x2
2
+ 0x2
1
+ 1x2
0
+ 1x2
-1
+0x2
-2
+ 1x2
-3
= 5,625
Sabe-se que, na base dez, para se multiplicar um nmero pela base, isto , por
dez, basta deslocar a vrgula uma casa para a direita.
O mesmo ocorre com qualquer base, em particular com a base dois. Para
mutiplicar um nmero por dois, basta deslocar a vrgula uma casa para a
direita.
7 = 111 , 14 = 1110 , 28 = 11100 , 3,5 = 11,1
Mostra-se que:
0,8 = 0,1100110011001100...
0,4 = 0,01100110011001100...
1,6 = 1,1001100110011...
1,2 = 1,001100110011...
2.2 Converso Decimal >> Binrio
Nmeros Inteiros
A converso do nmero inteiro, de decimal para binrio, ser feita da direita
para a esquerda, isto , determina-se primeiro o algarismos das unidades ( o
que vai ser multiplicado por 2
0
) , em seguida o segundo algarismo da direita (
o que vai ser multiplicado por 2
1
) etc...
A questo chave, por incrvel que parea, observar se o nmero par ou
mpar. Em binrio, o nmero par termina em 0 e o mpar em 1. Assim
determina-se o algarismo da direita, pela simples diviso do nmero por dois;
se o resto for 0 (nmero par) o algarismo da direita 0; se o resto for 1
(nmero mpar) o algarismo da direita 1.
Por outro lado, bom lembrar que, na base dez, ao se dividir um nmero por
dez, basta levar a vrgula para a esquerda. Na base dois, ao se dividir um
nmero por dois, basta levar a vrgula para a esquerda. Assim, para se
determinar o segundo algarismo, do nmero em binrio, basta lembrar que ele
a parte inteira do nmero original dividido por dois, abandonado o resto.
Vamos converter 25 de decimal para binrio.

Parte Fracionria do Nmero
A converso da parte fracionria do nmero ser feita, algarismo a algarismo,
da esquerda para a direita, baseada no fato de que se o nmero maior ou
igual a 0,5 , em binrio aparece 0,1, isto , o correspondente a 0,5 decimal.
Assim, 0,6 ser 0,1_ _ ..., ao passo que 0,4 ser 0,0_ _ ...
Tendo isso como base, basta multiplicar o nmero por dois e verificar se o
resultado maior ou igual a 1. Se for, coloca-se 1 na correspondente casa
fracionria, se 0 coloca-se 0 na posio. Em qualquer dos dois casos, o
processo continua, lembrando-se, ao se multiplicar o nmero por dois, a
vrgula move-se para a direita e, a partir desse ponto, estamos representando,
na casa direita, a parte decimal do nmero multiplicado por dois.
Vamos ao exemplo, representando, em binrio, o nmero 0,625.
0,625 x 2 = 1,25 , logo a primeira casa fracionria 1.
Resta representar o 0,25 que restou ao se retirar o 1 j representado.
0,25 x 2 = 0,5 , logo a segunda casa 0.
Falta representar o 0,5 .
0,5 x 2 = 1 , logo a terceira casa 1.
0,625
10
= 0,101
2

Quando o nmero tiver parte inteira e parte fracionria, podemos calcular,
cada uma, separadamente.
Tentando representar 0,8, verifica-se que uma dzima.
0,8 = 0,110011001100....
Da mesma forma, v-se que 5,8 = 101,11001100... , tambm uma dzima.
11,6 = 1011,10011001100... o que era bvio, bastaria deslocar a vrgula uma
casa para a direita, pois 11,6 = 2 x 5,8 .
2.3 Ponto fixo e ponto flutuante
Em todos esses exemplos, a posio da vrgula est fixa, separando a casa das
unidades da primeira casa fracionria.
Entretanto, pode-se variar a posio da vrgula, corrigindo-se o valor com a
potncia da base, seja dez ou dois, dependendo do sistema que se use.
Faamos, mais uma vez, analogia com o sistema decimal. 45,31 corresponde a
4x10
1
+ 5x10
0
+ 3x10
-1
+1x10
-2
. Esse mesmo nmero poderia ser escrita como
sendo 4,531 x 10
1
ou 0,4531x10
2
ou 453,1x10
-1
etcChama-se a isso ponto
flutuante (floating point), pois no lugar de se deixar sempre a posio da
vrgula entre a casa das unidades e a primeira casa decimal, flutua-se a
posio da vrgula e corrige-se com a potncia de dez. Forma normalizada a
que tem um nico dgito, diferente de zero, antes da vrgula; no caso seria:
4,531 x 10
1
.
Com a base dois pode-se fazer exatamente a mesma coisa, escrevendo-se o
mesmo nmero 110101 como sendo 110,101x2
3
ou 1,10101x2
5
ou
0,0110101x2
7
ou outras formas. Claro que esses expoentes tambm devero
ser escritos na base dois, onde (3)
10
= (11)
2
e (7)=(111)
2
, e assim por diante,
ficando: 110,101 x (10)
11
ou 1,10101x(10)
101
ou 0,0110101x(10)
111
.
2.4 Forma normalizada
Como se v, h diferentes maneiras de escrever o mesmo nmero. Como j
afirmamos, chama-se forma normalizada aquela que apresenta um nico
dgito, diferente de zero, antes da vrgula.
110101 = 1,10101x2
5
ou, escrevendo-se o prprio 5 tambm na base dois,
1,10101x2
101
. A base 2 est sendo mantido na forma decimal, 2 , e no na
binria 10 , porque ela no precisar ser representada, por ser implcita.
Chama-se mantissa ao nmero 1,10101 e expoente ao nmero 101, deste
exemplo.
Seguem-se outros exemplos:
1110,01 ou 1,11001 x 2
3
ou 1,11001 x 2
11
, que corresponde a 14,25, em
decimal.
0,0011 ou 1,1 x 2
-3
ou 1,1 x 2
-11
, que corresponde a 0,1875 em decimal.
0,1001 ou 1,001 x 2
-1
, que corresponde a 0,5625 em decimal.
Pode-se observar que, para se representar um nmero real, necessrio
armazenar a mantissa e o expoente, sendo dispensvel representar o "1,", por
estar sempre presente, sendo, tambm, desnecessrio, armazenar o dois, base
do sistema.
Para se definir a maneira como o computador armazenar o nmero real em
ponto flutuante, preciso definir o nmero de bits que ele usar para
representar a mantissa e o nmero de bits para o expoente.
Suponha-se que um determinado computador reserve 1 byte, isto , 8 bits,
para representar os nmeros reais. Admita-se que usa o primeiro bit para sinal
do nmero, trs bits seguintes para o expoente e os ltimos quatro bits para o
restante da mantissa.
bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7

O bit 0 indica o sinal do nmero: 0 positivo, 1 negativo.
Os bits 1, 2 e 3 constituem o expoente e precisam representar tanto expoentes
positivos quanto expoentes negativos. Com esses trs bits, h 8 possibilidades:
000, 001, 010, 011, 100, 101, 110, 111, que representariam nmeros de 0 at
7. Isso no serviria pois precisamos de expoentes negativos, alm dos
positivos.
Deram-se aos expoentes 000 e 111 significados especiais, a serem tratados
daqui a pouco.
Admita-se que o nmero 3, isto , 011 represente o expoente zero. Os
anteriores representaro os expoentes negativos e os posteriores os expoentes
positivos. Dessa maneira, o nmero que representa o expoente ser o nmero
em binrio menos trs, conforme tabela a seguir.
Bits 001 010 011 100 101 110
valor 1 2 3 4 5 6
expoente -2 -1 0 1 2 3
importante observar que num nmero diferente de zero, normalizado na
base 2, a mantissa sempre comear por 1. Assim sendo, no h necessidade
de se representar o (1, ) pois isso ficaria implcito, bastando representar os
dgitos que aparecem depois da vrgula. Sendo m o nmero de bits
representados da mantissa, o nmero representado ter, sempre, m+1 dgitos.
Observem-se os exemplos a seguir:
3,5 11,1 1,11 x 2
1
1,1100 x 2
1
01001100
2,75 10,11 1,0110 x 2
1
01000110
7,5 111,1 1,1110 x 2
2
1,1110 x 2
10
01011110
-7,25 -111,01 -1,1101 x 2
2
-1,1101 x 2
10
11011101
-0,375 -0, 011 -1,1000 x 2
-2
-1,1000 x 2
-10
10011000
Como se pode ver, o maior nmero positivo que pode nele ser representado :
01101111 , que corresponde a 1,1111 x 2
3
, isto : 1111,1, ou 15,5.
O menor nmero positivo seria: 00010000 , que corresponde a 1,0000 x 2
-2
,
isto : 0,25.
Aqui h uma observao a ser feita. Lembremo-nos que os expoentes 000 e
111, no foram considerados, at agora; eles teriam tratamento especial.
Todos os nmeros esto na forma normalizada, isto : ( 1,_ _ _ . x 2
exp
).
Usa-se o expoente 000 , quando se quer indicar que o nmero no est
normalizado, ficando o 000 como o menor expoente, isto , -2 , no nosso
exemplo.
A mantissa passa a ser 0, _ _ _ . Onde, depois da vrgula, esto os dgitos da
mantissa, s que, agora, sem a precedncia do (1, ) , como era antes, e sim (0,
). Neste caso, no teremos, mais, m+1 dgitos significativos, como tnhamos
quando os nmeros eram normalizados.
Exemplo:
00001111 0,1111 x 2
-2
0,001111 0,25 2
-6
portanto menor que
0,25
00001110 0,1110 x 2
-2
0,001110 0,25 2
-5
portanto menor que o
anterior
00000100 0,0100 x 2
-2
0,0001 0,0625
e assim por diante.
O menor nmero positivo portanto: 00000001 0,0001 x 2
-2
0,000001
2
-6
0,015625 .
O nmero 00000000 representa + 0 e o nmero 10000000 representa - 0,
devendo ambos serem reconhecidos como iguais nas comparaes.
O expoente 111 reservado para representar mais infinito, com zero na frente
(01110000) e menos infinito com 1 na frente (11110000), em ambos os casos a mantissa
sendo 0000.
O mesmo expoente 111 ainda utilizado para caracterizar indeterminao, 11111000.
As demais combinaes com o expoente 111 no so vlidas, sendo consideradas (not a
number).
Nesse exemplo que estamos explorando, o nmero real representado em 8
bits, sendo 1 para o sinal, 3 para o expoente e 4 para a mantissa, no sendo
representado o 1, que antecede os 4 bits.
E quando a mantissa no cabe nos 4 bits ? Somos obrigados a arredondar a
mantissa para que ela caiba nos 4 bits. Vamos, assim, perder preciso no
nmero e ele no mais representar, exatamente, o nmero desejado.
Vamos tentar representar, nesse nosso computador hipottico, o nmero
9,375.
9,375 = 1001,011 = 1,001011 . 2
3
.
Mas s existe bit para 4 dgitos, sobrando 0,000011 . 2
3
. feito o
arredondamento. Assim, se a parte abandonada inferior metade da ltima
unidade representada, ela abandonada, se for superior metade, soma-se 1
ltima unidade. Nesse caso, s havendo 4 bits, armazenam-se os 4 primeiros
bits aps o 1, , isto : 0010. Seria abandonado 11 aps o ltimo zero. Isso
representa 0,11 da ltima unidade, que maior que a metade da ltima
unidade. Logo, soma-se 1 ltima unidade, que fica sendo 1 e no zero.
1,001011 . 2
3
= 1,0011 . 2
3
. Este nmero no mais 9,375 e sim 9,5.
Perdemos preciso. Na verdade, esse computador no sabe representar 9,375
e, ao tentar faz-lo, representa 9,5. Ele no tem bits suficientes para fazer uma
representao melhor.
Se quisssemos representar 9,125 = 1001,001 = 1,001001 . 2
3
, a quantidade a
ser abandonada, aps os 4 bits, seria 01, o que representa 0,01 da ltima
unidade representada. Isso menor que metade dessa unidade e, portanto, ser
simplesmente abandonada, sem alterar o ltimo bit representado.
9,125 = 1001,001 = 1,001001 . 2
3
= 1,0010 . 2
3
= 1001. Esse nmero vale 9 e
no 9,125.
Resumindo, feito o arredondamento na ltima casa (bit) representado.
Quando o que restar for maior que metade da ltima unidade, soma-se 1 a essa
unidade; quando for menor que metade da ltima unidade, essa parte restante
abandonada.
E quando for exatamente igual metade ?
Por exemplo, vamos tentar representar 9,25, nesse computador hipottico.
9,25 = 1001,01 = 1,00101 . 2
3
.
Sobra 1 aps os quatro bits, isto , sobra exatamente a metade da ltima
unidade.
Neste caso, observa-se o bit anterior. Se for zero, mantem-se o zero, se for 1,
soma-se 1 a esse bit.
Neste caso o ltimo bit zero, logo assim permanece.
9,25 = 1001,01 = 1,00101 . 2
3
= 1,0010 . 2
3
= 1001 = 9.
Se fssemos representar 10,75 = 1010,11 = 1,01011 . 2
3
.
Sobra 1 aps os quatro bits, isto , sobra exatamente a metade da ltima
unidade.
O bit que resta segue um bit 1. Neste caso, soma-se 1 a este bit, ficando com:
1,0110 . 2
3
= 1011 = 11 (onze).
Como se v, ora se aumenta o nmero, ora se diminui. Isso evita que, no caso
de grande nmero de aproximaes, haja tendncia num certo sentido,
buscando-se equilbrar os aumentos com as diminuies.
Usamos, at agora, a hiptese de representar o nmero real em 8 bits. Na
realidade, usam-se mais bits, nessa representao.
A norma IEEE 754, publicada em 1985, procurou uniformizar a maneira
como as diferentes mquinas representam os nmeros em ponto flutuante,
bem como devem oper-los.
Essa norma define dois formatos bsicos para os nmeros em ponto flutuante:
o formato simples, com 32 bits e o duplo com 64 bits. O primeiro bit para o
sinal: 0 representa nmero positivo e 1 representa nmero negativo. No
formato simples o expoente tem 8 bits e a mantissa tem 23 bits; no formato
duplo, o expoente tem 11 bits e a mantissa 52 bits.
No formato simples, o menor expoente representado por 00000001, valendo
-126, e o maior expoente representado por 11111110, valendo +127. Em
ambos os casos, o expoente vale o nmero representado em binrio menos
127.
No formato duplo, o menor expoente representado por 00000000001,
valendo -1022, e o maior expoente representado por 11111111110, valendo
+1023. Em ambos os casos, o expoente vale o nmero representado em
binrio menos 1023.
Em ambos os formatos, a norma IEEE 754 prev o chamado underflow
gradual, permitindo obter nmeros bem mais prximos de zero. Para isso,
como mostrado no exemplo hipottico, o expoente representado por 000000
representa o menor expoente, "-126" no formato simples e "1022" no
formato duplo, e a mantissa deixa de ser normalizada. Dessa maneira
podemos representar, como menor nmero positivo:
no formato simples: 0 00000000 00.01 isto : 2
-126
x 2
-23
= 2
-149

no formato duplo: 0 00000000000 00.01 isto : 2
-1022
x 2
-52
= 2
-1074

No formato simples, o zero possui, ainda, duas representaes 0 00000000
000...00 , correspondendo a mais zero e 1 00000000 000...00 ,
correspondendo a menos zero, ambas iguais em qualquer operao de
comparao.
Mais infinito representado por 0 11111111 000...00 e menos infinito por 1
11111111 000...00 .
Indeterminado representado por 1 11111111 100...00 .
As demais combinaes no so vlidas, sendo consideradas "not a number".
Dessa maneira, o intervalo de nmeros representveis ser:
no formato simples:
de (2-2
-23
) x 2
127
a 2
-149

zero
de 2
-149
a (2-2
-23
) x 2
127
.
no formato duplo:
De (2-2
52
) x 2
1023
a 2
-1074

zero
de 2
-1074
a (2-2
-52
) x 2
1023
.
2.5 Erro Relativo mximo de um nmero em ponto flutuante
Ao se tentar representar um nmero real em ponto flutuante, normalmente, ele
arredondado, de modo a poder ser escrito no nmero finito de bits onde
precisa ser armazenado. Dessa forma, , automaticamente, introduzido um
erro e ele no mais representa o nmero desejado. Ainda assim, possvel
determinar o maior erro relativo possvel dessa representao.
Vamos admitir que, no nosso sistema, a mantissa seja representada em m bits.
Seja o nmero a , que representado na forma normalizada seria: 1,b x 2
c
.
Vamos admitir que c esteja dentro dos limites dessa representao, caso
contrrio teramos overflow.
Entretanto, a mantissa b precisa caber no nmero previsto de bits, reservados
para a mantissa. Isso pode levar necessidade de arredondar a mantissa b,
introduzindo erro.
Vamos admitir, como exemplo, que o nmero a seja :
a = 1,101010110100101 x 2
c
e que m, nmero de bits da mantissa, seja 5.
Teramos que escrever a como sendo: 1,10101 x 2
c
, abandonando
0,000000110100101.. x 2
c
, que seria o erro introduzido. O Erro de a ser,
portanto: Erro
a
= 0,0110100101 x 2
c-5
, onde, insisto, 5 o valor de m,
nmero de bits da mantissa.
O erro relativo ser:
E
a
= Erro
a
/ a , isto : 0,0110100101 x 2
c-5
/ 1,101010110100101 x 2
c

E
a
= 0,0110100101 x 2
-5
/ 1,101011110100101
O erro relativo ser mximo, quando tivermos o maior numerador e o menor
denominador, isto :
E
a
(max) = 0,01111111.. x 2
-5
/ 1,0000000
Lembrando que 0,011111. < 0,5 , tem-se: E
a
(max) < 0,5 x 2
-5
, onde 5 est
representando m, nmero de bits da mantissa.
Portanto, E
a
(max) < 2
(m+1)
.
Assim, o nmero de bits da mantissa condiciona a preciso com que se pode
trabalhar.
A expresso acima, do erro mximo, s vlida na regio normalizada, pois
na regio no normalizada, bem prxima a zero, pelo underflow gradual, fica
reduzida a preciso dos nmeros que passam a no ter mais m+1 dgitos
significativos, preo necessrio para se poder obter valores bem mais
prximos do zero.
O nmero de bits do expoente indica a faixa (range) de variao dos nmeros
possveis, indicando os limites, fora dos quais haver overflow ou underflow.
2.6 Valor verdadeiro do nmero armazenado
J vimos que ao se tentar armazenar o nmero 0,8 em ponto flutuante, o
nmero ser arredondado, tendo seu valor alterado.
Assim, sabendo-se que 0,8 = 0,1100110011001100.... =
1,100110011001100...2
-1

e que, em preciso simples, terem os 23 bits aps a vrgula, qual ser o
verdadeiro valor armazenado ?
Vamos calcular.
0,8 ~ 1,10011001100110011001100110011001100... 2
-1

onde em vermelho esto os bits depois do vigsimo terceiro.
Como os bits que sero abandonados representam mais do que a metade da
ltima unidade, soma-se 1 ao vigsimo terceiro bit, obtendo-se:
0,8 ~ 1,10011001100110011001101.2
-1
> 0,8
Ser armazenado um nmero maior que 0,8, neste caso.
Chamando esse valor armazenado de A, tem-se:
A - 0,8 = (1,0 - 0,110011001100...).2
-1
.2
-23
= (1,0 - 0,8).2
-24
= 0,2.2
-24
=
1,19209.. 10
-8

A = 0,8000000119209... Tem-se um nmero ligeiramente maior que 0,8, neste
caso.
E se quisssemos armazenar 1,8, o que seria, de fato, armazenado?
1,8 = 1,1100110011001100... ~ 1,11001100110011001100110.2
0
= B
B ser ligeiramente menor que 1,8, pois foi abandonado 0,011001100... 2
-23
=
0,4.2
-23

1,8 - B = 0,4.2
-23
= 4,76837..10
-8

B = 1,79999995232... Tem-se um nmero ligeiramente menor que 1,8, neste
caso.
O importante disso tudo ver que, em binrio, o nmero formado pela soma
de potncias de dois; potncias positiva e negativas. Quando um nmero no
pode ser formado por um nmero finito dessas potncias, como o caso de
0,8, ele se torna no que em decimal se chama dzima, necessitando de infinitos
bits para represent-lo. Como, em ponto flutuante, temos um nmero finito de
bits, o nmero ser arredondado, para caber nesse nmero de bits. Da o erro
em sua representao.
O arredondamento pode ser para mais ou para menos, como acabamos de ver.
Tudo depende do valor a ser abandonado. Se esse valor for maior que metade
da unidade representada pelo ltimo bit, arredonda-se para cima, somando-se
1 ao ltimo bit representado. Se esse valor for menor que metade da unidade
representada pelo ltimo bit, arredonda-se para baixo, eliminando-se os bits a
partir do vigsimo quarto.
No caso de preciso dupla, onde se tem 52 bits aps a vrgula, o erro no
arredondamento ser menor.
0,8 =
1,100110011001100110011001100110011001100110011001100110011..2
-1

A parte a ser abandonada maior que metade da unidade, pois 0,1001100...
Logo, arredonda-se para cima, somando-se 1 ao ltima bit.
0,8 ~ 1,1001100110011001100110011001100110011001100110011010 .2
-1
=
A
A - 0,8 = (10 - 1,100110011...). 2
-1
2
-52

A - 0,8 = (2 - 1,6).2
-53
= 4,44089...10
-17

A = 0,8000000000000000444089...
RESUMO
Representao de nmeros reais em um computador
1. h um nmero finito de nmeros reais representveis num dado
computador, funo da maneira como ele armazena o nmero em Ponto
flutuante.
2. possvel determinar o maior e o menor nmero real, positivo ou
negativo, representvel nesse computador.
3. dado um nmero real, possvel determinar os nmero reais vizinhos
dele, imediatamente acima e imediatamente abaixo, representveis num
dado computador, funo da maneira como esse computador representa
os nmeros reais em ponto flutuante.
4. ao se tentar representar um nmero real em ponto flutuante, pode-se
determinar o maior erro relativo possvel dessa representao.
5. conhecidos os erros relativos de dois nmeros, pode-se determinar o
maior erro relativo possvel de sua soma, subtrao, multiplicao e
diviso.
6. a norma IEEE 754, publicada em 1985, procurou uniformizar a maneira
como as diferentes mquinas representam os nmeros em ponto
flutuante, bem como devem oper-los.
7. essa norma define dois formatos bsicos para os nmeros em ponto
flutuante: o formato simples, com 32 bits e o duplo com 64 bits. O
primeiro bit para o sinal: 0 representa nmero positivo e 1 representa
nmero negativo. No formato simples o expoente tem 8 bits e a
mantissa tem 23 bits; no formato duplo, o expoente tem 11 bits e a
mantissa 52 bits.
8. no formato simples, o menor expoente representado por 00000001,
valendo -126, e o maior expoente representado por 11111110,
valendo +127. Em ambos os casos, o expoente vale o nmero
representado em binrio menos 127.
9. no formato duplo, o menor expoente representado por 00000000001,
valendo -1022, e o maior expoente representado por 11111111110,
valendo +1023. Em ambos os casos, o expoente vale o nmero
representado em binrio menos 1023.
10. em ambos os formatos, a norma IEEE 754 prev o chamado underflow
gradual, sendo o expoente representado por 000000, e a mantissa
deixa de ser normalizada, permitindo obter nmeros bem mais
prximos de zero.
11. O menor nmero positivo possvel ser, portanto:
0 00000000 00000000000000000000001 , que corresponde a:
0,00000000000000000000001 x 2
-126
, isto : 2
-126-23
= 2
-149
, para
preciso simples e 2
-1022-52
= 2
-1074
, para preciso dupla.
12. ao se tentar representar um nmero real em ponto flutuante, possvel
determinar o maior erro relativo possvel dessa representao.
13. conhecidos os erros relativos de dois nmeros, possvel determinar o
maior erro relativo possvel de uma operao entre eles, como por
exemplo: sua soma, subtrao, multiplicao e diviso.




Captulo 3 - Clculo de Razes
Neste segundo captulo, vamos analisar o Clculo de Razes, isto , vamos
buscar os zeros de uma funo, os pontos que anulam o valor de uma funo.
Um caso clssico o do clculo das razes de uma equao do segundo grau,
colocada sob a forma ax
2
+ bx + c = 0. As duas razes so, como se sabe,
facilmente obtenveis pela expresso:
(-b (b
2
4ac))/(2a) .
Entretanto, se colocarmos uma expresso em que aparea uma equao
transcendente, a soluo j no to simples, como demonstram os exemplos
abaixo:
e
x
+ x = 0
cos(x) x = 0
ln(x) + x 2 = 0
Mesmo um polinmio de grau maior que trs j no tem uma soluo
algbrica simples como a da equao do segundo grau, a no ser em casos
particulares.
Vamos analisar como enfrentar esse problema, to comum em diversas reas
da engenharia, da economia, das cincias sociais, entre tantas outras.
Essas equaes, com enorme freqncia, nos levam a razes reais no
racionais que, ao serem representadas no computador, necessariamente, o
sero de forma aproximada, pelas razes j expostas no captulo anterior,
tendo em vista que necessitariam de infinitos dgitos, em suas mantissas, para
serem representadas.
Alm disso, em geral, estamos interessados em obter esses valores, essas
razes, com uma determinada preciso, com um erro tolervel, com algumas
casas decimais, sem a pretenso de obter valores exatos. Isso mais do que
suficiente, para os problemas prticos encontrados.
Os mtodos numricos a serem apresentados, partindo de valores inicialmente
propostos, buscam aprimorar esses valores, diminuindo os erros,
aproximando-se, assim, dos valores das razes procuradas, at que os erros
sejam aceitveis, podendo-se garantir que sejam erros inferiores a valores pr-
definidos.
Clique, a seguir, para ter acesso a alguns exemplos, dentro do campo da
engenharia, onde o Clculo de Razes aparece, mostrando sua importncia e
amplo espectro de utilizao.
3.1 Mtodo Grfico
Pode ser de enorme utilidade o uso de um grfico, ou de uma tabela, para se
estimar a provvel posio de uma raiz.
Na hiptese de se utilizar o mtodo grfico, faz-se um esboo, to preciso
quanto possvel, de modo a se ter uma idia de onde se encontra a raiz. A
partir desse valor, outros mtodos podem ser utilizados para se obter o
resultado com uma preciso maior, se necessrio. Um bom grfico resolver
um grande nmero de problemas, por si s, nos surpreendendo, muitas vezes,
por tornar muito claro o local da raiz procurada. No mnimo, ser utilssimo,
como ponto inicial para a pesquisa da raiz por um mtodo mais preciso.
Da mesma maneira, uma tabela da funo pesquisada, nos indicar
aproximadamente a posio da raiz, que se situar no intervalo em que a
funo muda de sinal, desde que a funo seja contnua, nessa regio.
Exemplo: calcular a raiz de cos(x) x = 0.
Num primeiro momento, pode-se ficar em dvida quanto provvel posio
da raiz. Basta um simples esboo para que fique bem clara a posio
aproximada da raiz. Para facilidade de esboo, vamos transformar a expresso
cos(x) x = 0 em cos(x) = x . Nesse caso faclimo esboar tanto cos(x)
quanto x , e estimarmos a interseo das duas curvas.
Vejamos o grfico abaixo:

Observa-se, facilmente, que a interseo das curvas , aproximadamente, em
torno de x = 0,7 . No preciso lembrar que estamos tomando, para cos(x) , o x
em radianos.
3.2 Mtodo da Bipartio
Esse mtodo trata de aperfeioar a aproximao obtida a partir, por exemplo,
do mtodo grfico ou do uso da tabela referida acima.
Tendo dois valores entre os quais se situa a raiz, isto , dois pontos em que a
funo troca de sinais, sendo a funo contnua, haver entre esses pontos,
necessariamente, uma raiz, isto, no mnimo uma raiz, pois pode haver mais de
uma.
Acha-se o ponto mdio desse intervalo e busca-se o sinal da funo nesse
ponto. Se a funo, surpreendentemente, for zero, chega-se raiz. O mais
provvel que isso no ocorra, caso em que se busca o sinal da funo nesse
ponto mdio, reduzindo-se metade o intervalo em que a funo muda de
sinal, aproximando-nos, portanto, do valor da raiz.
Esse processo de diviso do intervalo ao meio chamado de bipartio e
permite chegar to prximo da raiz quanto se queira, pela simples repetio do
que foi descrito. Em cada iterao o intervalo dividido por dois. Assim, em n
iteraes, o intervalo ser dividido por 2
n
.
Esquematicamente, seja o intervalo (a , b) com f(a) . f(b) < 0 , o que garante
que f(a) tem sinal contrrio a f(b). Sendo f uma funo contnua, haver, no
mnimo, uma raiz real entre a e b. Acha-se o ponto mdio c = (a+b)/2 .
Calcula-se f(c).
Se f(c) = 0 , teremos chegado raiz.
Se f(c) . f(a) < 0 , a raiz estar entre a e c , caso contrrio a raiz estar
entre c e b.
No primeiro caso a raiz estar no intervalo (a,c). Dando a b o valor de c , isto
, alterando o valor de b, a raiz estar no novo intervalo (a,b).
Na segunda hiptese, a raiz estar no intervalo (c,b). Dando a a o valor de c,
isto , alterando o valor de a, a raiz estar no novo intervalo (a,b).
Em qualquer caso, depois da nova iterao, a raiz estar no novo intervalo
(a,b), com amplitude a metade do anterior, diminuindo, portanto, a margem de
erro pela metade.
Exemplo: calcular a raiz de cos(x) x = 0.
J vimos, utilizando o mtodo grfico, que a raiz aproximadamente, 0,7 .
Vamos calcular com mais preciso.
Do mesmo grfico, nota-se que, para x = 0 , cos(x) x > 0 e que para x = 1 ,
cos(x) x < 0 .
Assim, sendo cos(x) x uma funo contnua, haver raiz real entre 0 e 1. No
caso, o grfico claro, haver uma s raiz.
Fazendo-se a = 0 e b = 1 , calcula-se o ponto mdio c = (a+b) / 2 . Da c = 0,5.
Cos(0,5) 0,5 = 0,378 > 0 . Logo f(a).f(c) > 0 e a raiz estar entre c e b .
D-se a varivel a o valor de c e a raiz fica entre a e b, recomeando-se o
processo.
O quadro a seguir indica a seqncia de valores obtidos na busca da raiz.
a f(a) b f(b) c f(c) f(a).f(c)
0 1 1 -0,46 0,5 0,38 > 0 a = c
0,5 0,38 1 -0,46 0,75 -0,018 < 0 b = c
0,5 0,38 0,75 -0,018 0,625 0,186 > 0 a = c
0,625 0,186 0,75 -0,018 0,6875 0,085 > 0 a = c
0,6875 0,085 0,75 -0,018 0,71875 0,0339 > 0 a = c
0,71875 0,0339 0,75 -0,018 0,734375 0,00787 > 0 a = c
0,734375 0,00787 0,75 -0,018 0,7421875 -0,0052 < 0 b = c
0,734375 0,00787 0,7421875 -0,0052 0,73828125 0,0013 > 0 a = c
0,73828125 0,0013 0,7421875 -0,0052
Podemos admitir que a raiz aproximadamente o ponto mdio do intervalo
(0,73828125 , 0,7421875), isto : r ~ 0,740234375 . Podemos afirmar que o
erro ser sempre menor que a metade do intervalo, isto erro < 0,001953125 .
Se o intervalo inicial era 1 , aps 8 interaes, o intervalo ser 1/(2
8
) e o erro
mximo ser a metade desse valor, isto : 0,001953125 . Dessa forma, se o
intervalo inicial d e, em conseqncia, o erro inicial < d/2 , aps n
iteraes, o intervalo ser d/2
n
e o erro < d/2
n+1
. Assim, conhecido o intervalo
inicial e o erro mximo admissvel, pode-se calcular o nmero de iteraes
necessrias.
Seguem-se outros exemplos.
Calcular, pelo mtodo da bipartio, com erro menor que 0,001 , uma raiz de
cada equao abaixo:
1. e
x
+ x 2 = 0
2. sen(x) + x 1 = 0
3. e
-x
x = 0
4. e
x
2cos(x) = 0
5. e
-x
+ x
2
2 = 0


Mtodo da Iterao Linear
Quando se busca a raiz de f(x) = 0, est-se procurando o ponto em que a funo
f(x) corta o eixo x. O Mtodo da Iterao Linear (MIL) transforma o problema,
procurando isolar o x da funo f, de modo a se ter x = g(x). A partir desse ponto,
busca-se a interseo da reta x com a curva g(x).
Dessa forma, o mtodo transforma o problema de se encontrar uma raiz da
equao f(x) = 0 na busca de se encontrar o ponto em que x = g(x).
Seja a equao f(x) = e
x
+ x 2 = 0 . Podemos isolar x , de f(x), de diferentes
maneiras:
x = 2 e
x
= g
1
(x)
ou
e
x
= 2 x , donde, x = ln(2 x) = g
2
(x)
ou, somando x aos dois lados de f(x) = 0
x = e
x
+ 2x 2 = g
3
(x) etc...
O fundamental que resolvendo-se o problema x = g(x) , ter-se- resolvido o
problema f(x) = 0 .
Os dois grficos abaixo mostram a transformao de um problema no outro.




Vejamos o que acontece numa equao do segundo grau:
f(x) = x
2
5x + 6 = 0 .
Sabemos que 3 raiz , pois f(3) = 3
2
5. 3 + 6 = 0 .
Isolando-se x temos: x = (x
2
+ 6)/5 = g(x) .
g(3) = (3
2
+ 6)/5 = 3 . Assim, se f(3) = 0, tem-se que g(3) = 3.
Dessa forma se resolvermos x = g(x) , teremos resolvido f(x) = 0.
A vantagem que se obtm, em alguns casos, que se pode transformar a
resoluo do problema num processo iterativo, a partir de uma aproximao inicial que
se tenha da raiz.
Vamos supor que se sabe que a raiz est prxima a um valor x
0
. Calcula-se
g(x
0
). Se g(x
0
) = x
0
, ter-se- chegado raiz.
O provvel que isso no ocorra e que g(x
0
) = x
0
. Nesse caso, g(x
0
) = x
1
passa a
ser o prximo valor a ser testado como raiz. O processo se repete fazendo-se x
i+1
= g(x
i
).
Em determinadas condies, a seqncia x
0
, x
1
, x
2
... converge para a raiz r.
O grfico a seguir ilustra esse processo.




Vejamos um exemplo numrico. Calcular a raiz de f(x) = e
x
+ x 2 = 0
Fazendo a transformao e
x
= 2 x , e fazendo os grficos dessas duas funes,

Vemos que a raiz est prxima a 0,5. Vamos tomar, portanto, 0,5 como nossa
hiptese inicial para a raiz r.



x
0
= 0,5
Vamos transformar f(x) = 0 em x = g(x) . Isso pode ser feito de diferentes
maneiras:
a) x = ln(2-x) = g
1
(x)
b) x = 2 e
x
= g
2
(x)
c) x = e
x
+ 2x 2 = g
3
(x)
d) ....

Tomemos a primeira maneira: a) x = ln(2-x) = g
1
(x)


Calculemos g
1
(0,5) = ln(2 0,5) = ln(1,5) = 0.405465 = 0,5
A nova aproximao para a raiz ser x
1
= 0.405465
g
1
(x
1
) = ln(2-0.405465) = ln(1,594535) = 0.466582 = x
2

g
1
(x
2
) = ln(2-0,466582) = ln((1,533418) = 0.427499 = x
3

g
1
(x
3
) = 0.452667
g
1
(x
4
) = 0.436533
g
1
(x
5
) = 0.446906
g
1
(x
6
) = 0.440313
g
1
(x
7
) = 0.444485
...
A raiz converge para aproximadamente r = 0,44
O grfico abaixo mostra a convergncia, passo a passo.


Tomemos, agora, a segunda maneira indicada acima, de se obter g(x).
b) x = 2 e
x
= g
2
(x)
Partindo de 0,5 , nossa primeira estimativa, vamos procurar melhor-la, a
exemplo do que foi feito com g
1
(x).
g
2
(0,5) = 2 e
0,5
= 0.351279
g
2
(0.351279) = 0.579117
g
2
(0.579117) = 0.215539
g
2
(0.215539) = 0.75947
g
2
(0.75947) = -0.137144
g
2
(-0.137144) = 1.12816
.....
No est convergindo para a raiz 0,44 , e, sim, se afastando dela, ora pela
direita, ora pela esquerda.
Logo o mtodo nem sempre converge !
O grfico abaixo mostra o que aconteceu.
(grfico 3)
Esquematicamente, h quatro possibilidades, quando se busca a interseo de x
com g(x), o que mostrado abaixo.
(figura 4)
Nos grficos a e c h convergncia, nos b e d no h convergncia.
Observemos que em a , a derivada de g positiva e menor que 1; em b a
derivada positiva e maior que 1; em c a derivada negativa e maior que 1 e ,
finalmente, em d a derivada negativa e menor que 1.
Dessa forma, vemos graficamente, que h convergncia quando a derivada de g
est entre 1 e +1.
Vejamos, analiticamente, porque isso acontece.
Antes de mais nada, vamos recordar um dos muitos teoremas do Valor Mdio,
estudado nos cursos de Clculo.
Seja g(x) uma funo contnua e diferencivel num intervalo (a,b). Haver
sempre, pelo menos um ponto c e (a,b) , tal que g

(c) = (g(b) g(a))/(b-a) .


Graficamente, a informao implica em que h pelo menos um ponto c
pertencente ao intervalo aberto (a,b) , tal que a tangente em c paralela secante que
passa pelos pontos a , g(a) e b , g(b).
A figura abaixo ilustra a informao, mostrando que pode haver mais de um
ponto c.
(figura 5)
Observa-se que: tg(o) = g(c) e que tg(o) = (g(b) g(a))/ (b-a).
Voltando funo x = g(x), onde x
0
a aproximao inicial da raiz r, onde g(r) =
r.
Tem-se a seqncia:
x
1
= g(x
0
)
x
2
= g(x
1
)
x
3
= g(x
2
)
...............
x
i+1
= g(x
i
)
...............
r = g(r)
Logo, x
i+1
r = g(x
i
) g(r)
Pelo Teorema do Valor Mdio, visto acima, g(x
i
) g(r) = g

(
i
)(x
i
r),
onde
i
e (x
i
, r) .
Da: x
i+1
r = g

(
i
)(x
i
r) . Donde: |x
i+1
r |= |g

(
i
) |.| x
i
r |
Porm, |x
i+1
r | o mdulo do erro depois de i+1 iteraes (c
i+1
) e | x
i
r |
o mdulo do erro depois de i iteraes (c
i
) .
Assim, |c
i+1
| = | g

(
i
) |.|c
i
|. Dessa forma, o novo erro ser menor que o erro
anterior se | g

(
i
) |< 1. A partir da, pode-se demonstrar que sendo | g

(
i
) |< 1 o
erro c
i
tende a zero se i tende a infinito. (bibliografia 3 pag. ...). Sendo c
i
= x
i
r , temos
que x
i
tende a r.
A condio suficiente mas no necessria. suficiente, isto , havendo um
intervalo I = (r-o, r+o) onde | g

() |< 1 , para todo e I , ento, para qualquer x


0
e I ,
a seqncia x
0
, x
1
, x
2
, .... , x
i
tende a r, se i tende a infinito. Mas, no necessria, pois
pode haver um intervalo onde nem sempre | g

() | seja menor que 1 e ainda assim


haja convergncia, como indica a figura abaixo.
Vejamos o que ocorreu nos dois exemplos apresentamos acima.
No primeiro, onde houve convergncia, foi feita a transformao x = ln(2-x) =
g
1
(x). A derivada g

1
(x) = -1/(2-x). Sendo a raiz prxima a 0,5 temos: g

1
(0,5) = -1/1,5 =
-0,67. Assim, ,g

1
(0,5), < 1. Haver, necessariamente, convergncia para a raiz.
No segundo exemplo, onde no houve convergncia, tinha sido feita a
transformao x = 2 e
x
= g
2
(x). A derivada g
2
(x) = e
x
. Sendo a raiz prxima a 0,5 ,
tem-se: g
2
(0,5) = -e
0,5
= -1,65. Assim, ,g
2
(0,5), > 1, o que no garante convergncia.
No caso no houve, como se viu, convergncia.




3.4 Mtodo de Newton Raphson
Vimos no mtodo de Iterao Linear que, dado f(x) = 0 , esta equao
poderia ser transformada em x = g(x) e, da, ser desenvolvido um processo
iterativo onde, dado x
0
, seriam calculados x
1
= g(x
0
), x
2
= g(x
1
) ...x
i+1
= g( x
i
),
na expectativa de que a seqncia convirja para a raiz r.
Vimos, tambm, que h diferentes maneiras de se construir g(x), sendo
que para alguns haver convergncia para a raiz e para outros no
convergir.
Alm disso, a convergncia depender do valor da derivada de g na
regio em torno da raiz, precisando ser, em mdulo, menor que 1, para se ter
convergncia garantida para a raiz. Quanto mais prximo de zero, mais rpida
ser a convergncia, pois cada novo erro ser aproximadamente o valor do
erro anterior multiplicado pela derivada de g na raiz.
A idia central no mtodo de Newton-Raphson a de escolher uma
funo g, tal que a derivada de g, na raiz que se est procurando, seja 0(zero).
Assim teremos, no s garantia da convergncia quanto convergncia muito
rpida.
O mtodo de Newton-Raphson , tambm, conhecido como Mtodo
das Tangentes.
A idia a de se tomar um valor de x, isto , da varivel
independente, como primeira estimativa da raiz. Com esse valor de x,
calcula-se o valor da funo que, provavelmente, no estar valendo zero, isto
, no se est na raiz. Desse ponto, traa-se a tangente curva, buscando-se o
ponto em que essa tangente corta o eixo de x. Esse novo valor de x dever ser
uma melhor aproximao da raiz.
A figura a seguir indica o processo a ser seguido.
Vamos admitir que se pretenda calcular a raiz de e
x
- 2 cos(x) = 0. Pelo
grfico vemos que a raiz est prxima a 0,5. Vamos tomar como primeira
aproximao um valor mal escolhido, qual seja x
0

= 1,0 . Calculamos f(x
0

) =
f(1) = 1,6377 .
Traamos pelo ponto (1,0 , 1,6377) uma tangente curva e toma-se o ponto
onde a tangente corta o eixo de X como a nova aproximao, x
1

, da raiz.
Assim, x
1
= 0,63 ser a prxima aproximao, por onde ser passada nova
tangente, at se chegar a um valor que satisfaa quanto preciso desejada.
bom observar que, aos poucos, havendo convergncia, os valores comeam a
ficar muito prximos uns dos outros, praticamente se repetindo.


Veja que tg(a) = f '(x
0
) igual a f( x
0

) / (x
0
- x
1
) . Da, supondo f '(x
0
)
diferente de zero, tem-se que:
x
0
- x
1
= f( x
0

) / f '(x
0
) . Assim, a nova estimativa x
1
= x
0
- f( x
0

) / f
'( x
0
)
Assim, para se calcular a raiz de f(x) = 0, a funo g de iterao,
escolhida, a seguinte: x = g(x) = x - f(x)/f '(x) , onde se precisa garantir que f
' seja diferente de zero.
Vamos calcular g ' (r).
g '(x) = 1 - ( f ' . f ' - f . f '' )/ (f ')
2
= f . f '' / (f ')
2
.
Sendo f(r) = 0 , por definio, por se estar exatamente procurando a
raiz r de f , e sendo f ' diferente de zero, tem-se que g ' (r) = 0. Dessa forma,
sendo f ' diferente de zero, tem-se convergncia garantida e rpida.
Exemplo: calcular a raiz positiva de e
x
- 2 cos(x) = 0
x = g(x) = x - (e
x
- 2 cos(x) / (e
x
+ 2 sen(x)
Pelo grfico abaixo, v-se que a raiz est prxima a 0,5



Partindo de x
0
= 0,5 , calcula-se:
x
1

= g(x
0
) = x
0
- (exp( x
0
)- 2 cos(x
0
) / (exp( x
0
) + 2 sen(x
0
)
x
1

= 0,540821
x
2

= g(x
1
) = x
1
- (exp( x
1
) - 2 cos(x
1
) / ( exp( x
1
) + 2 sen(x
1
)
x
2

= 0,539786
x
3
= 0,539785
x
4
= 0,539785
Como se v, chega-se rapidamente raiz com seis decimais.
No mtodo de Newton-Raphson, a convergncia no linear, como no
Mtodo da Iterao Linear. A convergncia mais rpida, quadrtica.
Assim, cada novo erro proporcional ao quadrado do erro anterior.
Vejamos por que.
Pelo desenvolvimento em Srie de Taylor, sabe-se que:
g(r+e) = g(r) + g'(r).e /2! + g''(r).e
2
/ 2! + g'''(r). e
3
/ 3! + ...
Como se fez a transformao de f(x) = 0 para x = g(x) , onde g(r) =
r e x
i+1

= g( x
i

) , tem-se:
x
i

= r + e
i
, onde e
i
o erro que se comete se considerarmos que x
i

= r
x
i+1

= r + e
i+1
, onde e
i+1
o erro que se comete se considerarmos
que x
i+1

= r
Temos que x
i+1

= g( x
i

) , onde x
i

= r + e
i

Assim, g( x
i

) = g(r + e
i
) = g(r) + g'(r).e
i
+ g''(r).e
i
2
/ 2! + g'''(r). e
i
3
/
3! + ...
Sendo f '(x) diferente de zero, vimos que g'(r) = 0 .
Vamos admitir que estamos com erro pequeno, de forma que e
3
possa
ser desprezado em face de e
2

Da, g( x
i

) = g(r + e
i
) ~ g(r) + g''(r).e
i
2
/ 2!
Lembrando que g(r) = r e x
i+1

= g( x
i

)
x
i+1
= r + g''(r).e
i
2
/ 2!= r + e
i+1

Logo: e
i+1
= (g''(r)/ 2).e
i
2
= K . e
i
2 ,
com convergncia quadrtica.
Teste seus conhecimentos, procurando calcular as razes abaixo,
estimando, primeiro um valor inicial pelo mtodo grfico.
1 - f(x) = e
2x
- 3 cos(x) = 0 .... Calcular a raiz positiva e a maior raiz
negativa.
2 - f(x) = e
x
+ x -2 = 0
3 - f(x) = e
-x
- sen(x) = 0 ...Calcular as trs menores razes positivas.
4 - f(x) = e
x
. sen(x) - cos(x) = 0 ... Calcular as duas menores razes
positivas.

No difcil demonstrar que, no caso de raiz dupla, quando se tem f(x)
= 0 e f '(x) = 0 , a convergncia linear e no quadrtica.
Vimos acima que g '(x) = f . f '' / (f ')
2
e daqui s pudemos afirmar
que g '(r) = 0 pois f(r) = 0 se f '(r) fosse diferente de zero. No caso de raiz
dupla tem-se f '(r) = 0 e, portanto, g '(r) = 0 / 0 , indeterminado.
Para levantar esta indeterminao aplicamos a Regra de L' Hospital,
derivando o numerador e o denominador.
g '(r) = (f . f ''' + f ' . f '') / 2 f '.f '' = 0 / 0 . Derivando, mais uma vez, o
numerador e o denominador, tem-se:
g '(r) = ( f . f'''' + f '.f''' + f ' . f ''' + f '' . f '') / (2(f '.f ''' + f '' . f '' ) = 1/2
Como e
i+1
~ g'(r).e
i
, tem-se convergncia linear, com razo de
convergncia igual a meio, isto , cada novo erro aproximadamente igual
metade do erro anterior.



Captulo 5 - Birge Vieta
Clculo de Razes Reais de um Polinmio
Introduo
No se precisa de Clculo Numrico para calcular as razes de uma equao do segundo grau.
de todos conhecida a frmula b (b
2
4ac) /2a .
Entretanto, se temos polinnios de ordem maior que 2, as dificuldades aumentam.
H solues para casos particulares, como as biquadradas, faltando solues analticas gerais
para polinmios de ordem elevada.
O problema enfrentado com o Mtodo de Newton, j apresentado, onde se usa a expresso
xi+1 = xi f(xi) / f (xi).
Para clculo do valor de f(xi) e f (xi) , usa-se o algoritmo de Ruffini ou Briot-Ruffini, com o
objetivo de minimizar os clculos necessrios, permitindo maior preciso.
Algoritmo de Briot-Ruffini.
Para se calcular o valor de um polinmio num ponto x0 , faz-se a diviso de P(x) por x x0 e
acha-se o resto R, da diviso.
R = p(x0) .
Vejamos: seja Q(x) o quociente da diviso de P(x) por x x
0
.
Tem-se: P(x) = (x x
0
) Q(x) + R .

P(x
0
) = (x
0
x
0
) Q(x
0
) + R . Logo: R = P(x
0
) .
Seja o dividendo P(x) = a
4
x
4
+ a
3
x
3
+ a
2
x
2
+ a
1
x + a
0


e o quociente Q(x) = b
4
x
3
+ b
3
x
2
+ b
2
x + b
1
, sendo R o resto.
P(x) = (x x
0
) Q(x) + R , logo:
a
4
x
4
+ a
3
x
3
+ a
2
x
2
+ a
1
x + a
0
= (x x
0
) (b
4
x
3
+ b
3
x
2
+ b
2
x + b
1
) + R =
= b
4
x
4
+ (b
3
- x
0
b
4
) x
3
+ (b
2
- x
0
b
3
) x
2
+ (b
1
- x
0
b
2
) x + (R - x
0
b
1
)
Tratando-se de identidade de polinmios, pois essa igualdade vale para qualquer valor de x ,
tem-se:
b
4
= a
4

b
3
- x
0
b
4
= a
3
ou b
3
= a
3
+ x
0
b
4

b
2
- x
0
b
3
= a
2
ou b
2
= a
2
+ x
0
b
3

b
1
- x
0
b
2
= a
1
ou b
1
= a
1
+ x
0
b
2

R - x
0
b
1
= a
0
ou R = a
0
+ x
0
b
1


a
4
a
3
a
2
a
1
a
0

x
0
b
4
b
3
b
2
b
1

R

Dessa forma tem-se o quociente Q(x) e o valor de P(x
0
) = R.Clculo das razesVoltemos ao
clculo das razes do polinmio, pelo mtodo de Newton-Raphson.Partindo de x
0
, vamos
calcular x
1
= x
0
P(x
0
)/P(x
0
) , onde P(x
0
) e P(x
0
) sero calculados usando-se Briot-Ruffini.
Entretanto, lembrando que P(x) = (x-x
0
)Q(x) + R , tem-se que :
P(x) = (x-x
0
)Q(x) + Q(x) e logo, P(x
0
) = (x
0
x
0
)Q (x
0
) + Q(x
0
) = Q(x
0
)
Assim, P(x
0
) = Q(x
0
) .
Logo, x
1
= x
0
P(x
0
)/Q(x
0
) .
Quando se calcula R = P(x
0
) , logo abaixo da linha est o Q(x). Assim, basta repetir a operao
que se fez com o P(x), para o Q(x), cujo grau o de P(x) menos 1, e se ter, direita,
R* = Q(x
0
) = P(x
0
), da mesma maneira como se calculou o R, anterior.
a
4
a
3
a
2
a
1
a
0

x
0
b
4
b
3
b
2
b
1
R
x
0
c
4
c
3
c
2
R*

Assim, x
1
= x
0
R/R* .

Repetindo-se o processo, tem-se: x
i+1
= x
i
R / R* , at que | x
i+1
x
i
| < e , onde e a
tolerncia.
Este mtodo para clculo de razes de polinmios, usando-se o algoritmo de Briot-Ruffini,
associado ao mtodo de Newton-Raphson, recebe o nome de Mtodo de Birge-Vieta.Vejamos
um exemplo numrico:
Calcular as razes reais de P(x) = x
3
- 6x
2
45 x + 50 = 0
Seja x
0
= 0
1 -6 -45 50
0 1 -6 -45 R=50
0 1 -6 R*=-45

x
1
= 0 50 / (-45) = 1,11
1 -6 -45 50
1,11 1 -4,89 -50,43 R=-5,98
1,11 1 -3,78 R*=-54,63
x
2
= 1,11 (-5,98)/(-54,63) = 1,00
1 -6 -45 50
1,00 1 -5 -50 R=0
1,00 1
Sendo R= 0, a primeira raiz vale 1,00.
r
1
= 1,00

Na verdade, no se tinha chegado a exatamente R = 1,00, mas a R = 1,00058, que, sendo
aproximado para duas casas, vale 1,00.
Por outro lado, se colocssemos 1,00058 o valor de P(1,00058) no daria exatamente 0, mas -
0,0023.
Neste caso, os nmeros foram escolhidos para que dessem resultados prximos a valores
inteiros, da o 1,00.
Na vida real, isso raramente acontece, os valores sero fracionrios e os resultados no sero
exatos.

Vamos procurar as duas outras razes.

Sendo P(x) = (x-x
i
) Q(x) + R, quando R ~ 0 , tem-se que r
1
~ x
i
. Chegamos primeira raiz.
Assim, P(x) ~ (x r
1
) Q(x).
As demais razes de P(x) sero razes de Q(x), tem ser um polinmio 1 grau inferior a P(x).
Resta procurar as razes de Q(x) que teremos as demais razes de P(x).
Tomam-se os coeficiente de Q(x) e passamos esses coeficientes para a linha de cima do
quadro de Briot-Ruffini e recomeamos.
1 -5 -50
1,00 1 -4 R = -54
1,00 1 R* = -3
Toma-se como x
0
o valor encontrado para a raiz, isto : 1,00 .
x
1
= 1,00 (-54) / (-3) = -17,00
1 -5 -50
-17,00 1 -22,00 R = 324,00
-17,00 1 R* = -39,00
x
2
= -17,00 324,00/(-39,00) = -8,69
1 -5 -50
-8,69 1 -13,69 R = 68,97
-8,69 1 R* = -22,38
x
3
= -8,69 68,97 / (-22,38) = -5,61
1 -5 -50
-5,61 1 -10,61 R = 9,53
-5,61 1 R* = -16,22
x
4
= -5,61 9,53 / (-16,22) = -5,02
1 -5 -50
-5,02 1 -10,02 R = 0,30
-5,02 1 R* = -15,04
x
4
= -5,02 0,30 / (-15,04) = -5,00
1 -5 -50
-5,00 1 -10,00 R = 0,00
-5,00 1
r
2
= -5,00
A ltima raiz est no polinmio que sobrou em Q(x), isto : x 10,0 = 0 .
1 -10,00
-5,00 1 R = -15,00
-5,00 R* = 1

Toma-se x
0
= -5,0 .
x
1
= -5,0 (-15,00) / 1 = 10,00
1 -10,00
10,00 1 R = 0,00
10,00 1

Logo r
3
= 10,00
As trs razes so: - 5 , 1 e 10 .

Você também pode gostar