Método das secantes
Em análise numérica, o método das secantes é um algoritmo de busca de raízes que usa uma sequência de raízes de linhas secantes para aproximar cada vez melhor a raiz de uma função f.
O método da secante pode ser pensado como uma aproximação por diferenças finitas do método de Newton. No entanto, foi desenvolvido independentemente do método de Newton, e antecedeu-o por mais de 3.000 anos.[1]
O método
O método das secantes é definido pela relação de recorrência
ou
Como pode ser visto da relação de recorrência, o método das secantes requer dois valores iniciais, x0 e x1, que devem ser preferencialmente escolhidos próximos da raiz.
Dedução do método
Dados xn−1 e xn, construímos uma reta passando pelos pontos (xn−1, f(xn−1)) e (xn, f(xn)), como ilustrado na figura à direita. Note que essa reta é uma secante ou corda do gráfico da função f.
Na forma ponto-declividade, ela pode ser definida como
Agora escolhemos xn+1 como zero dessa reta, então xn+1 é escolhido de modo que
Resolvendo essa equação, obtém-se a relação de recorrência para o método das secantes.
Convergência
As iterações xn do método das secantes convergem para uma raiz de f, se os valores iniciais x0 e x1 estiverem suficientemente próximas da raiz. A ordem de convergência do método é α, onde
é a razão áurea. Em particular, a convergência é superlinear.
Esse resultado só vale sob certas condições técnicas; a saber, f deve ser duas vezes continuamente diferenciável e a raiz em questão deve ser simples (isto é, não deve ser uma raiz múltipla).
Se os valores iniciais não estiverem próximos da raiz, não se pode garantir que o método das secantes convergirá.
Exemplos Computacionais
Eis implementações do método das secantes em Matlab. Neste exemplo, o método das secantes é aplicado para encontrar uma raiz da função f(x) = x3 −10x2 -400. Os valores iniciais são x0=20 e x1=30; o número de iterações é n=8. Espera-se que a iteração irá convergir para x=12,5426 após um número suficiente de iterações.[1]
f=@(x) x^3 -10*x^2 -400; x(1)=20; x(2)=30; n=8; j=n+3; for i=3:j x(i) = x(i-1) - (f(x(i-1)))*((x(i-1) - x(i-2))/(f(x(i-1)) - f(x(i-2)))); end root=x(j)
Notas e referências
Ver também
Referências
- Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2002). Numerical Recipes in C: The Art of Scientific Computing. New York: Press Syndicate of the University of Cambridge. pp. 354–357. ISBN 0-521-43108-5
- Esequia Sauter; Dagoberto Adriano Rizzotto Justo, Fabio Souto de Azevedo, Jean Carlo Pech de Moraes. «Cálculo numérico - MAT01169 - Rotinas fornecidas». Consultado em 3 de novembro de 2014. Arquivado do original em 3 de novembro de 2014.
function x2=Secante(f,x0,x1,tol,N)...
A referência emprega parâmetros obsoletos|coautores=
(ajuda)
Ligações externas
- «Buscador Online de Raízes de Polinômios - Métodos das Secantes» (em inglês). por Farhad Mazlumi
- Roots of a function - Secant Method, no Rosetta Code
- Portal das tecnologias de informação