Zeros de funções reais · Zeros de funções reais. Agenda •Introdução •Isolamento de...
Transcript of Zeros de funções reais · Zeros de funções reais. Agenda •Introdução •Isolamento de...
Cálculo Numérico
Zeros de funções reais
Agenda
• Introdução
• Isolamento de raízes
• Refinamento
• Bissecção
• Posição Falsa
• Método do ponto fixo (MPF)
• Método de Newton-Raphson
• Método da secante
prof. Daniel Oliveira
Introdução
• Um número real ξ é um zero da função f(x) ou uma raiz da equação f(x) = 0 se f(ξ) = 0
• Os valores de x que anulam f(x) podem ser reais ou complexos
• Os zeros de função são representados pelas abscissa dos pontos onde uma curva intercepta o eixo X
prof. Daniel Oliveira
Introdução
prof. Daniel Oliveira
Introdução
• Fases para obtenção da raiz
– Isolamento
– Refinamento
prof. Daniel Oliveira
Isolamento de raízes
• Teorema 1
“ Seja f(x) uma função contínua num intervalo [a,b]. Se f(a).f(b) < 0 então existe pelo menos um ponto x=ξ entre a e b que é zero de f(x).”
Sob a hipótese do teorema:
“Se f’(x) existir e preservar o sinal em (a,b), então este intervalo contém um único zero de f(x)”
prof. Daniel Oliveira
Isolamento de raízes
prof. Daniel Oliveira
-2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
a
b
Isolamento de raízes
prof. Daniel Oliveira
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
ba
Isolamento de raízes
• Seja: f(x) = x3-9x+3
prof. Daniel Oliveira
Isolamento de raízes
• Analisando os valores e mudança de sinal
prof. Daniel Oliveira
x -∞ -100 -10 -5 -3 -1 0 1 2 3 4 5
f(x) - - - - + + + - - + + +
Isolamento de raízes
• Processos de aproximação das raízes:
– Esboçar o gráfico da função e localizar os pontos aonde a curva toca o eixo x, ou;
– A partir de f(x)=0 obter h(x)=g(x), esboçar os dois gráficos e localizar os pontos aonde se interceptam. Pois f(ξ)=0 ↔ g(ξ)=h(ξ), ou;
– Utilização de softwares para traçar o gráfico da função.
prof. Daniel Oliveira
Isolamento de raízes
• f(x) = x3-9x+3
prof. Daniel Oliveira
1
2
3
( 4, 3)
(0,1)
(2,3)
• Escrevendo:
Isolamento de raízes
prof. Daniel Oliveira
3( )
( ) 9 3
g x x
h x x
ξ2ξ1
ξ3
Refinamento
• Todos os métodos são da classe dos métodos iterativos
• Método iterativo – conjunto de instruções executadas passo a passo, podendo ser repetidas em ciclos
• Cada ciclo é chamado de iteração
• Estes métodos fornecem apenas uma aproximação para a solução exata
prof. Daniel Oliveira
Refinamento
prof. Daniel Oliveira
Refinamento
• Critérios de parada
– Quando parar o algoritmo ???
– Xk está suficientemente próximo da raiz???
prof. Daniel Oliveira
x é a raiz aproximada com precisão ɛ se:
)
ou
) ( )
i x
ii f x
Refinamento
• Como ξ não é conhecida, temos que a cada iteração reduzir o intervalo que contém a raiz, tal que:
prof. Daniel Oliveira
( , )a b
e
b a
[ , ], .
Portanto, [ , ] pode ser tomado como
x a b x
x a b x
Refinamento
prof. Daniel Oliveira
f(x)
x
a
b
ξ
ɛ
Bissecção
• A função f(x) é contínua no intervalo [a,b] e tal que f(a)f(b) < 0
• O objetivo é reduzir o intervalo de tal forma que (b-a)<ɛ
• Este método reduz o intervalo dividindo-o ao meio sucessivamente
prof. Daniel Oliveira
Bissecção
prof. Daniel Oliveira
0 0 0
0 00 0 1 0
0 1 0
( ) 0 ( , )
( ) 02
( ) 0
f a a xa b
x f b a a
f x b x
1 1 1
1 11 1 2 1
1 2 1
( ) 0 ( , )
( ) 02
( ) 0
f a x ba b
x f b a x
f x b x
2 2 2
2 22 2 3 2
2 3 1
( ) 0 ( , )
( ) 02
( ) 0
f a x ba b
x f b a x
f x b x
Bissecção
Seja f(x) contínua em [a,b] e tal que f(a)f(b) < 0
1) Dados Iniciais: a) Intervalo inicial [a,b]
b) Precisão ɛ
2) Se (b-a) < ɛ, então escolha para x aproximado qualquer x em *a,b+. FIM
3) K = 1
4) M = f(a)
5) x = (a + b) / 2
6) Se Mf(x) > 0, faça a = x. Vá para o passo 8
7) b = x
8) Se (b-a) < ɛ, escolha para x aproximado qualquer x em *a,b+. FIM
9) k = k + 1. Volte para o passo 5.
prof. Daniel Oliveira
Bissecção
prof. Daniel Oliveira
3
3
( ) 9 3
[0,1]
10
f x x x
I
A M=f(A) B f(B) X f(X) Erro
0,000000000 3,000000000 1,000000000 -5,000000000 0,500000000 -1,375000000
0,000000000 3,000000000 0,500000000 -1,375000000 0,250000000 0,765625000 0,250000000
0,250000000 0,765625000 0,500000000 -1,375000000 0,375000000 -0,322265625 0,125000000
0,250000000 0,765625000 0,375000000 -0,322265625 0,312500000 0,218017578 0,062500000
0,312500000 0,218017578 0,375000000 -0,322265625 0,343750000 -0,053131104 0,031250000
0,312500000 0,218017578 0,343750000 -0,053131104 0,328125000 0,082202911 0,015625000
0,328125000 0,082202911 0,343750000 -0,053131104 0,335937500 0,014474392 0,007812500
0,335937500 0,014474392 0,343750000 -0,053131104 0,339843750 -0,019343913 0,003906250
0,335937500 0,014474392 0,339843750 -0,019343913 0,337890625 -0,002438627 0,001953125
0,335937500 0,014474392 0,337890625 -0,002438627 0,336914063 0,006016918 0,000976563
Bissecção
• Convergência
“Se f(x) é contínua no intervalo [a,b] e f(a)f(b)<0,o método da bissecção vai gerar uma sequência{xk} que converge para a raiz.”
prof. Daniel Oliveira
Bissecção
• Estimativa do número de iterações
prof. Daniel Oliveira
0 0log( ) log( )
log(2)
b ak
Posição Falsa
• O método utiliza a média ponderada entre a e b com pesos |f(b)| e |f(a)|
prof. Daniel Oliveira
( ) ( )
( ) ( )
af b bf ax
f b f a
Posição Falsa
1) Dados iniciaisa) Intervalo inicial [a,b]
b) Precisões ɛ1 e ɛ2
2) Se (b-a) < ɛ1 então escolha a raiz para qualquer x em [a,b]. FIM. Se |f(a)| < ɛ2 ou se |f(b)| < ɛ2 → escolha a ou b como raiz e FIM.
3) k = 1
4) M = f(a)
5) x = [af(b)-bf(a)]/[f(b)-f(a)]
6) Se |f(x)| < ɛ2, escola x como raiz e FIM
7) Se Mf(x) > 0, faça a=x. Vá para o passo 9
8) b = x
9) Se b-a < ɛ1, então escolha a raiz para qualquer x em [a,b]. FIM.
10) k = k + 1. Volte para o passo 5.
prof. Daniel Oliveira
Posição Falsa
prof. Daniel Oliveira
3
4
1 2
( ) 9 3
[0,1]
5 10
f x x x
I
x
a f(a) b f(b) x f(x) Erro b-a0,000000000 3,000000000 1,000000000 -5,000000000 0,375000000 -0,322265625 1,0000000000,000000000 3,000000000 0,375000000 -0,322265625 0,338624339 -0,008790199 0,313475426 0,3750000000,000000000 3,000000000 0,338624339 -0,008790199 0,337635046 -0,000225884 0,008564315 0,3386243390,000000000 3,000000000 0,337635046 -0,000225884 0,337609625 -0,000005795 0,000220089 0,337635046
Posição Falsa
• Convergência
“Se f(x) é contínua no intervalo *a,b+ com f(a)f(b)<0 então o método da posição falsa gera uma seqüência convergente”
prof. Daniel Oliveira
MPF
• Consiste em transformar a equação f(x)=0 em uma equação equivalente x = ϕ(x)
• A partir de uma aproximação inicial x0 gerar uma seqüência de aproximações para ξ
• A função ϕ(x) é tal que f(ξ)=0 se e somente se ϕ(ξ)= ξ
• O problema de encontrar zero de f(x) é encontrar um ponto fixo de ϕ(x)
prof. Daniel Oliveira
MPF
• Para
prof. Daniel Oliveira
2 6 0x x
2
1
2
3
4
6
6
61
6
1
x
x
x
x
MPF
prof. Daniel Oliveira
MPF
• Nem todas ϕ(x) geram uma seqüência convergente.
• Quais das duas geram uma sequênciaconvergente para a raiz ξ = 2 com x0 = 1.5 ?
prof. Daniel Oliveira
2
1
2
6
6
x
x
MPF
• Convergência
“Seja ξ uma raiz da equação f(x)=0, isolada num intervalo I centrado em ξ. Seja ϕ(x) uma função de iteração para a equação f(x)=0. Se:
• ϕ(x) e ϕ’(x) são continuas em I
• | ϕ’(x)|≤ M < 1, para qualquer x no intervalo I
• X0 pertence ao intervalo I”
prof. Daniel Oliveira
MPF
• Algoritmo
prof. Daniel Oliveira
1) Dados iniciais: x0 aproximação inicial e ξ1 e ξ2 são as precisões
2) Se |f(x0)| < ξ1 , faça x = x0 e FIM3) k = 14) x1 = ϕ(x0)5) Se |f(x1)| < ξ1 ou se |x1-x0|< ξ2 , então faça x = x1 e FIM6) x0=x1
7) k=k+1 e volte para o passo 4
MPF
• Exemplo
prof. Daniel Oliveira
3
3
0
4
1 2
( ) 9 3
1( )
9 3
0.5
5 10
(0,1)
f x x x
xx
x
MPF
• Encontre o zero de f(x)
prof. Daniel Oliveira
2
0
1 2
( ) 6
6( )
1
1.5
0.1
(1.5, 2.5)
f x x x
xx
x
MPF
• Encontre o zero da f(x)
prof. Daniel Oliveira
2
2
0
4
1 2
( ) 4
( )2
0.5
10
(0,1)
x
x
f x e x
ex
x
Método de Newton-Raphson
• Este método é um melhoramento do MPF
• É determinado uma ϕ(x), que acelere a convergência do MPF, tal que ϕ’(ξ) = 0
prof. Daniel Oliveira
( )( )
( )
f xx x
f x
Método de Newton-Raphson
• Escolhido x0, a sequência {xk} será determinada por:
prof. Daniel Oliveira
1
( )
( )
kk k
k
f xx x
f x
Método de Newton-Raphson
• Exemplo:
prof. Daniel Oliveira
2
2
0
( ) 6
6( )
2 1
1.5
2
f x x x
x xx x
x
x
k X f(x) f´(x) Phi(x) Erro
0 1,5000 -2,2500 4,0000 2,0625
1 2,0625 0,3164 5,1250 2,0008 0,061738
2 2,0008 0,0038 5,0015 2,0000 0,000762
3 2,0000 0,0000 5,0000 2,0000 1,16E-07
Método de Newton-Raphson
• O método irá convergir se f(x),f´(x) e f´´(x) forem contínuas no intervalo I que contém a raiz de f(x) = 0.
• Em geral, afirma-se que o método de Newton converge desde que x0 seja escolhido “suficientemente próximo” da raiz ξ.
prof. Daniel Oliveira
Método de Newton-Raphson
• Exemplo
prof. Daniel Oliveira
2
2
0
( ) 6
6( )
2 1
0
2
f x x x
x xx x
x
x
k X f(x) f´(x) Phi(x) Erro
0 0,0000 -6,0000 1,0000 6,00001 6,0000 36,0000 13,0000 3,2308 2,7692312 3,2308 7,6686 7,4615 2,2030 1,0277563 2,2030 1,0563 5,4060 2,0076 0,195394 2,0076 0,0382 5,0152 2,0000 0,0076125 2,0000 0,0001 5,0000 2,0000 1,16E-05
Método de Newton-Raphson
• Algoritmo
prof. Daniel Oliveira
1) Dados iniciais: x0 aproximação inicial e ξ1 e ξ2 são as precisões
2) Se |f(x0)| < ξ1 , faça x = x0 e FIM3) k = 14) x1 = x0-f(x0)/f’(x0)5) Se |f(x1)| < ξ1 ou se |x1-x0|< ξ2 , então faça x = x1 e FIM6) x0=x1
7) k=k+1 e volte para o passo 4
Método de Newton-Raphson
• Determine o zero de f(x)
prof. Daniel Oliveira
3
0
4
1 2
( ) 9 3
0,5
(0,1)
10
f x x x
x
k X f(x) f´(x) Phi(x) Erro0 0,5000 -1,3750 -7,5000 0,31671 0,3167 0,1818 -8,0500 0,3392 0,0225782 0,3392 -0,0142 -7,9823 0,3375 0,0017743 0,3375 0,0012 -7,9876 0,3376 0,000154 0,3376 -0,0001 -7,9871 0,3376 1,26E-05
Método de Newton-Raphson
• Utilizando o método de Newton calcule a raiz quadrada de 3 com uma precisão de 10-5
prof. Daniel Oliveira
k X f(x) f´(x) Phi(x) Erro0 1,00000 -2,00000 2,00000 2,000001 2,00000 1,00000 4,00000 1,75000 0,252 1,75000 0,06250 3,50000 1,73214 0,0178573 1,73214 0,00032 3,46429 1,73205 9,2E-054 1,73205 0,00000 3,46410 1,73205 2,45E-09
2( ) 3
1,7320508076
f x x
Método da secante
• Uma grande desvantagem do método de Newton é calculo da f’(x)
• Pode-se calcular f’(x) pelo quociente das diferenças:
prof. Daniel Oliveira
1
1
( ) ( )( ) k k
k
k k
f x f xf x
x x
Método da secante
• Assim ϕ(x) é dada por:
prof. Daniel Oliveira
1 1
1
( ) ( )( )
( ) ( )
k k k kk
k k
x f x x f xx
f x f x
1 1
1
( )( )
( ) ( )
kk k k k
k k
f xx x x x
f x f x
Método da secante
• Exemplo
prof. Daniel Oliveira
2
0
1
( ) 6
1,5
1,7
2
f x x x
x
x
k X f(x)0 1,50000 -2,251 1,70000 -1,412 2,03571 0,1798473 1,99774 -0,011314 1,99998 -8E-055 2,00000 3,63E-08
Método da secante
• Algoritmo
prof. Daniel Oliveira
1) Dados iniciais: x0 , x1 aproximação inicial e ξ1 e ξ2 são as precisões
2) Se |f(x0)| < ξ1 , faça x = x0 e FIM3) k = 14) x2 = x1- [f(x1)/ (f(x1)-f(x0 ))]*(x1-x0) 5) Se |f(x2)| < ξ1 ou se |x2-x1|< ξ2 , então faça x = x1 e FIM6) x0=x1 e x1 = x2
7) k=k+1 e volte para o passo 4
Método da secante
• Determine o zero da f(x)
prof. Daniel Oliveira
3
0
1
4
1 2
( ) 9 3
0
1
(0,1)
5 10
f x x x
x
x
k X f(x) Erro(Xk - Xk-1)0 0,00000 3,000001 1,00000 -5,00000 1,00000 2 0,37500 -0,32227 0,62500 3 0,33194 0,04910 0,04306 4 0,33763 -0,00022 0,00569 5 0,33761 0,00000 0,00003