1.4 Leituras aconselhadas
2.1.2 M´ etodo da bissec¸c˜ ao
Do mesmo modo podemos observar que a fun¸c˜ao f0 ´e crescente em [2, 3] e, de acordo com a tabela, toma sempre valores positivos neste intervalo. Aplicando o Teorema2.2 neste intervalo, constata-se que f tem nele um ´unico zero, seja z3.
Para se aplicar o mesmo teorema no intervalo [0, 1], comecemos por recordar que a fun¸c˜ao f0 tem um ponto de m´ınimo em x = ln 2, que pertence a este intervalo. Note-se que f0(ln 2) = −1.38 < 0, e de acordo com a tabela anterior, f0(0) e f0(1) tamb´em s˜ao negativos, pelo que podemos concluir ser f0 negativa em todo o intervalo [0, 1]. Logo, o Teorema2.2 ´e aplic´avel neste intervalo e a fun¸c˜ao tem nele um ´unico zero z2.
Resta esclarecer uma quest˜ao: ser´a que a equa¸c˜ao f (x) = 0 possui alguma raiz real al´em das que acab´amos de localizar? Para responder a esta pergunta, recor- demos que a segunda derivada de f tem uma ´unica raiz real em x = ln 2. Pelo Teorema de Rolle somos levados a concluir que a primeira derivada de f tem, no m´aximo, duas ra´ızes reais. Finalmente, aplicando o Teorema de Rolle a f0, conclui-se que f possui no m´aximo trˆes ra´ızes reais. Como j´a vimos que existem pelo menos trˆes ra´ızes (z1, z2 e z3), conclu´ımos que estas s˜ao as ´unicas ra´ızes da
equa¸c˜ao f (x) = 0.
2.1.2
M´etodo da bissec¸c˜ao
Um dos m´etodos mais simples para o c´alculo aproximado de ra´ızes ´e o m´etodo da bissec¸c˜ao. Para se poder aplicar este m´etodo basta que a fun¸c˜ao em causa seja cont´ınua num intervalo que contenha uma ´unica raiz da fun¸c˜ao.
A ideia do m´etodo ´e construir uma sucess˜ao de intervalos encaixados,
tais que:
a) Cada intervalo tem o comprimento igual a metade do intervalo anterior; b) Em cada intervalo ´e satisfeita a condi¸c˜ao f (ai)f (bi) < 0, i = 1 : k.
O Teorema2.1, p´ag.31, sugere que a raiz ´e um ponto comum a todos os intervalos da sucess˜ao. Assim, se considerarmos um n´umero suficientemente grande de intervalos, ´e poss´ıvel aproximar a raiz com a precis˜ao que se pretender.
Vejamos em pormenor o algoritmo deste m´etodo. 1o Passo
Dado um intervalo [a, b], e uma fun¸c˜ao f tais que f (a)f (b) < 0, determina-se o ponto m´edio desse intervalo x1 =
a + b 2 .
Se, por coincidˆencia, se verificar f (x1) = 0, o ponto x1 ´e a raiz procurada e o
processo termina. Suponhamos que f (x1) 6= 0. Ent˜ao, verifica-se
f (x1)f (a) < 0 ou f (x1)f (a) > 0.
No primeiro caso, podemos afirmar que a raiz z ∈ [a, x1], no segundo caso z ∈
[x1, b]. Assim, o intervalo [a1, b1] pode ser definido do seguinte modo:
Se f (x1)f (a) < 0 , ent˜ao fazer a1 = a e b1 = x1; caso contr´ario, fazer a1 = x1 e
b1 = b.
Em qualquer dos casos, o novo intervalo [a1, b1] satisfaz f (a1)f (b1) < 0.
2o Passo
Repetem-se as ac¸c˜oes do primeiro passo, substituindo o intervalo [a, b] por [a1, b1],
e representando por x2 o ponto m´edio deste intervalo. O resultado deste passo ´e
o intervalo [a2, b2].
Generalizando, no k-´esimo passo (itera¸c˜ao), procede-se do seguinte modo: Determina-se o ponto m´edio do intervalo anterior,
xk =
ak−1+ bk−1
2 . (2.2)
Se f (xk)f (ak−1) < 0 , ent˜ao fazer ak = ak−1 e bk = xk; sen˜ao fazer ak = xk e
bk= bk−1. No k-´esimo passo obt´em-se o intervalo [ak, bk].
O processo ´e interrompido quando for satisfeita a condi¸c˜ao de paragem
bk− ak < ε,
onde ε ´e uma tolerˆancia previamente estabelecida, de acordo com a precis˜ao que se pretende obter.
Estimativas de erro
Note-se que o comprimento do k-´esimo intervalo, por constru¸c˜ao, vale
bk− ak =
b − a 2k ,
pelo que esse valor tende para zero, quando k tende para infinito. Logo, qualquer que seja a tolerˆancia ε, a condi¸c˜ao de paragem ´e satisfeita ao fim de um certo n´umero de passos (dependendo do comprimento do intervalo inicial e de ε). Mais precisamente, temos b − a 2k < ε ⇐⇒ b − a ε < 2 k⇐⇒ k > log 2 b − a ε .
Assim, o n´umero de passos do m´etodo da bissec¸c˜ao que ´e necess´ario realizar at´e satisfazer a condi¸c˜ao de paragem ´e o menor inteiro k, tal que
k > log2 b − a ε
.
Se tomarmos como k-´esima aproxima¸c˜ao da raiz z o valor de xk, podemos afirmar
que o erro absoluto de xk satisfaz a desigualdade
|z − xk| <
bk−1− ak−1
2 =
b − a 2k .
Nada impede que denotemos por x0 o extremo a ou b do intervalo inicial. Nesse
caso, por constru¸c˜ao do m´etodo, ´e v´alida a rela¸c˜ao
b − a
2k = |xk− xk−1|.
´
E costume nos m´etodos computacionais representar o erro da k-´esima apro- xima¸c˜ao da raiz por ek. Usando esta nota¸c˜ao, podemos afirmar que no m´etodo
da bissec¸c˜ao s˜ao v´alidas as estimativas de erro
|ek| = |z − xk| < b − a 2k , ou |ek| = |z − xk| < |xk− xk−1|, k = 1, 2, . . . . (2.3)
Convergˆencia
Mostremos que, de facto, o m´etodo converge para a solu¸c˜ao de f (x) = 0. Por constru¸c˜ao do m´etodo, sabemos que
f (ak) × f (bk) < 0, k = 1, 2, . . . (2.4)
e que
ak−1 < xk < bk−1, k = 1, 2, . . . (2.5)
A sucess˜ao (ak−1)k≥0´e mon´otona n˜ao decrescente limitada por b0 = b, e a sucess˜ao
(bk−1)k≥0 ´e mon´otona n˜ao crescente limitada por a0 = a. Por conseguinte, estas
sucess˜oes s˜ao convergentes.
Sejam α = limk→∞(ak−1) e β = limk→∞(bk−1). Atendendo `a desigualdade (2.5),
tem-se
α ≤ lim
k→∞xk≤ β.
Mas, como bk− ak <
b − a
2k , para k = 0, 1, . . ., temos que limk→∞(bk− ak) = 0 e
lim
k→∞(bk− ak) = β − α ⇐⇒ α = β.
Quer isto dizer que as sucess˜oes constitu´ıdas respectivamente pelos extremos dos subintervalos [ak, bk] s˜ao ambas convergentes para o mesmo n´umero, e de (2.5)
temos tamb´em
lim
k→∞xk= α = β.
Seja z o limite comum anterior. Da desigualdade (2.4) e atendendo a que f ´e, por hip´otese, cont´ınua, obt´em-se,
flim k→∞ak × flim k→∞bk ≤ 0, isto ´e, f2(z) ≤ 0.
A desigualdade anterior ´e v´alida se e s´o se f (z) = 0. Como por hip´otese s´o existe um zero de f em [a, b], prov´amos que limk→∞xk = z.
A conclus˜ao anterior de que limk→∞xk = α = β, baseia-se no pressuposto de
que a desigualdade (2.4) ´e v´alida para qualquer iterada k. No entanto, devido `
as limita¸c˜oes impostas pelo c´alculo num´erico, pode acontecer que para k > k0,
se verifique ¯f (ak) = 0 e/ou ¯f (bk) = 0, onde ¯f representa o valor de f arredon-
dado pelo sistema de ponto flutuante usado. Por conseguinte, dever´a tomar-se a referida desigualdade como te´orica, porquanto a sua validade fica limitada por eventuais erros de arredondamento cometidos pelo sistema de ponto flutuante utilizado. Mas, como em geral as aproxima¸c˜oes a determinar para as iteradas
xk do m´etodo da bissec¸c˜ao est˜ao ainda longe da solu¸c˜ao exacta z, os respectivos
valores calculados de f (xk) estar˜ao por sua vez suficientemente longe de zero,
pelo que uma avalia¸c˜ao incorrecta do sinal do produto ¯f (ak) × ¯f (bk) ser´a uma
situa¸c˜ao excepcional.
Exemplo 2.4. a) Recorrendo ao Teorema 2.1, p´ag. 31, justifique que a raiz c´u- bica de 2 pertence ao intervalo [1.2, 1.3].
b) Baseando-se na al´ınea anterior, efectue trˆes itera¸c˜oes (passos) do m´etodo da bissec¸c˜ao, com o objectivo de calcular um valor aproximado de √3
2. c) Quantas itera¸c˜oes teria que efectuar se pretendesse determinar √3
2 com um erro absoluto inferior a 0.001?
Comecemos por observar que determinar a raiz c´ubica de 2 equivale a resolver a equa¸c˜ao f (x) = x3− 2 = 0.
a) Temos que f (1.2) = 1.23− 2 = −0.272 < 0 e f (1.3) = 1.33 − 2 = 0.197 > 0.
Uma vez que a fun¸c˜ao f ´e cont´ınua, pelo Teorema 2.1 conclu´ımos que a raiz procurada est´a no intervalo [1.2, 1.3].
b) Comecemos com o intervalo [a, b] = [1.2, 1.3]. A primeira iterada ´e x1 =
a + b
2 = 1.25. Verifica-se que f (1.25) = −0.047 < 0, donde
f (1.25)f (1.2) > 0.
Logo, o intervalo a considerar na itera¸c˜ao seguinte ´e [a1, b1] = [1.25, 1.3]. Por
conseguinte, x2 =
a1+ b1
2 = 1.275. Neste caso, f (1.275) = 0.0727 > 0, donde f (1.275)f (1.25) < 0. Assim, o intervalo a considerar na terceira itera¸c˜ao ´e [a2, b2] =
[1.25, 1.275]. Finalmente, x3 =
a2+ b2
2 = 1.2625.
Neste ponto, temos f (1.2625) = 0.012 > 0, pelo que o intervalo a considerar na itera¸c˜ao seguinte ser´a [a3, b3] = [1.25, 1.2625].
c) O comprimento do intervalo inicial ´e b − a = 0.1. Assim, para se atingir uma precis˜ao de ε = 0.001, o n´umero de itera¸c˜oes ser´a
log2 b − a ε = log2 0.1 0.001 = 6.64.
Ou seja, a precis˜ao pretendida ser´a seguramente atingida ao fim de 7 itera¸c˜oes. O m´etodo da bissec¸cao tem a vantagem de convergir, sempre que num intervalo [a, b] se encontrar um zero isolado de uma fun¸c˜ao cont´ınua nesse intervalo que mude de sinal nos extremos do intervalo. Por´em, este m´etodo ´e geralmente de
k ak bk SignHfHakLL SignHbkL xk SignHfHxkLL 0 20 50 1 - 1 35 = 35. 1 1 35 50 1 - 1 852 = 42.5 - 1 2 35 85 2 1 - 1 155 4 = 38.75 1 3 155 4 85 2 1 - 1 325 8 = 40.625 1 4 325 8 85 2 1 - 1 665 16 = 41.5625 - 1 5 325 8 665 16 1 - 1 1315 32 = 41.0938 - 1 6 325 8 1315 32 1 - 1 2615 64 = 40.8594 - 1 7 325 8 2615 64 1 - 1 5215 128 = 40.7422 1 8 5215 128 2615 64 1 - 1 10 445 256 = 40.8008 1 9 10 445 256 2615 64 1 - 1 20 905 512 = 40.8301 - 1 10 10 445 256 20 905 512 1 - 1 41 795 1024 = 40.8154 - 1
Figura 2.3: M´etodo da bissec¸c˜ao para o problema da caten´aria.
convergˆencia lenta. Da´ı que ele seja frequentemente usado para obter uma esti- mativa “suficientemente pr´oxima”de z. Tal estimativa ´e depois utilizada como aproxima¸c˜ao inicial de z, tendo em vista a aplica¸c˜ao de um m´etodo num´erico que convirja mais rapidamente do que o m´etodo da bissec¸c˜ao.
Exemplo 2.5. Aplique o m´etodo da bissec¸c˜ao para obter uma estimativa inicial do parˆametro da caten´aria dada no Exemplo 2.2, p´ag. 29.
Substituindo L e b pelos valores dados, a equa¸c˜ao a resolver ´e
f (a) = a cosh 20 a − a − 5 = ae 20/a+ e−20/a 2 − a − 5.
O problema pressup˜oe que a > 0. A fun¸c˜ao f ´e continuamente diferenci´avel. Dado que lima→0+ f (a) = +∞, e
lim
a→+∞ f (a) = lima→+∞
cosh(20 × a−1) − 1 1
a
− 5 = −5,
conclui-se que existe pelo menos uma raiz positiva da equa¸c˜ao. Como
f0(a) = cosh(20/a) − 20/a sinh(20/a) − 1,
e
f00(a) = −20/a2 sinh(20/a) + 202/a2 cosh(20/a)
= 400
a fun¸c˜ao derivada f0 ´e estritamente crescente e mant´em sinal (negativo) em R+, logo f possui no m´aximo um zero real positivo. Atendendo a que
f (20) ' 5.9 > 0 e f (50) ' −0.95 < 0,
´e certo que no intervalo [20, 50] existir´a o ´unico zero positivo da fun¸c˜ao, prevendo- se que esse zero esteja mais pr´oximo do valor 50 do que do valor 20.
Na Fig. 2.3 mostra-se o resultado da aplica¸c˜ao do m´etodo da bissec¸c˜ao no in- tervalo considerado. Pode observar-se a lentid˜ao do processo – no final de 10 itera¸c˜oes o valor calculado z ' 40.8154, possui apenas 3 algarismos significativos. Na realidade z ´e aproximadamente 40.8071, como poder´a concluir se usar um m´etodo de convergˆencia r´apida.
Chama-se a aten¸c˜ao de que a iterada x8 (ver Fig. 2.3) ´e mais precisa do que
x10. Tal deve-se ao facto do m´etodo apenas analisar o sinal6 da fun¸c˜ao em cada
iterada, sgn(xk), comparando-o com o sinal da fun¸c˜ao num dos extremos do
intervalo a partir do qual essa iterada ´e calculada.
Como veremos adiante, m´etodos usando mais informa¸c˜ao sobre a fun¸c˜ao, quando convergentes, convergem em geral mais rapidamente do que o m´etodo aqui tra- tado.
Se, por exemplo, pretendˆessemos aproximar a raiz z com uma tolerˆancia < 10−6, o n´umero de itera¸c˜oes a efectuar seria superior a 20. Com efeito, designando por N esse n´umero, tem-se
|ek| < b − a 2k < ⇐⇒ 2 k > 30 , ou seja, k > log(30/) log(2) ' 24.8.
Assim, se efectuarmos N = 25 itera¸c˜oes podemos garantir que o erro absoluto |e25| = |z − x25| < 10−6. Este n´umero de itera¸c˜oes pode ser considerado insigni-
ficante apenas se estivermos lidando com um c´alculo isolado de uma raiz.
Nas aplica¸c˜oes s˜ao frequentes os modelos matem´aticos para os quais necessitamos de obter aproxima¸c˜oes n˜ao de uma mas de uma enorme quantidade de ra´ızes. Basta pensar como seria o caso de no nosso modelo de caten´aria fazermos variar L, por exemplo, de L = 90 m a L = 110 m, por acr´escimos de 1 mm. Para cada valor de L dever´ıamos determinar a correspondente raiz de f (a) = 0 pelo m´etodo da bissec¸c˜ao. Se de cada vez realizarmos 25 itera¸c˜oes, no final ter´ıamos efectuado 25 × 20 001 = 500 025 itera¸c˜oes, o que ´e manifestamente indesej´avel.
Tal circunstˆancia sugere a obrigatoriedade de conhecermos algoritmos alternati- vos que sejam, por um lado de convergˆencia r´apida e, por outro, econ´omicos do
ponto de vista do n´umero de opera¸c˜oes elementares usadas pelo algoritmo, al´em de numericamente est´aveis quando aplicados a um determinado problema.