1. CCáálculo Numlculo Numééricorico
ResoluResoluçção Numão Numéérica derica de
EquaEquaççõesões –– MMéétodostodos ––
Parte IIParte II
Prof. Jorge Cavalcanti – jorge.cavalcanti@univasf.edu.br
MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO
NUMÉRICO DA UFCG - www.dsc.ufcg.edu.br/~cnum/
2. 2
Métodos Iterativos para a Obtenção de
Zeros Reais de Funções
BissecBissecççãoão
Falsa PosiFalsa Posiççãoão
Falsa PosiFalsa Posiçção Modificadoão Modificado
Ponto FixoPonto Fixo
NewtonNewton--RaphsonRaphson
SecanteSecante
Cálculo Numérico – BissecBissecççãoão
3. 3
Método da BissecBissecççãoão
Dada uma função f(x)f(x) contínua no intervalo
[a,b][a,b] onde existe uma raiz única, é possível
determinar tal raiz subdividindo sucessivas
vezes o intervalo que a contém pelo ponto
médio de aa e bb.
Cálculo Numérico – BissecBissecççãoão
4. 4
Definição do Intervalo Inicial
Atribui-se [a,b][a,b] como intervalointervalo inicialinicial
a0 = aa
b0 = bb
Condições de Aplicação
f(a)*f(b) < 0f(a)*f(b) < 0
Sinal da derivada constanteconstante
Cálculo Numérico – BissecBissecççãoão
5. 5
Análise Gráfica
x
a = a0
ξξξξξξξξ
f(x)
b = b0
xx11 = (a + b)/2= (a + b)/2
xx11
x
a = a1
ξξ
f(x)
x1 = b1
xx22 = (a + x= (a + x11)/2)/2
xx22
x
ξξ
f(x)
x1=b2
xx33 = (x= (x22 + x+ x11)/2)/2
x2=a2
xx33
Repete-se o processo até que o
valor de x atenda às condições
de parada.
Repete-se o processo até que o
valor de xx atenda às condicondiççõesões
de paradade parada.
Cálculo Numérico – BissecBissecççãoão
6. 6
Determina-se qual o subintervalo –
[a , x[a , x11]] ou [x[x11 , b], b] – que contém a raizraiz
Calcula-se o produto f(a)*f(xf(a)*f(x11))
Verifica-se se f(a)*f(xf(a)*f(x11) < 0) < 0
Se verdadeiroverdadeiro ξξ ∈∈ (a, x(a, x11))
(Logo a = aa e b = xx11)
Caso contrarioCaso contrario ξξ ∈∈ (x(x11 , b), b)
(Logo a = xx11 e b = bb)
Definição de Novos Intervalos
Repete-se o processo até que o valor de xx
atenda às condicondiçções de paradaões de parada.
Cálculo Numérico – BissecBissecççãoão
8. 8
Aproximação de zero, dependente do
equipamento utilizado e da precisão
necessária para a solução do problema
TolerânciaTolerância (εεεεεεεε )
A tolerância é uma
estimativa para o erro
absoluto desta aproximação.
A tolerânciatolerância é uma
estimativa para o erroerro
absolutoabsoluto desta aproximação.
Cálculo Numérico – BissecBissecççãoão
9. 9
Condições de Parada
Se os valores fossem exatosexatos
f(x) = 0f(x) = 0
(x(xkk –– xxk+1k+1)/x)/xkk = 0= 0
Uma vez que são aproximadosaproximados
||f(x)f(x)|| ≤≤ tolerânciatolerância
||(x(xkk –– xxk+1k+1)/x)/xkk|| ≤≤ tolerânciatolerância
Cálculo Numérico – BissecBissecççãoão
10. 10
Algoritmo
k := 0; a0 := a; b0 := b; x0 := a;
xk+1 := (ak + bk)/2;
while critério de parada não satisfeito and k ≤ L
if f(ak)f(xk+1) < 0 then /* raiz em [a/* raiz em [akk , x, xk+1k+1] */] */
ak+1 := ak; bk+1 := xk+1;
else /* raiz em [x/* raiz em [xk+1k+1, b, bkk] */] */
ak+1 := xk+1; bk+1 := bk ;
endif
k := k +1; xk+1 := (ak + bk)/2;
endwhile
if k > L
parada falhou
endif
Cálculo Numérico – BissecBissecççãoão
11. 11
Após nn iterações, a raiz estará contida no
intervalo:
Generalização
====
−−−−
−−−− k
kk
2
ab
ab 00
Cálculo Numérico – BissecBissecççãoão
2
ab
]a[b
1k1k
kk
−−−−−−−− −−−−
====−−−−
12. 12
Deve-se obter o valor de K, tal que
bk – ak < ε, ou seja,
Estimativa do número de iterações
)log()ablog()2log(.k
200
00
00k
k
ab
2
ab
ε
ε
ε
−−−−−−−−>>>>
−−−−
>>>>⇒⇒⇒⇒<<<<
−−−−
Cálculo Numérico – BissecBissecççãoão
)2log(
)log()ablog(
k
00 ε−−−−−−−−
>>>>
13. 13
Ex.: Considerando um intervalo [2,3]e ε=10-2, calcular o
número mínimo de iterações para que tenhamos b-a< ε
(Critério de Parada).
Estimativa do número de iterações
Cálculo Numérico – BissecBissecççãoão
)2log(
)log()ablog(
k
00 ε−−−−−−−−
>>>>
7k
64.6
3010.0
2
)2log(
)10log(2)1log(
k
)2log(
)10log()23log(
k
2
====
≈≈≈≈====
++++
>>>>
−−−−−−−−
>>>>
−−−−
14. 14
Vantagens:Vantagens:
Facilidade de implementação;
Estabilidade e convergência para a solução
procurada;
Desempenho regular e previsível.
O número de interações é
dependente da tolerância
considerada
O número de interações é
dependentedependente da tolerânciatolerância
considerada
Cálculo Numérico – BissecBissecççãoão
15. 15
Desvantagens:Desvantagens:
Lentidão do processo de convergência
(requer o cálculo de f(x)f(x) em um elevado
número de iterações);
Necessidade de conhecimento prévio da
região na qual se encontra a raiz de interesse
(o que nem sempre é possível);
Complexidade da extensão do método para
problemas multivariáveis.
Cálculo Numérico – BissecBissecççãoão
24. 24
Método da BissecBissecççãoão
Calcula a média aritmaritmééticatica dos limites do
intervalo que contém a raiz ([aa, bb] )
Método da Falsa PosiFalsa Posiççãoão
Calcula a média ponderadaponderada dos limites
do intervalo que contém a raiz ([aa, bb] )
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
25. 25
Método da Falsa PosiFalsa Posiççãoão
Calcula a média ponderadaponderada dos limites
do intervalo que contém a raiz ([aa, bb] )
)a(f)b(f
)a(fb)b(fa
X
−−−−
++++
====
)a(f)b(f
)a(bf)b(af
X
−−−−
−−−−
====
xa ξξ
f(x)
bXX
f(b)
f(a)
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
f(a) e f(b) têm sinais opostos
26. 26
Definição do Intervalo Inicial
Atribui-se [a,b][a,b] como intervalo inicialintervalo inicial
a0 = aa
b0 = bb
Condições de Aplicação
f(a)*f(b) < 0f(a)*f(b) < 0
Sinal da derivada constanteconstante
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
27. 27
Definição dos Subintervalos
Subdivide-se o intervalo pelo pontoponto dede
intersecintersecççãoão da reta que liga f(a) a f(b) e o
eixo das abscissas
Verifica-se se, através do teste de
parada, se xx11 é uma aproximaaproximaççãoão dada raizraiz
da equação (ξ)
Se verdadeiroverdadeiro xx11 é a raizraiz procurada
CasoCaso contrcontrááriorio define-se um novonovo intervalo
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
28. 28
Determina-se qual subintervalo - [a[a00 , x, x11]]
ou [x[x11 , b, b00]] - contém a raiz ξξ
Calcula-se o produto f(a)*f(xf(a)*f(x11))
Verifica-se se f(a)*f(xf(a)*f(x11) < 0) < 0
Se verdadeiroverdadeiro ξ ∈ (a0, x1)
Logo: a1 = aa00 e b1 = xx11
CasoCaso contrariocontrario ξ ∈ (x1, b0)
Logo a1 = xx11 e b1 = bb00
Definição do Novo Intervalo
Repete-se o processo até que o valor de xx
atenda às condicondiçções de paradaões de parada.
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
29. 29
Análise Gráfica
Repete-se o processo até
que o valor de x atenda
às condições de parada.
Repete-se o processo até
que o valor de xx atenda
às condicondiçções de paradaões de parada.
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
xa = a0
ξξξξξξξξ
f(x)
b = b0xx11
xa = a1
ξξ
f(x)
x1 = b1xx22
xξξ
f(x)
x1 = b2x2 = a2
xx33
)a(f)b(f
)a(fb)b(fa
X
00
0000
1
−−−−
−−−−
====
)a(f)b(f
)a(fb)b(fa
X
22
2222
3
−−−−
−−−−
====
)a(f)b(f
)a(fb)b(fa
X
11
1111
2
−−−−
−−−−
====
30. 30
Condições de Parada
Se os valores fossem exatosexatos
f(x) = 0f(x) = 0
(x(xkk –– xxk+1k+1)/x)/xkk = 0= 0
Não o sendoNão o sendo
||f(x)f(x)|| ≤≤ tolerânciatolerância
||(x(xkk –– xxk+1k+1)/x)/xkk|| ≤≤ tolerânciatolerância
Cálculo Numérico – Falsa PosiFalsa Posiççãoão
31. 31
Algoritmo
k := 0; a0 := a; b0 := b; x0 := a; F0 := f(a0); G0 := f(b0);
xk+1 := ak - Fk(bk – ak)/(Gk – Fk); ou xk+1 := (akGk- bkFk)/(Gk –
Fk);
while critério de convergência não satisfeito and k≤L
if f(ak)f(xk+1) ≤ 0 then /* raiz em [a/* raiz em [akk , x, xk+1k+1] */] */
ak+1 := ak; bk+1 := xk+1;
else /* raiz em [x/* raiz em [xk+1k+1, b, bkk] */] */
ak+1 := xk+1; bk+1 := bk ;
endif
k := k +1; xk+1 := ak - Fk(bk – ak)/(Gk – Fk);
endwhile
if k>L
convergência falhou
endif
Cálculo Numérico – Falsa PosiFalsa Posiççãoão