1.2.3 Raízes de Equações — Métodos Abertos — Método da Secante
1. Introdução
Como visto no Método de Newton-Raphson, as implementações dependem da derivada para encontrar as raízes. O problema nisso é que nem sempre é possível encontrar uma expressão para derivadas.
Outro inconveniente do Método de Newton-Raphson é que ele depende de duas funções: a própria função, cuja raiz se quer encontrar, e a função da derivada. Dependendo da natureza da função, a obtenção da sua derivada pode ser difícil de se obter, ou então ser uma tarefa computacionalmente custosa, o que implicaria em uma perda de eficiência.
Contudo, é possível aproximar a derivada — que fornece uma tangente — por uma secante.
2. Desenvolvimento do Método

A Figura metodo ilustra a descrição gráfica do Método da Secante (verde) e o de Newton-Raphson (em azul), sendo possível observar que ambas técnicas são muito semelhantes entre si, uma vez que as duas estimam a raiz extrapolando-se uma tangente da função no ponto até o eixo abscisso. Logo, no caso de Newton-Raphson a inclinação da tangente é dada pela própria derivada, enquanto no da Secante usa-se uma diferença dividida para estimar a inclinação.
A aproximação da secante é dada pela seguinte relação:
A aproximação desta derivada é substituída na equação do Método de Newton-Raphson:
A Equação 3 acima é a fórmula do Método da Secante, sendo intimamente relacionado com o Método de Newton, pois o primeiro é uma modificação do segundo. Contudo, a abordagem da secante tem a vantagem de não necessitar da derivada da função, exigindo apenas uma estimativa inicial de x.
Ainda pelo gráfico, visualizamos que a aproximação da secante está mais distante que a de Newton para um mesmo . Isso ocorre porque o método de Newton-Raphson converge muito mais rapidamente. Sendo assim, concluimos que o Método da Secante deva ser preferido apenas quando não for possível obter a derivada da função.
3. Implementação
Como na implementação de Newton-Raphson, o Método da Secante consiste em modificar o do Ponto Fixo, utilizando a equação deduzida neste artigo para calcular a raiz:
-
def secante(F, x0=1.0, xminus1=0.0, errto=0.001, imax=100):
-
"""
-
return the root of a function (using the Secant Method)
-
-
secante(F, x0=1.0, xminus1=0.0, errto=0.001, imax=100)
-
-
* F: Function where find the roots
-
* x0: next point (estimative)
-
* xminus: xi-1, used to define another bound
-
* errto: tolerated error
-
* imax: max of iterations allowed
-
-
Author: Pedro Garcia [sawp@sawp.com.br]
-
see: http://www.sawp.com.br
-
License: Creative Commons
-
-
Dec 2009
-
"""
-
-
iterCount = 0
-
errno = errto + 1
-
x1 = x0
-
x0 = xminus1
-
-
while errno > errto and iterCount < imax:
-
xminus1 = x0
-
x0 = x1
-
-
# in Newton-Raphson will be x1 = x0 – G(x0)/diffG(x0)
-
# in fixed point will be x1 = G(x0)
-
x1 = x0 – (F(x0)*(xminus1 – x0))/(F(xminus1) – F(x0))
-
-
iterCount += 1
-
-
if x1 != 0:
-
errno = fabs((x1 – x0)/x1)
-
-
return x1
Um exemplo de utilização desta função pode ser encontrado em http://www.sawp.com.br/code/rootfind/secante.py
4. 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/.
Você pode ler as eventuais respostas desta entrada
através do RSS 2.0 feed.
As respostas estão encerradas, mas você pode
trackback
a partir do seu próprio site.