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
editarO 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
editarDados 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
editarAs 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
editarEis 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
- ↑ a b Papakonstantinou, J., The Historical Development of the Secant Method in 1-D, consultado em 3 de novembro de 2014
Ver também
editarReferências
editar- 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)...
Ligações externas
editar- «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