segundonum2011

Propaganda
Cálculo Numérico / Métodos Numéricos
Solução de equações:
Método da bissecção
13:53
14:29
Exemplos: f: R → R; f(x) =
2-2
2
x
(x+1) e
-1=0
14:29
Idéia da bisseção
f(-1.5) = + ou - ?
x
-3
-2
-1
0
1
2
3
f(x)
4385.5
6.4
-1
-0.9
0.5
65.5
17545.1
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=2
f(x=1) = -4
f(x=2) = 3
14:29
Programando a bissecção
exemplo: Excell e f(x) = (x/2)2 - sen(x)
14:29
Programando a bissecção
exemplo: Excell e f(x) = (x/2)2 - sen(x)
Iter
1
2
3
4
5
6
7
8
9
10
a
1,50000
1,75000
1,87500
1,87500
1,90625
1,92188
1,92969
1,93359
1,93359
1,93359
b
2,00000
2,00000
2,00000
1,93750
1,93750
1,93750
1,93750
1,93750
1,93555
1,93457
c
1,75000
1,87500
1,93750
1,90625
1,92188
1,92969
1,93359
1,93555
1,93457
1,93408
f(a)
-0,434995
-0,2183609
-0,0751795
-0,0751795
-0,0358138
-0,0156014
-0,0053634
-0,0002115
-0,0002115
-0,0002115
f(b)
0,0907026
0,0907026
0,0907026
0,0049623
0,0049623
0,0049623
0,0049623
0,0049623
0,0023727
0,0010799
f(c)
-0,218361
-0,07518
0,0049623
-0,035814
-0,015601
-0,005363
-0,000212
0,0023727
0,0010799
0,000434
f(a)xf(c)
0,094985917
0,016416274
-0,000373062
0,002692464
0,000558746
8,36766E-05
1,13439E-06
-5,01829E-07
-2,28402E-07
-9,17978E-08
14:29
Bissecção encontra uma raiz!
14:29
Critérios de parada
|a-b| < ε1
|f(c)| < ε2
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]
{ak}: não decrescente e limitada
superiormente por b0
[a1,b1]
[a2,b2]
{bk}: não crescente e limitada
inferiormente por a0
...
[ak,bk]
{xk }
a + bk 

por construção  xk = k
, ak < xk < bk , ∀k
2


14:29
Estudo da convergência (2/3)
A cada iteração, a amplitude do intervalo é dividida pela
metade:
ambos convergentes {ak} e {bk}
= x*
temos que provar que f(x*) = 0
14:29
Estudo da convergência (3/3)
em cada iteração temos f(ak).f(bk) ≤ 0
f(x*) = 0
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 < ε .
bk − ak =
bk −1 − ak −1 b0 − a0
=
,
2
2k
deve-se obter um valor de k tam que bk-ak< ε , ou seja,
b0 − a0
b0 − a0
k
<
ε
⇒
2
>
⇒ k log( 2 ) > log( b0 − a0 ) − log( ε )
ε
2k
⇒k >
log( b0 − a0 ) − log( ε )
.
log( 2 )
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 ε = 10 −2 , quantas iterações, no mínimo,
devemos efetuar?
K=7.
Faça ao = a e bo = b e calculamos x1 =
(a +b)
.
2
Se f(x1)=0, então z = x = x1
Senão
Se f(x1) tem o mesmo sinal de f(ao) então z ∈ [x1 ,b0 ] e então faça
a1 = x1 e b1 = b0
Se f(x1) tem o mesmo sinal de f(b) então z ∈ [a0 , x1 ] e então faça
a1 = a0 e b1 = x1
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.
14:29
Pseudo-código
Retirado de Chapra&Canale, Métodos numéricos para engenharia
14:29
Pseudo-código II
Retirado de Chapra&Canale, Métodos numéricos para engenharia
Download