• Nenhum resultado encontrado

M´ etodo da bissec¸c˜ ao

No documento Apontamentos de Matemática Computacional (páginas 37-44)

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. 

No documento Apontamentos de Matemática Computacional (páginas 37-44)

Documentos relacionados