UNIVERSIDADE FEDERAL DA BAHIA
INSTITUTO DE CIÊNCIAS AMBIENTAIS E DESENVOLVIMENTO SUSTENTÁVEL
Disciplina: Cálculo numérico
Rodrigo Emanuel Rodrigues da Silva
Trabalho computacional 2: Método do ponto fixo
Orientador: ProfºKennedy Morais Fernandes
Barreiras-BA
Abril/2012
SUMÁRIO
1-Introdução......................................................................................................................2
2-Soluções aproximadas: o método do ponto fixo............................................................3
3-Estudo de caso – Aplicação em três funções..................................................................4
4- Implementação computacional......................................................................................7
5-Resultados numéricos.....................................................................................................8
6-conclusão......................................................................................................................14
Referências......................................................................................................................15
Capítulo 1
Introdução
O método do ponto fixo é um método numérico aberto. Diferente dos Métodos da
Bissecção e Regula Falsi, que são métodos onde a busca à raiz deve ser realizada dentro
de um intervalo, os Métodos Abertos utilizam-se de estratégias para encontrar zeros de
funções que não dependam de uma delimitação do local onde se encontra a raiz.
Sendo assim, os métodos abertos não necessitam de um conhecimento prévio da
localização da raiz, o que permite a construção de algoritmos que exijam apenas um
único valor inicial de x para convergir à resposta.
Diferente dos métodos intervalares, os métodos abertos podem divergir da raiz
verdadeira ao longo da execução do programa. Contudo, quando há convergência, os
métodos abertos o fazem com velocidade muito superior aos intervalares.
O método do ponto fixo, assim como os demais métodos numéricos aplicados para a
obtenção de zeros de funções reais, é utilizado principalmente na obtenção de zeros
reais para funções nas quais seria muito difícil ou impossível a sua resolução analítica.
Neste trabalho, será apresentado o método do ponto fixo, a sua aplicação para resolver
algumas funções, bem como o algoritmo utilizado para sua implementação. Para
demostrar a convergência ou divergência dos resultados, alguns parâmetros (como a
condição inicial) são modificados, observando o comportamento da solução, para cada
caso.
Para apresentar as equações de interesse, e a aplicação do método numérico, o trabalho
está organizado da seguinte forma:
No capítulo 2 é apresentado o método do ponto fixo, no capítulo 3 são apresentadas três
funções para as quais procura-se suas raízes reais, no capítulo 4 é apresentado o
algoritmo utilizado para implementar a resolução desses problemas, e o capítulo 5
contém os resultados numéricos obtidos. No capítulo 6 temos as conclusões.
Capítulo 2
Soluções aproximadas para raízes de funções reais: o método do ponto fixo
A importância deste método está mais nos conceitos que são introduzidos em seu estudo
que em sua eficácia computacional [2], pois há métodos mais eficientes para encontrar
as raízes reais de funções.
Seja f(x) uma função contínua em [a,b], intervalo que contém uma raiz da equação
f(x)=0. O MPF consiste em transformar esta equação em uma equação equivalente x =
p(x) e a partir de uma aproximação inicial x0 (chute inicial) gerar a seqüência {xk} de
aproximações para ξ(raiz) pela relação pois a função p(x) é tal que f(ξ)=0
se e somente se p(ξ) = ξou seja, ξ é um ponto fixo da função p. Sendo assim, o problema
de encontrar um zero de f(x) se transforma no problema de encontrar p(x).
Uma função p(x) que satisfaz a condição acima é chamada de função de iteração para
aequação f(x)=0.
Gráficamente,uma raiz da equação x=p(x) é a abcissa do pontos de intersecção entre a
curvas y = p(x) e a reta y = x.
A forma geral das funções de iteração p(x) é p(x) = x+A(x)f(x), com a condição de que
em ξse tenha A(ξ) ≠ 0.
Assim sendo, existe mais de uma função p(x), tal que f(x) = 0 ↔ x = p(x). Isso é facil de
provar, é só substituir ξ na equação p(x) = x+A(x)f(x).
2.1. Critério de Parada
Como nos métodos intervalares, no Ponto Fixo as sucessivas substituições são feitas até
que a aproximação para a solução esteja dentro de um erro de tolerância aceito.
Um dos problemas deste método, é que nem sempre ele irá convergir para a solução ξ
ou seja, nem sempre teremos .Sendo assim, para certas escolhas de
p(x), o processo iterativo pode gerar uma sequência que diverge de ξ.
2.2.Teorema para a convergência do método.
Há um teorema que estabelece três critérios de convergência [1] para a sequencia :
Seja ξ uma raiz da equação f(x) = 0, isolada num intervalo I centrado em ξ.
Seja p(x) uma função de iteração para a equação f(x) = 0.
Se
i) p(x) e p’(x) são contínuas em I,
ii)
iii)
Então a sequência { } gerada pelo processo iterativo converge para ξ.
2.3 Considerações sobre o Método do Ponto Fixo
Dada a possibilidade de divergência, devemos ter cuidado ao implementar o Método do
Ponto Fixo. Diferente dos Métodos Intervalares — que dependem apenas do intervalo
dado e da função que deseja se buscar a raiz — o Método do Ponto Fixo é menos
generalizável, pois depende da implementação de quem desenvolve o código na escolha
de cada função p(x) .
Ao selecionar a função de iteração p(x) , o programador deve procurar isolar x na forma
que minimize p′(x) , pois quão menor for esta taxa, maior será a velocidade de
convergência da função.
Por fim, a escolha dos Métodos Abertos deve ser feita quando aplicados à problemas
onde as funções que se deseja buscar os zeros tenham propriedades conhecidas [3].
Capítulo 3
Estudo de caso: aplicação do método do ponto fixo na resolução de três funções
o Exemplo I
a)
Encontrar uma estimativa para a raiz de ,usando o Método da
Iteração Linear (Pontos Fixos).
Sabemos que o intervalo [-1,0] possui uma raiz da equação f(x) = 0.
Escolhendo uma função de iteração p(x):
Escolhendo p(x) = e a aproximação inicial
Então fazemos a aproximação iterativa
O erro estipulado foi de 10-5. Então o processo foi repetido até que f(x) ≤ 10
-5.
Nos capítulo de resultados, veremos que a sequência { } converge para a solução de
f(x) = 0, pois quando K aumenta, f( ) tende a zero (ou seja, tende a ξ).
b)
Após encontrar o zero da função como explicado acima, mudou-se o valor da
aproximação inicial para . Isto foi feito para observar se a sequência continua
convergindo para a solução e se o número de iterações muda ou não (rapidez).
A solução e discussão dos resultados, deste e dos outros dois problemas a seguir, está no
capítulo 5.
o Exemplo II
a)
Encontrar uma estimativa para a raiz de f(x) = x² + x - 6 = 0.
Sabemos que existem várias funções de iteração possíveis, dentre elas:
p1(x) = 6 – x²
p2(x) = ±
p3(x) = 6/x – 1
p4(x) = 6/(x + 1)
escolheremos primeiro a equação p(x) = 6 – x² e o “chute” inicial x0=1,5 e o erro = 10-5
Sabemos que as duas raízes de f(x) = 0 sãoξ =-3 e ξ= 2. Então, fazendo o processo
iterativo , temos:
Podemos ver nesse caso que não está convergindo para ξ = 2. A sequência de
iterações está divergindo.
b)
Escolhendo p(x) = e x0 = 1,5 teremos:
Podemos ver que está convergindo para a solução ξ = 2.
A análise mais completa está no capítulo 5.
o Exemplo III
a) Encontrar uma raiz de f(x) = .Sabendo que uma das
raízes está entre (0; 1) e com erro = 5 x 10-4
e com
Podemos encontrar uma função de iteração fazendo:
ã
assim, aplicamos a formula recursiva e estabelecendo como critério de
parada que: e que o nº máximo de iterações é 100.
Conforme veremos, este processo convergirá para uma raiz da equação f(x) = 0.
b) Será resolvida a mesma equação acima, porém com uma estimativa inicial
diferente: . Esta sequência divergirá da raiz.
Capítulo 4
Implementação computacional
o Exemplo Ia)
Algoritmo 1 – função f (real x)
1:
2: retorna f
Algoritmo 2 – função p (real x)
1:
2: retorna p
Algoritmo 3 – função principal
1: real x0, x, x_anterior, f, p, Erro
2: inteiro i, itmax
3:i=0
4: itmax=20 ! número máx. de iterações
5: x0 = -1.0
6: x_anterior=x0
7: erro = 10.0-5
8: x=x_anterior
9: imprima: i,x,f(x), abs(f(x))
10:i=i+1
11: faça enquanto (abs(f(x)) > erro e i<=itmax)
12: x_anterior = x
13: x = p(x_anterior)
14: imprima: i,x,f(x), abs(f(x))
15: i=i+1
16: fim enquanto
17: fim
Obs: Para os outros dois exemplos (II e III), o algoritmo é o mesmo, é só
mudar os valores de x0 e mudar as funções p(x) e f(x).
Capítulo 5
Resultados numéricos
o Exemplo Ia)
i x f(x) erro
0 -1 0,63212 0,63212
1 -0,60653066 -0,177359771 0,177359771
2 -0,73840315 6,73628E-02 6,73628E-02
3 -0,69128605 -2,30550E-02 2,30550E-02
4 -0,707765096 8,18722E-03 8,18722E-03
5 -0,701957409 -2,87003E-03 2,87003E-03
6 -0,703998746 1,01068E-03 1,01068E-03
7 -0,703280563 -3,55343E-04 3,55343E-04
8 -0,70353315 1,25005E-04 1,25005E-04
9 -0,703444304 -4,39661E-05 4,39661E-05
10 -0,703475554 1,54646E-05 1,54646E-05
11 -0,703464562 -5,43939E-06 5,43939E-06
Tabela 1-Exemplo I a
Ao observar os dados da tabela 1acima, pode-se perceber que a sequência de
começando com x0 = -1, está convergindo para que é
uma raiz de .Isto foi feito em 11 iterações, usando a função de
iteração p(x) = . O gráfico1 abaixo mostra o ponto .
Gráfico 1 – Exemplo I a
o Exemplo Ib)
Neste exemplo, a mesma equação f (x) do exemplo I a) foi resolvida, usando a mesma
p(x), mas com o valor inicial . Pelos dados obtidos na tabela 2, vemos que a
sequencia converge para o mesmo resultado, com a diferença de que a convergencia é
mais lenta (demora 14 iterações para que o erro seja menor que o erro estipulado).
i x f(x) erro
0 5,00000 -123,41316 123,41316
1 -12,18249 148,41315 148,41315
2 -0,00226 -0,99773 0,99773
3 -0,99887 0,62944 0,62944
4 -0,60687 -0,17676 0,17676
5 -0,73828 0,06712 0,06712
6 -0,69133 -0,02297 0,02297
7 -0,70775 0,00816 0,00816
8 -0,70196 -0,00286 0,00286
9 -0,70400 0,00101 0,00101
10 -0,70328 -0,00035 0,00035
11 -0,70353 0,00012 0,00012
12 -0,70344 -0,00004 0,00004
13 -0,70348 0,00002 0,00002
14 -0,70346 -0,00001 0,00001
Tabela 2- Exemplo I b
o Exemplo II a)
Para estimar a raiz de f(x) = x² + x - 6 = 0, foi utilizada a função de iteração
p(x) = 6 – x² e o “chute” inicial x0=1,5. Como já vimos no capítulo 3, e na tabela 3
abaixo, a sequência diverge.
i x f(x) erro
0 1,5 -2,25 2,25
1 3,75 11,8125 11,8125
2 -8,0625 50,94140625 50,94140625
3 -59,00390625 3416,457047 3416,457047
4 -3475,460953 12075347,37 12075347,37
5 -12078822,83 1,45898E+14 1,45898E+14
6 -1,45898E+14 2,13E+28 2,13E+28
7 -2,13E+28 4,53E+56 4,53E+56
8 -4,53E+56 2,05E+113 2,05E+113
9 -2,05E+113 4,21E+226 4,21E+226
10 -4,21E+226 (+) infinito (+) infinito
11 (-) infinito NaN NaN
Tabela 3 – Exemplo II a
Gráfico 2 – Exemplo II a
O gráfico2 acima mostra o comportamento de xk que está divergindo da solução quando
k aumenta. As soluções de f(x)=0 são os dois pontos onde a reta y = x encontra a curva
y=p(x), estes são pontos fixos de p.
o Exemplo II b)
Aqui foi resolvida a mesma equação f(x) doexemplo I a acima, mas utilizando a função
de iteração p(x) = e x0 = 1,5. Como vimos, a sequência convergirá para a raiz
ξ = 2. Isto mostra que a função p aqui escolhida satisfaz os requisitos para convergência
do teorema explicado no capítulo 2. Na tabela 4 abaixo temos os valores de i, x, f(x) e o
erro. Quando o erro foi menor que 10-5
o processo iterativo foi finalizado, obtendo-se o
resultado. O gráfico 3 mostra essa convergência.
i x f(x) erro
0 1,5 -2,25 2,25
1 2,12132 0,62132 0,62132
2 1,96944 -1,51884E-01 1,51884E-01
3 2,00763 3,81900E-02 3,81900E-02
4 1,99809 -9,53387E-03 9,53387E-03
5 2,00048 2,38432E-03 2,38432E-03
6 1,99988 -5,96026E-04 5,96026E-04
7 2,00003 1,49010E-04 1,49010E-04
8 1,99999 -3,72523E-05 3,72523E-05
9 2,00000 9,31308E-06 9,31308E-06
Tabela 4 – Exemplo II b
Gráfico 3 – Exemplo II b
Gráfico 4 – Exemplo II b
No gráfico 3, observa-se o processo iterativo convergindo para a raiz (solução) onde as
curvas se encontram. No gráfico 4 vemos que f(x)=0 quando x é aproximadamente 2.
o Exemplo III a)
Aqui foi estimada uma raiz de f(x) = . Sabendo que uma das
raízes está entre (0; 1); com erro = 5 x 10-4
e com . Utilizando a função de
iteração
, obteve-se uma sequência convergente, encontrando a seguinte
raiz: x = 0.33762. Este resultado foi obtido após apenas 3 iterações, isso porque o valor
inicial escolhido foi um bom “chute”, e porque a função p escolhida apresentou boa
convergência, preenchendo os critérios de convergência explicados no capítulo 2.
Abaixo, na tabela 5, seguem os resultados.
i x f(x) erro
0 0,5 -1,375 1,375
1 0,347222232 -8,31378E-02 8,31378E-02
2 0,337984704 -3,25311E-03 3,25311E-03
3 0,337623258 -1,23825E-04 1,23825E-04
Tabela 5 – Exemplo III a
-2,5
-2
-1,5
-1
-0,5
0
0,5
1
0 0,5 1 1,5 2 2,5
f(x)
x
f(x)
Gráfico 5-Exemplo III a – veja que f(x)=0 quando x=0,33762.
o Exemplo III b)
Este exemplo é igual ao anterior, mudando apenas a estimativa inicial, que agora é x0=3.
Vemos nos resultados abaixo, que essa pequena mudança fez com que o processo
divergisse (os resultados estão na tabela 6).
i x f(x) erro
0 3 3 3
1 3,333333343 10,03703728 10,03703728
2 4,448559718 50,99855165 50,99855165
3 10,11506547 946,882776 946,882776
4 115,3242628 1532741,518 1532741,518
5 170419,9374 4,9495E+15 4,9495E+15
6 5,49944E+14 1,66E+44 1,66E+44
7 1,85E+43 6,31E+129 6,31E+129
8 7,01E+128 (+) infinito (+) infinito
9 (+) infinito NaN NaN
Tabela 6 – Exemplo III b
-1,6
-1,4
-1,2
-1
-0,8
-0,6
-0,4
-0,2
0
0,2
0 0,1 0,2 0,3 0,4 0,5 0,6 f(
x)
X
f(x)
Capítulo 6
Conclusão
Neste trabalho, foi utilizado o método do ponto fixo (MPF) para encontrar os “zeros”
(raízes) de três funções. Além disso, para cada uma dessas funções, foi mudada a função
de iteração ou a estimativa inicial, para observar o comportamento e a convergência ou
divergência do processo iterativo.
Podemos perceber nos resultados obtidos nas tabelas 1 a 6, que o MPF é um método que
possui suas vantagens e desvantagens. Uma vantagem é a necessidade de escolher
apenas uma estimativa inicial e não um intervalo, e a sequencia pode convergir
rapidamente em alguns casos. O método do ponto fixo é um método numérico aberto,
diferente dos métodos onde a busca à raiz deve ser realizada dentro de um intervalo, os
Métodos Abertos utilizam-se de estratégias para encontrar zeros de funções que não
dependam de uma delimitação do local onde se encontra a raiz.
Sendo assim, os métodos abertos não necessitam de um conhecimento prévio da
localização da raiz, o que permite a construção de algoritmos que exijam apenas um
único valor inicial de x para convergir à resposta.
Diferente dos métodos intervalares, os métodos abertos podem divergir da raiz
verdadeira ao longo da execução do programa. Contudo, quando há convergência, os
métodos abertos o fazem com velocidade muito superior aos intervalares (tabela 5).
Um dos problemas desse método é justamente a sua possibilidade de divergir, como
vimos em dois exemplos aqui abordados. Inclusive em um deles apresentou
convergência para x0=0,5 e divergência para x=3, que são valores bem próximos.
Outro fator ainda mais importante é a escolha da função de iteração p(x), pois existem
várias possibilidades, sendo que algumas convergem e outras não. Sendo assim, para
utilizar este método é bom verificar antes se as condições de convergência (dadas pelo
teorema 2.2) são atendidas.
Referências
o [1] RUGGIERO, M. A. G.; LOPES, V. L. da R. Cálculo numérico - aspectos
teóricos e computacionais - 2a edição. Pearson Education do Brasil, 1996.
o [2] PILLING,Sérgio. Cálculo numérico Métodos numéricos para encontrar raízes
(zeros) de funções reais. Acessado em 02 de abril de 2012,em:
www.1.univap.br/spilling/CN/CN_Capt2.pdf
o [3] ASANO C.I.; COLLI E.Cálculo Numérico — Fundamentos e Aplicações IME
USP
Acessado em 02 de abril de 2012,em:
www.ime.usp.br/~asano/LivroNumerico/LivroNumerico.pdf