cálculo numérico / métodos numéricos solução de equações
TRANSCRIPT
14:29
Idéia da bisseção
x -3 -2 -1 0 1 2 3
f(x) 4385.5 6.4 -1 -0.9 0.5 65.5 17545.1
f(-1.5) = + ou - ?
14:29
Bissecção (algoritmo)
� Dado um intervalo ]a,b[ com f(a) . f(b) < 0� Escolha c = (a+b)/2
� Se f(c) = 0 → FIM� Se f(c) . f(a) < 0
� Existe uma raiz no intervalo ]a,c[
� Se f(c) . f(b) < 0� Existe uma raiz no intervalo ]c,b[
Podemos recomeçar com o novo intervalo e melhorar a aproximação da raiz!
14:29
Bissecção (Exemplo)
� Achar a raiz cúbica de 5� f(x) = x3 -5 =0
existe raiz entre x=1 e x=2f(x=1) = -4f(x=2) = 3
14:29
Programando a bissecção
� exemplo: Excell e f(x) = (x/2)2 - sen(x)
Iter a b c f(a) f(b) f(c) f(a)xf(c)1 1,50000 2,00000 1,75000 -0,434995 0,0907026 -0,218361 0,0949859172 1,75000 2,00000 1,87500 -0,2183609 0,0907026 -0,07518 0,0164162743 1,87500 2,00000 1,93750 -0,0751795 0,0907026 0,0049623 -0,0003730624 1,87500 1,93750 1,90625 -0,0751795 0,0049623 -0,035814 0,0026924645 1,90625 1,93750 1,92188 -0,0358138 0,0049623 -0,015601 0,0005587466 1,92188 1,93750 1,92969 -0,0156014 0,0049623 -0,005363 8,36766E-057 1,92969 1,93750 1,93359 -0,0053634 0,0049623 -0,000212 1,13439E-068 1,93359 1,93750 1,93555 -0,0002115 0,0049623 0,0023727 -5,01829E-079 1,93359 1,93555 1,93457 -0,0002115 0,0023727 0,0010799 -2,28402E-0710 1,93359 1,93457 1,93408 -0,0002115 0,0010799 0,000434 -9,17978E-08
14:29
Erro relativo
� Pode ser mais interessante considerar-se o erro relativo.
|xk+1 - xk|
|xk+1|< ε
Escrevemos esse erro na forma:
|xk+1-xk| < ε . max{1,|xk+1|}
(Por que ?)
14:29
Estudo da convergência (1/3)
� Ruggiero e Lopes Cap. 2
[a0,b0]
[a1,b1]
[a2,b2]
[ak,bk]
...
{ak}: não decrescente e limitada superiormente por b0
{bk}: não crescente e limitada inferiormente por a0
{ } kbxaba
xconstruçãoporx kkkkk
kk ∀<<
+= ,,2
14:29
Estudo da convergência (2/3)
� A cada iteração, a amplitude do intervalo é dividida pela metade:
= x*
temos que provar que f(x*) = 0
ambos convergentes {ak} e {bk}
� Convergência lenta pois se b0-a0>> e se ∋ for muito pequeno, o numero de iterações tende a ser muito grande.
Dada uma precisão ε e um intervalo inicial [a,b], é possível estimar, a priori,
o numero de iterações que serão efetuadas pelo método da bissecção até que
se obtenha b-a < ε .
k001k1k
kk2
ab
2
abab
−=−=− −− ,
deve-se obter um valor de k tam que bk-ak< ε , ou seja,
)log()ablog()2log(kab
22
ab00
00kk
00 ε−−>⇒ε−>⇒ε<−
)2log(
)log()ablog(k 00 ε−−>⇒ .
Por exemplo, se desejamos encontrar z, o zero da função f(x)=xlog(x)-1 que
está no intervalo [2,3], com precisão 210−=ε , quantas iterações, no mínimo,
devemos efetuar? K=7.
Faça aao = e bbo = e calculamos 2
)ba(x1
+= .
Se f(x1)=0, então 1xxz ==
Senão
Se f(x1) tem o mesmo sinal de f(ao) então [ ]01 b,xz∈ e então faça
11 xa = e 01 bb =
Se f(x1) tem o mesmo sinal de f(b) então [ ]10 x,az∈ e então faça
01 aa = e 11 xb =
Desta maneira conseguimos um novo intervalo [a1,b1] onde se encontra a raiz
z. Para encontrarmos um novo intervalo [a2,b2] basta aplicar o mesmo
procedimento.