Sei sulla pagina 1di 15

Zeros Reais de Func oes Reais

Introdu cao
Metodo da bissec cao
Introdu cao
Objetivo:
Dada a fun cao
f : D
obter
D
tal que
f() = 0.
Dizemos que:
e um zero de f ou
uma raiz da equa cao f(x) = 0.
Gracamente:
e a abcissa do ponto onde a curva correspondente `a f intercepta o eixo x:

1

3
x
f(x)
Figura 1: e a abcissa do ponto onde a curva correspondente `a f intercepta
o eixo x
2
Como obter as razes reais de uma equa cao?
Atraves de metodos iterativos:
a partir de uma aproxima cao inicial: x
0
gerar uma sequencia de aproxima coes x
k
ate que um criterio de parada seja atingido.
O processo de obten cao das razes e realizado em duas fases:
FASE I: Localiza cao ou isolamento das razes: obtemse um intervalo [a, b]
que contem a raiz ou uma aproxima cao para a raiz, x
0
. Em geral, esta fase
e realizada gracamente.
FASE II: escolhida uma aproxima cao inicial: x
0
ou intervalo inicial: [a
0
b
0
]
gerar novas aproxima coes ate que um criterio de parada se verique.
Os varios metodos para resolu cao de equa coes f(x) = 0 diferem na forma
como sao geradas as sequencias de aproxima coes: x
k
ou [a
k
, b
k
].
FASE I: Isolamento das razes
Localiza cao ou isolamento das razes:
obtemse um intervalo [a, b] que contem a raiz ou uma aproxima cao para a
raiz, x
0
.
TEOREMA: Seja f uma fun cao contnua num intervalo [a, b].
Se f(a)f(b) < 0 entao existe pelo menos um n umero real [a, b] que e
raiz da equa cao: f(x) = 0.
3

a
b x
f(x)

1

2

3
a
b x
f(x)

1

2
a
b x
f(x)
Figura 2: (a) f admite um zero em [a, b]; (b) f admite tres zeros distintos
em [a, b]; (c) f admite dois zeros distintos em [a, b]
.
Condi cao para que o intervalo contenha uma unica raiz de f(x) = 0:
Supor o intervalo (a, b), tal que f(a)f(b) < 0.
Se a primeira derivada de f existe e preserva sinal em (a b):
f

(x) > 0, x (a, b) ou f

(x) > 0, x (a, b)


entao este intervalo contem um unico zero de f.
4

a
b x
f(x)
Figura 3: f

(x) > 0, x (a, b)


Localiza cao graca das razes
Exemplo: f(x) = sen(x) x/2
Op cao 1: tra car o graco de f:
os zeros de f sao as abcissas dos pontos onde a curva intercepta o eixo x;
Op cao 2: considerando que o problema e resolver a equa cao f(x) = 0 obter a
equa cao equivalente g(x) = h(x) e tra car as curvas de g e h no mesmo graco:
neste caso, os zeros de f sao as abcissas dos pontos onde as duas curvas g e
h se interceptam.
Op cao 1: tra car o graco de f(x) = sen(x) x/2:
Op cao 2: f(x) = 0 sen(x) x/2 = 0 sen(x) = x/2
portanto, tra car os gracos de g(x) = sen(x) e h(x) = x/2.
Exemplo 2: f(x) = sqrt(x) 5exp(x):
5
5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10
6
5
4
3
2
1
0
1
2
3
4
sen(x) x/2
5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10
2
1
0
1
2
3
4
sen(x)=x/2
g(x) = sen(x)
h(x) = x/2
Figura 4: (a) graco de f(x) = sen(x) x/2; (b) gracos de g(x) = sen(x)
e h(x) = x/2
.
Op cao 1: tra car o graco de f(x) = sqrt(x) 5exp(x):
Op cao 2: f(x) = 0 sqrt(x) 5exp(x) = 0 sqrt(x) = 5exp(x)
portanto, tra car os gracos de g(x) = sqrt(x) e h(x) = 5exp(x).
1 0.5 0 0.5 1 1.5 2 2.5 3
1
0.5
0
0.5
1
1.5
2

f(x) = sqrt(x) 5exp(x)


Figura 5: graco de f(x) = sqrt(x) 5exp(x)
.
6
1 0 1 2 3
1
0
1
2
3
4
5

g(x) = sqrt(x)
h(x) = 5exp(x)
Figura 6: gracos de g(x) = sqrt(x) e h(x) = 5exp(x)
.
Exemplo 3: f(x) = tg(x) x/2
Op cao 2: f(x) = 0 tg(x) x/2 = 0 tg(x) = x/2
portanto, tra car os gracos de g(x) = tg(x) e h(x) = x/2.
12 10 8 6 4 2 0 2 4 6 8
30
25
20
15
10
5
0
5
10
equacao : x/2 = tan(x)
Figura 7: gracos de g(x) = tg(x) e h(x) = x/2
.
7
FASE II: Renamento da aproxima cao inicial obtida na Fase I
Nesta fase sao acionados os metodos para gerar as seqencias de aproxima coes
ate que um criterio de parada se verique.
Criterios de Parada para os Metodos Iterativos
Raiz Aproximada x com precisao :
(a) |x | < ou
(b) |f(x)| < .
Como realizar o teste |x | < se a raiz nao e conhecida?
reduzindo o intervalo que contem a raiz, pois:
se [a, b] e b a < ,
entao x [a, b] teremos que |x | < .
2 1 0 1 2 3 4 5
1
0
1

a
b x
f(x)
Figura 8: b a < |x | < , x [a, b]
8
Os testes (a) e (b) nao sao equivalentes:
Podese ter uma aproxima cao tal que
|f()| < , mas | | >> .
ou
podese ter uma aproxima cao tal que
| | < , mas |f()| >> .
2 1 0 1 2 3 4 5
1
0
1
x
f(x)
2 1 0 1 2 3 4 5
5
3
1
1
3
5
7
x
f(x)
Figura 9: (a) |f()| < , mas || >> e (b) || < , mas |f()| >>
Finalmente, os algoritmos dos metodos incorporam algum tipo de teste para
detectar falha de convergencia. Estes testes podem ser:
n umero maximo de itera coes:
por exemplo: interromper o processo se k 100.
valor excessivamente grande ( em modulo) para f:
por exemplo: interromper o processo se |f(x
k
)| > 10
30
.
tempo maximo de execu cao.
9
Algoritmo Geral para Metodos Iterativos para obter Zeros de Fun c oes
Esquema geral de um metodo iterativo para obter zeros de fun coes:
obtida uma aproxima cao inicial para o zero de f:
chute inicial x
0
ou intervalo inicial [a
0
, b
0
]
e xadas as tolerancias para os testes de parada:
tol
1
: para o teste de parada com valor de f;
tol
2
: para a amplitude do intervalo;
itmax para o n umero maximo de itera coes;
tol
max
para o valor maximo para modulo de f.
Passo 0: realizar calculos iniciais.
Passo 1: k = 0.
Passo 2: realizar calculos para obter nova aproxima cao:
x
k+1
ou a
k+1
, b
k+1
].
Passo 3: realizar teste de parada com valor de f ou com amplitude de
intervalo:
|f(x
k+1
)| < tol
1
? ou (b
k+1
a
k+1
) < tol
2
?
Se um dos testes se verica: nalizar o processo.
caso contrario:
Passo 4: Se k = itmax, parar pois o n umero maximo de itera coes foi
excedido,
caso contrario:
Passo 5: k = k + 1 voltar ao Passo 2.
10
Metodo da Bissec cao
Suposi coes: f contnua no intervalo [a, b] e tal que f(a)f(b) < 0.
Objetivo: reduzir a amplitude do intervalo inicial [a
0
, b
0
]
ate que a amplitude seja reduzida dentro de uma tolerancia:
(b
k
a
k
) < tol.
Dado o intervalo [a
k
, b
k
];
Escolher o ponto medio:
x
k
= (a
k
+ b
k
)/2;
se f(a
k
)f(x
k
) < 0 entao: a
k+1
= a
k
e b
k+1
= x
k
caso contrario: a
k+1
= x
k
e b
k+1
= b
k
Exemplo:
f(x) = ln(x) + x 5, [3, 4] [a
0
, b
0
] = [3, 4].
f(a
0
) = f(3) = 0.9014 e f(b
0
) = f(4) = 0.3863.
k = 0:
x
0
= (3 + 4)/2 = 3.5 f(3.5) = 0.2472.
Teste do sinal: f(x
0
)f(a
0
) > 0, portanto, a raiz esta no intervalo: [3.5, 4]
e teremos: [a
1
, b
1
] = [3.5, 4].
Amplitude do intervalo: 43.5 = 0.5. k = k+1 = 1 e repete o procedimento.
k = 1:
x
1
= (3.5 + 4)/2 = 3.75 f(3.75) = 0.0718.
Teste do sinal: f(x
1
)f(a
1
) < 0, portanto, a raiz esta no intervalo: [3.5, 3.75]
e teremos: [a
2
, b
2
] = [3.5, 3.75].
11
Amplitude do intervalo: 3.75 3.5 = 0.25. k = k + 1 = 2 e repete o proced-
imento.
k = 2:
[a
2
, b
2
] = [3.5, 3.75] e f(3.5) = 0.2472, f(3.75) = 0.0718.
x
2
= (3.5 + 3.75)/2 = 3.625 f(3.625) = 0.0871.
Teste do sinal: f(x
2
)f(a
2
) > 0, portanto, a raiz esta no intervalo: [3.625, 3.75]
e teremos: [a
3
, b
3
] = [3.625, 3.75].
Amplitude do intervalo: 3.75 3.625 = 0.125. k = k + 1 = 3 e repete o
procedimento.
k = 3:
[a
3
, b
3
] = [3.625, 3.75].
x
3
= (3.625 + 3.75)/2 = 3.6875 f(3.6875) = 0.0076.
Teste do sinal: f(x
3
)f(a
3
) > 0, portanto, a raiz esta no intervalo: [3.6875, 3.75]
e teremos: [a
4
, b
4
] = [3.6875, 3.75].
Amplitude do intervalo: 3.75 3.6875 = 0.0625. k = k + 1 = 4 e repete o
procedimento.
O procedimento e repetido ate que a amplitude do intervalo seja menor que
uma tolerancia:
por exemplo: (b
k
a
k
) < 10
3
,
ou ate que seja obtido x
k
com valor de f em modulo, menor que uma
tolerancia:
por exemplo: |f(x
k
)| < 10
4
.
Neste exemplo, teremos na itera cao 9:
k = 9:
12
[a
9
, b
9
] = [3.693359375, 3.6953125] e
f(a
9
) = 0.000104, f(b
9
) = 0.0024.
x
9
= (3.693359375 + 3.6953125)/2 = 3.694335938
f(3.694335938) = 0.00113.
Teste do sinal: f(x
9
)f(a
9
) < 0, portanto, a raiz esta no intervalo:
[3.693359375, 3.694335938] = [a
10
, b
10
].
Amplitude do intervalo: 3.694335938 3.693359375 = 0.0009765 < 0.001.
Se a tolerancia para o teste do intervalo for 10
3
entao o processo pode ser in-
terrompido e escolhemos um ponto no intervalo [a
10
, b
10
] = [3.693359375, 3.694335938]
como aproxima cao para a raiz.
Em geral, escolhemos o ponto medio deste intervalo:
x = (a
10
+ b
10
)/2 = 3.693847656.
Podemos garantir que |x | < 10
3
.
Temos que: f(x) = 0.000516.
13
Algoritmo para o metodo da Bissec cao
Passo 0: Dados iniciais: [a, b] e tolerancia tol
1
.
Passo 1: Se (b a) < tol
1
escolha x [a, b]. FIM.
Passo 2: k = 0
Passo 3: Fa ca x = (a + b)/2.
Passo 4: Se f(a)f(x) < 0 fa ca b = x, caso contrario, fa ca: a = x.
Passo 5: Se (b a) < tol
1
escolha x [a, b]. FIM.
caso contrario: k = k + 1 e volte ao passo 3.
Convergencia do metodo da Bissec cao
Se f e contnua em [a, b] e f(a)f(b) < 0 entao
o metodo da bissec cao gera uma sequencia x
k
que converge para .
14
N umero de itera coes
Supondo que o criterio de parada e a amplitude do intervalo:
temos o intervalo inicial [a
0
, b
0
].
Na itera cao k = 1: b
1
a
1
= (b
0
a
0
)/2;
Na itera cao k = 2: b
2
a
2
= (b
1
a
1
)/2 = (b
0
a
0
)/2
2
;
Na itera cao k = 3: b
3
a
3
= (b
2
a
2
)/2 = (b
0
a
0
)/2
3
;
Na itera cao k: b
k
a
k
= (b
k1
a
k1
)/2 = (b
0
a
0
)/2
k
.
Dado que queremos obter k, tal que: b
k
a
k
< tol:
b
k
a
k
= (b
0
a
0
)/2
k
< tol
Da:
(b
0
a
0
)/2
k
< tol 2
k
> (b
0
a
0
)/tol
k > (log(b
0
a
0
) log(tol))/log(2)
No exemplo: [a
0
, b
0
] = [3, 4]
Se tol = 10
3
:
teremos que realizar k itera coes para atingir a precisao: b
k
a
k
< 10
3
:
k > (log(1) log(10
3
)/log(2) k > 9.9 k = 10.
Isto e, teremos que realizar no mnimo 10 itera coes para que a amplitude do
intervalo inicial seja reduzida ate atingir a tolerancia de 10
3
.
15

Potrebbero piacerti anche