[Maple OLE 2.0 Object]

Cálculo Diferencial e Integral: um KIT de sobrevivência

This woksheet is in Portuguese language.

Prof. Doherty Andrade

O Método da Bissecção

O método da bissecção é o mais simples dos métodos numéricos utilizados para obter numericamente a solução de uma equação não-linear f(x)=0 .

Seja f:[a,b] -> R uma função contínua tal que [Maple Math] <0. O Teorema do Valor Intermediário nos diz que

existe [Maple Math] entre a e b tal que f( [Maple Math] )=0.

Dividindo o intervalo [a,b] ao meio, seja m o seu ponto médio. Se f(m) =0, então m é uma raiz.

Se [Maple Math] <0, então novamente pelo TVI existe uma raiz entre a e m . Neste caso, tomamos b=m repetimos o procedimento.

Se [Maple Math] >0, então temos que

[Maple Math] <0 ou seja [Maple Math] <0 e assim [Maple Math] <0. Ou seja, pelo TVI existe uma raiz entre m e b . Neste caso, tomamos a=m e repetimos o procedimento.

Neste processo, são criadas duas sequências numéricas que são os extremos dos intervalos encaixados [Maple Math] = [ [Maple Math] , [Maple Math] ], com ponto médio [Maple Math] do intervalo [ [Maple Math] , [Maple Math] ].

Notemos que a cada passo o intervalo [ [Maple Math] ] é dado por

[ [Maple Math] ] se [Maple Math] <0

e

[ [Maple Math] ] se [Maple Math] >0.

O Algoritmo da bissecção é assim determinado

bisseccao(f, a, b, raiz, [Maple Math] ) ( aqui [Maple Math] é a tolerancia)

Passo1. Defina m: = [Maple Math] .

Passo 2. Se [Maple Math] , então tome raiz:= m e saia.

Passo 3. Se [Maple Math] , então tome b:= m; caso contrário, tome a:=m.

Passo 4. Volte ao passo 1.

OBS : após n passos, a raiz estará contida no intervalo [ [Maple Math] ] de comprimento

[Maple Math] = [Maple Math]

assim, a raiz [Maple Math] é tal que | [Maple Math] - [Maple Math] | < [Maple Math]

que é uma estimativa para o erro absoluto dessa aproximação.

Pergunta:

Se desejo obter 0< | [Maple Math] - [Maple Math] | < [Maple Math] , para um dado [Maple Math] , como escolher n ? Usando a expressão

| [Maple Math] - [Maple Math] | < [Maple Math]

devemos escolher n tal que [Maple Math] e assim

[Maple OLE 2.0 Object] .

OBS : Note que as sequências ( [Maple Math] ) e ( [Maple Math] ) de extremos dos intervalos [ [Maple Math] , [Maple Math] ] são convergentes, pois são monótonos e limitadas.

Afirmamos que ambas convergem para o mesmo limite. De fato, como [Maple Math]

0 = lim( [Maple Math] ) = lim [Maple Math] - lim [Maple Math] .

Isto mostra que ambas convergem para o mesmo limite L.

Como em cada passo [Maple Math] , então

[Maple OLE 2.0 Object]

segue que f(L)=0 .

Critérios de parada : em geral considera-se [Maple Math]

ou | [Maple Math] |< [Maple Math] , ou ambos.

Agora escrevemos um procedimento para determinar uma aproximação da raiz, usando o método da bissecção.

A sintaxe é bissecao(f, a,b, erro) .

> restart:# zera a memória

> bisseccao:= proc(f,a,b,erro)

> # argumentos: f=funcao

> # a,b extremos do intervalo [a,b] e errro

> local aa, bb, mm, k:

> aa:=evalf(a): bb:=evalf(b):

> if f(aa)*f(bb)>0 then ERROR(`intervalo inválido`) fi:

> for k from 1 do mm:=(aa+bb)/2:

> if f(aa)*f(mm)>0 then aa:=mm

> elif f(aa)*f(mm)<0 then bb:=mm

> else break fi:

> if evalf(abs(aa-bb))< erro then break fi: od:

> print(`A raiz aproximada após`,k-1,`bissecções :`):

> print(mm):print(`o valor f(mm) é`, evalf(f(mm))):

> end:

Testando o procedimento com alguns exemplos

> f:=x-> (x/2)^2-sin(x);# tem uma raiz em [1.5, 2.0].

[Maple Math]

> bisseccao(f, 1.5, 2,0.001);

[Maple Math]

[Maple Math]

[Maple Math]

> f:=x-> x*tan(x)-1; # tem infinitas solucoes, a menor está em [0.5,1].

[Maple Math]

> bisseccao(f, .5, 1,0.0001); #lista 2 exercicio 2

[Maple Math]

[Maple Math]

[Maple Math]

> plot({tan(x),1/x},x=.5...1, title=`intercçao de 2 curvas`);

[Maple Plot]

> f:=x-> 2^x-4*x; # tem solucao, a menor está em [0.5,1].

[Maple Math]

> plot({2^(x),4*x},x=0..1);

[Maple Plot]

> bisseccao(f, 0, 1,0.0001);

[Maple Math]

[Maple Math]

[Maple Math]

>