1.2.1 Raízes de Equações — Métodos Abertos — Ponto Fixo
1. Introdução
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 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. </p>
2. O Método do Ponto Fixo
Embora hajam formas mais eficientes para implementação em um programa de computador, todos os métodos abertos são variantes do Método do Ponto Fixo. Por isso, é interessante conhecê-lo para o entendimento das suas variações.
Ele consiste em aplicar sucessivas aproximações de uma função no ponto em que ela se anula, ou seja, quando for uma raiz.
Sabemos que qualquer onde será uma raiz de . Sendo assim, a idéia por trás do Método do Ponto Fixo consiste em isolar uma variável de forma que fica em função de e utiliza-se a função anterior.
Por exemplo, vamos supor que a função seja composta por:
como , então
o que faz com que fique em função de , onde esta função é :
A equação acima fornece uma fórmula para prever um novo valor de em função de um valor prévio de . Portanto, o algoritmo só necessita de uma estimativa inicial para aproximar à raiz em . Repetindo-se este processo sucessivas vezes, é possível convergir às raízes de uma função.
Logo, na forma iterativa, temos:
</p>
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, dado pela fórmula:
2.2. Exemplo
Seja encontrar a raíz da função não-linear . Como isto significa , isolando , temos:
$$\Downarrow $$
$$\Downarrow $$
ou seja,
Substituindo sucessivas vezes a Equação 9, temos que o seguinte processo iterativo pode ser encontrado:
</p>
3. Convergência do Método do Ponto Fixo
A convergência de uma aproximação numérica está intimamente relacionada com o comportamento do erro. Um método que busca uma raiz está convergindo para ela se o erro relativo diminui ao longo das iterações. Portanto, para saber se a solução será encontrada, deve-se ver como o erro está diminuindo com o aumento do número de iterações.
No caso do Método do Ponto Fixo, a i-ésima iteração é dada por e supondo que a solução seja dada por , podemos tomar a diferença destas duas equações tal que
Pelo Teorema do Valor Médio, se a função e sua primeira derivada forem contínuas em , então existe ao menos um valor de e tal que , onde
Assim, para e , a Equação 12 pode ser reescrita como
Isolando no caso acima,
= g(x_{sol}) – g(x_{i})$$
onde pertence ao intervalo . Substituindo a Equação 14 na Equação 11, podemos obter a relação entre , e :
\left( x_{sol} – x_{i} \right)$$
O erro absoluto é dado pela diferença entre a i-ésima aproximação e a solução real , então o erro é dado por
da mesma forma o erro da próxima iteração é:
Portanto, a relação entre os erros da iteração e será:
Os erros de uma iteração em relação à sua anterior é uma proporção fixa, por isso o Método do Ponto Fixo é dito “Linearmente Convergente”, ou seja, o erro em é uma equação linear em função da iteração anterior, . Logo, se o coeficiente angular for menor que um, o erro será menor que , diminuindo ao longo das iterações. Com maior que um, têm-se que o erro de é crescente em relação ao erro em , o que caracteriza a divergência. </p>
4. 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 .
Ao selecionar a função de iteração , o programador deve procurar isolar na forma que minimize , 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. </p>
5. Implementação
Embora o código abaixo tenha como parâmetro de entrada um ponteiro para função, a implementação não é geral. A função que deve ser passada deve ser a de iteração — obtida a partir do isolamento de uma variável — e não a função , cuja raiz queremos encontrar.
def fixedPoint(G, x0, errto, imax):
"""
return the root of a function (using the Fixed Point Method)
fixedPoint(fun, x0, errto, imax)
* fun: Iteration function (used by method)
* x0: next point (estimative)
* errto: tolerated error
* imax: max of iterations allowed
Author: Pedro Garcia [sawp@sawp.com.br]
License: Creative Commons
<http ://creativecommons.org/licenses/by-nc-nd/2.5/br/>
"""
x1 = G(x0)
errno = errto + 1
iterCount = 0
while errno > errto and iterCount < imax:
x0 = x1
x1 = G(x0)
iterCount += 1
if x1 != 0:
errno = fabs((x1 - x0) / x1)
return x1
Um exemplo de utilização desta implementação está disponível em: http://www.sawp.com.br/code/rootfind/fixedpoint.py
6. Copyright
Este documento está disponível sob a licença Creative Commons. As regras dos direitos de cópia deste conteúdo estão acessíveis em http://creativecommons.org/licenses/by-nc-nd/2.5/br/.