Você está na página 1de 30

Cálculo Numérico

Prof. Aparecido J. de Souza


aparecidosouza@ci.ufpb.br

Raízes de Equações ou Zeros de Funções


Métodos da Bisseção e da Posição Falsa.
Raízes de Equações - Zeros de funções
Equação em uma variável: f(x) = 0, em que f (x) é uma
expressão dada.

Exemplo1 (Algumas Equações).

(a) x + 1 = 0, (b) x 2 − 1 = 0, (c) x 2 + 1 = 0,

(d) x 3 − 9x + 3 = 0, (e) x 1/2 − 5e−x = 0,

(f) cos(x) log(x) − x + 2 = 0.

Definição. Um número real r é uma raiz da equação f (x) = 0


(ou um zero da função f ) se f(r) = 0.

Suponha f ∈ C k , isto é, que a função f possua derivadas até


ordem k , todas as derivadas sendo funções contínuas.
Se f (r) = f 0 (r) = · · · = f (k −1) (r) = 0 e f (k ) (r) 6= 0, então r é uma
raíz (ou zero) de ordem k.
Raízes de Equações - Zeros de funções
Equação em uma variável: f(x) = 0, em que f (x) é uma
expressão dada.

Definição. Um número real r é uma raiz da equação f (x) = 0


(ou um zero da função f ) se f(r) = 0.

Pesquisa de raízes.
Teorema do Valor Intermediário (TVI). Seja f uma função
contínua em [a, b]. Se f (a) × f (b) < 0 (isto é, se f (a) e f (b)
tiverem sinais contrários), então há pelo menos uma raíz da
equação f (x) = 0 no intervalo (a, b).

Obs. 1. Se f (a) × f (b) < 0 e se a função derivada f 0 não


mudar de sinal em [a, b], então a raíz é única em (a, b). Se
f 0 (x) > 0, a função f é crescente e se f 0 (x) < 0 a função f é
decrescente em (a, b).
Pesquisa de raízes - Método Gráfico
Exemplo 1. Seja f (x) = x 3 − 9x + 3.
Foram detectadas três raizes da equação x 3 − 9x + 3 = 0:
uma no intervalo [−5, −3], outra no intervalo [0, 1] e outra no
intervalo [2, 3].
Veja o gráfico de f , para x ∈ [−5, 5].
Pesquisa de raízes - Tabela de Valores
A partir de uma tabela de valores de f (x) verifica-se intervalos
onde há mudanças de sinais destes valores.

Exemplo 2. Seja f (x) = cos(x) log(x) − x + 2.

f (0.01) = −0.0099, f (0.1) = 0.9050, f (1) = 1,


f (1.75) = 0.2067, f (2) ≈ −0.1253.

Foram detectadas duas raizes da equação


cos(x) log(x) − x + 2 = 0.
Uma delas no intervalo [0.01, 0.1] e outra no intervalo [1.75, 2].
Métodos Numéricos para aproximação de raizes.
Hipótese. Seja f : [a, b] ⊂ R → R contínua. Suponha que a
equação f (x) = 0 possua uma única raíz x = r com r em (a, b).

Objetivo. Obter uma sequência de aproximações sucessivas


rk de r, k = 1, · · · N, até atingir uma aproximação r̄ de r com a
precisão (tolerância) requerida.

A precisão para a aproximação r̄ do zero r é determinada pela


tolerância TOL prescrita como critério de parada.

Normalmente toma-se TOL = 10−(m+1) , em que m é o número


de casa decimais que queremos corretos na aproximação
obtida.
Critérios de Parada para uma Tolerância Fixada
Suponha uma sequência de pelo menos duas iterações
sucessivas da única raíz r da equação f (x) = 0 que foi isolada
num intervalo (a, b). Digamos: r1 , r2 , . . . , rk , rk +1 .

1. Erro Absoluto em x: |rk − rk +1 | < TOL.


Não é conveniente quando a variação do valor f (rk ) para o
valor f (rk +1 ) for grande.
2. Erro Absoluto em f (x): |f (rk +1 )| < TOL.
Não é conveniente quando a variação do valor f (rk ) para o
valor f (rk +1 ) for pequena.
|rk − rk +1 |
3. Erro Relativo em x: < TOL.
max{1, |rk |}
4. Impor (1) e (2) ou (2) e (3) simultâneamente.
5. Obrigatório. Impor um número máximo de iterações.
O Método da Bisseção.
Hipótese. Seja f : [a, b] ⊂ R → R contínua. Suponha que a
equação f (x) = 0 possua uma única raíz x = r no intervalo
(a, b).

Ideia. Obter uma sequência de aproximações sucessivas rk de


r reduzindo o comprimento do intervalo que contém a raíz por
divisões sucessivas ao meio obtendo subintervalos [ak , bk ] e
ak + bk
tomando rk = (o ponto médio de [ak , bk ]), k = 1, 2, · · · ,
2
até atingir uma aproximação r̄ de r obedecendo o critério de
parada imposto.

Obs. 2. Mesmo que a equação possua várias raízes,


aproxima-se uma de cada vez, delimitando um intervalo
adequado para a mesma (onde f 0 (x) 6= 0 para todo x em tal
intervalo).
O método da bisseção
Iteração 1: Faça (atribua) a1 = a e b1 = b.
Faça (calcule) r1 = a1 +b
2 .
1

Se r1 − a1 < TOL, então tome r̄ = r1 e FIM.


Se não,
Se (if) f (a1 ) f (r1 ) < 0, então (then)
faça a2 = a1 , b2 = r1 .
Se não (else), então
faça a2 = r1 , b2 = b1 .
Iteração 2:
Faça (calcule) r2 = a2 +b
2 .
2

Se r2 − a2 < TOL, então tome r̄ = r2 e FIM.


Se não,
Se (if) f (a2 ) f (r2 ) < 0, então (then)
faça a3 = a2 , b3 = r2 .
Se não (else), então
faça a3 = r2 , b3 = b2 .
E assim sucessivamente ....
O método da bisseção
Algorítmo (não interessa as aproximações intermediárias).
1. Dados iniciais: f (x), a, b, TOL, N.
a+b
2. Faça r = 2
3. Se r − a < TOL, então r̄ = r e FIM;
4. Se não, então faça k = 1 e M = f (a).
5. Enquanto (“while” ou “for”) k ≤ N:
5.1 Se M f (r ) < 0, então faça b = r ;
5.2 Se não, então faça a = r e M = f (a).
5.3 Faça r = a+2 b e k = k + 1.
5.4 r − a < TOL, então r̄ = r e k = N + 2 (FIM);
Final do “loop” (“end”), retorne ao passo 5.
6. Se k = N + 1, então “Tolerância não atingida” e FIM.
O método da bisseção
Estimativa do número de iterações quando o critério de
parada é dado em termos do Erro Absoluto em x.
Dada TOL > 0 queremos que |rk +1 − rk | < TOL, k ≥ 1.
bk − ak b−a
Como |rk +1 − rk | < = k , então impomos que
2 2
b−a
< TOL.
2k
Tomando o logarítmo na base 10, obtem-se:
b−a
2k > TOL =⇒ klog(2) > log(b − a) − log(TOL).
Portanto, o número de iterações é o menor número inteiro k
tal que:
k > log(b−a)−log(TOL)
log(2) .

Exemplo 3. Sejam [a, b] = [2, 3] e TOL = 10−2 .


log(3−2)−log(10−2 ) 2
k> log(2) ≈ 0.3010 ≈ 6.64. Portanto, k = 7.
O método da bisseção
Estimativa do número de iterações.
log(b−a)−log(TOL)
k> log(2) .
Exemplo 4. Determine as estimativas dos números de
iterações para obter aproximações das raízes da equação
x 3 − 9x + 3 = 0 dadas no Exemplo 2 com TOL = 10−3 , via Erro
Absoluto em x.
Solução.
Sabemos que esta função f possui três zeros simples. Uma no
intervalo [−5, −3], outra em [0, 1] e outra em [2, 3].
(a) Intervalo [−5, −3].
log(−3+5)−log(10−3 ) log(2)+3log(10)
k> log(2) = log(2) ≈ 10.9658.

Portanto, são necessárias 11 iterações.


O método da bisseção
Estimativa do número de iterações.
log(b−a)−log(TOL)
k> log(2) .
Exemplo 4(cont.). Determine as estimativas dos números de
iterações para obter aproximações das raízes da equação
x 3 − 9x + 3 = 0 dadas no Exemplo 2 com TOL = 10−3 , via Erro
Absoluto em x.
Solução.
(b) Intervalos [0, 1] e [2, 3]. Como em ambos intervalos temos
b − a = 1, então vale a mesma estimativa.
log(1)−log(10−3 ) log(1)+3log(10)
k> log(2) = log(2) ≈ 9.9658.
Portanto, são necessárias 10 iterações.
Obs. 3. Independentemente da raíz, se o intervalo contendo r
tem o mesmo comprimento e se a tolerância é a mesma, então
o número de iterações mínimas é o mesmo.
O método da bisseção
Exemplo 5. Determine aproximações das raízes da equação
x 3 − 9x + 3 = 0 com TOL = 10−3 , via Erro Absoluto em x.
Solução.
(a) Zero no Intervalo [−5, −3]. Precisamos de 11 iterações .
f (−5) < 0 e f (−3) > 0.
r1 = −4.0, |E1 | = | − 4 + 5| = 1 > 10−3 , f (r1 ) = −25 < 0
r2 = −3.5, |E2 | = 0.5 > 10−3 , f (r2 ) = −8.375 < 0
r3 = −3.25, |E3 | = 0.25 > 10−3 , f (r3 ) = −2.0781 < 0
r4 = −3.125, |E4 | = 0.125 > 10−3 , f (r4 ) = 0.6074 > 0
r5 = −3.1875, |E5 | = 0.0625 > 10−3 , f (r5 ) = −0.6980 < 0
r6 = −3.1563, |E6 | = 0.0312 > 10−3 , f (r6 ) = −0.0360 < 0
r7 = −3.1406, |E7 | = 0.0157 > 10−3 , f (r7 ) = 0.2880 > 0
r8 = −3.1484, |E8 | = 0.0078 > 10−3 , f (r8 ) = 0.1266 > 0
r9 = −3.1523, |E9 | = 0.0039 > 10−3 , f (r9 ) = 0.0454 > 0
r10 = −3.1543, |E10 | = 0.002 > 10−3 , f (r10 ) = 0.0047 > 0
r11 = −3.1553, |E11 | = 0.0010 = 10−3 = TOL. =⇒ r̄ = r11 .
O método da bisseção
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [−5, −3].

r̄ = −3.1553.
O método da bisseção
Exemplo 5(cont.).
Determine aproximações das raízes da equação
x 3 − 9x + 3 = 0 com TOL = 10−3 , via Erro Absoluto em x.
Solução. TOL = 10−3 e precisamos de 10 iterações .
(b) Zero no Intervalo [0, 1]. f (0) > 0, f (1) < 0.
r1 = 0.5, |E1 | = |r1 − a| = 0.5 > 10−3 , f (r1 ) = −1.375 < 0
r2 = 0.25, |E2 | = |r2 − r1 | = 0.25 > 10−3 , f (r2 ) = 0.7656 > 0
r3 = 0.375, |E3 | = 0.125 > 10−3 , f (r3 ) = −0.3223 < 0
r4 = 0.3125, |E4 | = 0.0625 > 10−3 , f (r4 ) = 0.2180 > 0
r5 = 0.3438, |E5 | = 0.0313, f (r5 ) = −0.0531 < 0
r6 = 0.3281, |E6 | = 0.0157, f (r6 ) = 0.0822 > 0
r7 = 0.3359, |E7 | = 0.0078, f (r7 ) = 0.0145 > 0
r8 = 0.3398, |E8 | = 0.0039, f (r8 ) = −0.0193 < 0
r9 = 0.3379, |E9 | = 0.0019, f (r9 ) = −0.0024 < 0
r10 = 0.3369, |E10 | = 0.001 = 10−3 . Daí, r̄= 0.3369.
O método da bisseção
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [0, 1].

r̄ = 0.3369.
O método da bisseção
Exemplo 5(cont.). Determine aproximações das raízes da
equação x 3 − 9x + 3 = 0 com TOL = 10−3 , via Erro Absoluto
em x.
Solução. TOL = 10−3 e precisamos de 10 iterações.
(c) Zero no Intervalo [2, 3]. f (2) < 0 e f (3) > 0.
r1 = 2.5, |E1 | = 0.5, f (r1 ) = −3.8750 < 0
r2 = 2.7500, f (r2 ) = −0.9531 < 0
r3 = 2.8750, f (r3 ) = 0.8887 > 0
r4 = 2.8125, f (r4 ) = −0.0652 < 0
r5 = 2.8438, f (r5 ) = 0.4034 > 0
r6 = 2.8281, f (r6 ) = 0.1670 > 0
r7 = 2.8203, f (r7 ) = 0.0504 > 0
r8 = 2.8164, f (r8 ) = −0.0075 > 0
r9 = 2.8184, f (r9 ) = 0.0214 > 0
r10 = 2.8174 = r̄, |E10 | = 0.001 = TOL
O método da bisseção
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [2, 3].

r̄ = 2.8174.
O Método da Posição Falsa.
Este método é uma modificação do método da bisseção com o
intuito de diminuir o número de iterações e obter uma
aproximação da raíz r com a mesma precisão.

Ideia. Obter uma sequência de aproximações sucessivas rk de


r reduzindo o comprimento do intervalo [a, b] por divisões
sucessivas em subintervalos [ak , bk ] contendo r, usando uma
média ponderada entre os seus extremos, até atingir uma
aproximação r̄ de r com a precisão requerida.

A aproximação rk é definida como o ponto de interseção da


reta secante ao gráfico da função f , pelos pontos
Ak = (ak , f (ak )) e Bk = (bk , f (bk )).
O Método da Posição Falsa.
A aproximação rk é definida como o ponto de interseção da
reta secante ao gráfico da função f , pelos pontos
Ak = (ak , f (ak )) e Bk = (bk , f (bk )).

A equação desta reta é

f (ak ) − f (bk ) ak f (bk ) − bk f (ak )


y= x+ .
ak − bk ak − bk

Fazendo a interseção desta reta com o eixo Ox, isto é, fazendo


y = 0 na equação acima, temos então a aproximação:

ak f(bk ) − bk f(ak )
rk = .
f(bk ) − f(ak )
O Método da Posição Falsa.
Portanto, a k −ésima aproximação da raiz r da equação
f (x) = 0 é:
ak f(bk ) − bk f(ak )
rk = .
f(bk ) − f(ak )

Obs. Como f (ak ) e f (bk ) têm sinais opostos, então

ak |f(bk )| + bk |f(ak )| |f(bk )| |f(ak )|


rk = = ak + bk ,
|f(bk )| + |f(ak )| |f(bk )| + |f(ak )| |f(bk )| + |f(ak )|

que é a média poderada entre ak e bk com pesos


|f(bk )| |f(ak )|
e , respectivamente.
|f(bk )| + |f(ak )| |f(bk )| + |f(ak )|
Caso |f (bk )| seja superior a |f (ak )|, então o valor de rk está
mais próximo de ak e vice-versa.
ak +bk
Caso |f (bk )| = |f (ak )|, então rk = 2 (mesma aproximação
dada pelo método da bisseção ).
O Método da Posição Falsa.
A k −ésima aproximação da raiz r da equação f (x) = 0 é:

ak f(bk ) − bk f(ak )
rk = .
f(bk ) − f(ak )

Uma vez determinado o valor de rk , verifica se os valores f (ak )


e f (rk ) têm sinais opostos.

Se sim, então a raiz r está no intervalo [ak , rk ] e faz-se


ak +1 = ak e bk +1 = rk ;
Se não, então a raiz r está no intervalo [rk , bk ] e faz-se
ak +1 = rk e bk +1 = bk .

Em seguida calcula-se a aproximação seguinte rk +1 e assim


sucessivamente até atingir o critério de parada para a raiz r da
equação f (x) = 0.
O Método da Posição Falsa.
Exemplo 6. Determine as aproximações dos zeros da função
f (x) = x 3 − 9x + 3 tendo como critério de parada
|EAk +1 | = |rk +1 − rk | ≤ 0.001.
Os zeros estão localizadas nos intervalos [−5, −3], [0, 1] e
[2, 3].
O Método da Posição Falsa.
Exemplo 6 (cont.). Determine as aproximações dos zeros da
função f (x) = x 3 − 9x + 3 tendo como critério de parada
|EAk +1 | = |rk +1 − rk | ≤ 0.001.
(a) Zero no Intervalo [−5, −3].
ak f(bk ) − bk f(ak )
Método da Posição Falsa: rk = .
f(bk ) − f(ak )
Temos a1 = −5, b1 = −3, f (a1 ) < 0 e f (b1 ) > 0.
r1 = −3.0750 f1 = 1.5990 > 0.
r2 = −3.1142 f2 = 0.8263 > 0. |EA2 | = 0.0392.
r3 = −3.1342 f3 = 0.4202 > 0. |EA3 | = 0.0200.
r4 = −3.1443 f4 = 0.2120 > 0. |EA4 | = 0.0101.
r5 = −3.1494 f5 = 0.1065 > 0. |EA5 | = 0.0051.
r6 = −3.1520 f6 = 0.0534 > 0. |EA6 | = 0.0026.
r7 = −3.1532 f7 = 0.0267 > 0. |EA7 | = 0.0012.
r8 = −3.1539 f8 = 0.0134 > 0. |EA8 | = 0.0007 < 0.001.
r̄= −3.1539. Bisseção foram 11 iterações!
O Método da Posição Falsa.
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [−5, −3].

r̄ = −3.1539.
O Método da Posição Falsa.
Exemplo 6 (cont.). Determine as aproximações dos zeros da
função f (x) = x 3 − 9x + 3 tendo como critério de parada
|EAk +1 | = |rk +1 − rk | ≤ 0.001.
(b) Zero no Intervalo [0, 1].
ak f(bk ) − bk f(ak )
Método da Posição Falsa: rk = .
f(bk ) − f(ak )
Temos a1 = 0, b1 = 1, f (a1 ) = 3 > 0 e f (b1 ) = −5 < 0.
r1 = 0.3750 f1 = −0.3223 < 0.
r2 = 0.3386 f2 = −0.0088 < 0. |EA2 | = 0.0364.
r3 = 0.3376 f3 = −0.00022588 < 0. |EA3 | = 0.001.
r̄= 0.3376.
Bisseção foram 10 iterações! com r̄ = 0.3369 e f (r̄) = 0.0060.
O Método da Posição Falsa.
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [0, 1].

r̄ = 0.3376.
O Método da Posição Falsa.
Exemplo 6 (cont.). Determine as aproximações dos zeros da
função f (x) = x 3 − 9x + 3 tendo como critério de parada
|EAk +1 | = |rk +1 − rk | ≤ 0.001.
(c) Zero no Intervalo [2, 3].
ak f(bk ) − bk f(ak )
Método da Posição Falsa: rk = .
f(bk ) − f(ak )
Temos a1 = 2, b1 = 3, f (a1 ) = −7 < 0 e f (b1 ) = 3 > 0.
r1 = 2.7 f 1 = −1.6170.
r2 = 2.8051 f 2 = −0.1742 < 0. |EA2 | = 0.1051.
r3 = 2.8158 f 3 = −0.0170 < 0. |EA3 | = 0.0107.
r4 = 2.8168 f 4 = −0.0016 < 0. |EA4 | = 0.001.
r̄= 2.8168.
Bisseção foram 10 iterações! com r̄ = 2.8174 e f (r̄) = 0.0069.
O Método da Posição Falsa.
Gráfico de f (x) = x 3 − 9x + 3, para x ∈ [2, 3].

r̄ = 2.8169.

Você também pode gostar