Método da Secante e Ordem de Convergência
Objetivos de Aprendizagem
- Deduzir o método da secante a partir do método de Newton e contar seu custo em avaliações de função.
- Enunciar a definição formal de ordem de convergência e distinguir uma ordem verdadeira de uma cota sobre um intervalo.
- Deduzir a relação de erro e, a partir dela, a ordem .
- Medir essa ordem a partir dos erros de uma execução e explicar por que float64 sozinho dá só um valor grosseiro.
- Comparar Newton e o método da secante por avaliação, sob um modelo de custo declarado, e quebrar cada hipótese do teorema da ordem.
Contexto e Motivação
newtons-method precisa de a cada passo. Muitas vezes não existe fórmula para ela: pode ser uma simulação, uma chamada a um solver ou uma biblioteca fechada. O método da secante mantém a ideia de resolver uma reta e troca a tangente pela reta que passa pelos dois últimos pontos, então só precisa de valores de .
O custo é uma ordem menor, e a surpresa é que a ordem menor ainda pode vencer. Ordem por iteração é a régua errada quando as iterações custam quantias diferentes. Esta lição torna "ordem" precisa, deduz o valor incomum e o mede.
Teoria Central
De Newton à secante
Troque na iteração de Newton pela inclinação entre os dois últimos iterados:
O método precisa de dois pontos iniciais distintos, que não precisam cercar a raiz. Como já está guardado, cada iteração custa uma avaliação nova, então custa avaliações no total para . O passo fica indefinido quando , caso em que a reta secante é horizontal.
Ordem de convergência, formalmente
Seja com . A sequência tem ordem com constante se
exigindo-se também quando . Ordem 1 é linear e ordem 2 é quadrática. Se a convergência é superlinear, o que todo satisfaz. É uma afirmação assintótica sobre uma sequência, sob as hipóteses do teorema que a produziu.
Nem toda sequência convergente tem ordem. Uma noção mais fraca só pede para alguma sequência que tenha ordem . A bisseção é o caso padrão: a meia-largura do intervalo tem ordem 1 com constante , mas os erros dos pontos médios em geral não têm. Na equação do Exemplo 1, a partir de , a razão variou de a em 15 passos e não se assentou em nada. Há casos especiais: para em a razão é exatamente .
Se valesse exatamente, teríamos , o que dá a medida usada em toda a lição:
A relação de erro
Sejam e , e escreva o erro com sinal . A reta secante por e é o interpolante de grau 1 de , então para todo
Faça , use e note que os dois primeiros termos são a reta, que se anula em . Isso dá uma fórmula exata:
Para , e para pontos entre os argumentos. Assim, perto de uma raiz simples, a fração tende a , a mesma constante de Newton. O erro de Newton é proporcional a ; aqui um dos dois fatores é o erro mais antigo, que é maior.
A ordem é a razão áurea
Hipóteses. perto de , , , , e estão perto o bastante de . Conclusão. com ordem e constante .
O motivo aparece num logaritmo. Com , a relação vira , a recorrência de Fibonacci. Suas soluções são . Convergir significa , logo , o segundo termo some e . Para a constante, suponha . Então , e substituir dá . Igualar expoentes dá , e igualar constantes dá . Esse argumento trata como ; uma prova completa limita a fração acima.
Exemplos Resolvidos
Exemplo 1: a ordem medida
Resolva a equação de Kepler de newtons-method, , com , . Em float64, contra uma raiz de referência calculada com 2000 dígitos:
textk x_k e_k e_k/(e_{k-1}e_{k-2}) p_k 0 1.0 2.881e-01 1 1.5 2.119e-01 2 1.2785142391301476 9.577e-03 0.1569 3 1.2877773371566017 3.140e-04 0.1547 1.104 4 1.2880917861898569 4.730e-07 0.1573 1.901 5 1.2880913131884923 2.335e-11 0.1572 1.526 6 1.2880913132118377 1.177e-17
A razão de dois termos já bate com . A coluna da ordem não se assenta: float64 só dá três valores limpos, , , , e o termo ainda pesa nessa fase. Em a relação prevê , abaixo do erro de arredondamento, e é simplesmente o float mais próximo de . Depois , , e a fórmula de é , então um teste de parada é obrigatório, não opcional. scipy.optimize.newton(f, 1.0, x1=1.5, tol=1e-12), que roda o método da secante quando não recebe fprime, para depois de 6 iterações com um resultado a um float de distância, porque escreve a atualização de outro jeito.
O limite exige mais dígitos, então aqui vai a mesma iteração com 2000 dígitos:
textk e_k e_k/(e_{k-1}e_{k-2}) e_k/e_{k-1}^phi p_k 6 1.736e-18 0.1572012 0.27676 1.6553 8 1.738e-48 0.1572012 0.30198 1.6234 10 4.757e-127 0.1572012 0.31221 1.6188 12 9.732e-333 0.1572012 0.31620 1.6181 14 3.047e-871 0.1572012 0.31774 1.6181
se aproxima de e a terceira coluna caminha para , de acordo com o teorema.
Exemplo 2: Newton contra a secante, por avaliação
Mesma equação, com Newton a partir de . Contando e como uma avaliação cada, e listando o erro do melhor iterado que essas avaliações conseguem produzir:
textavaliacoes Newton Secante (x1 = 1.5) 2 1.3e-02 9.6e-03 3 3.1e-04 4 2.7e-05 4.7e-07 5 2.3e-11 6 1.2e-10 1.2e-17 8 1.2e-17
A secante vence aqui apesar da ordem menor. O resultado depende de : com ela atinge o piso de arredondamento em 7 avaliações, e com em 6.
Assintoticamente, o número de dígitos corretos é multiplicado por a cada iteração, então por unidade de trabalho é multiplicado por , em que é o trabalho de uma iteração. Se custa vezes o que custa , Newton obtém e a secante obtém . Em isso dá contra . Os dois empatam em , então Newton só fica à frente quando custa menos de cerca de 44% de . Em Kepler, só acrescenta um ao de , e se os dois vêm de uma só chamada então fica perto de e Newton fica à frente, embora a tabela acima, que cobra preço cheio por , favoreça a secante. O modelo ignora a fase inicial e o arredondamento, e supõe os dois métodos no regime assintótico.
Exemplo 3: cada hipótese removida
. Para a iteração é exatamente , de novo Fibonacci, então a razão tende a e a ordem é 1. Em , com raiz dupla e pontos iniciais e , a razão chega a em , depois o arredondamento a quebra e a execução congela em em , perto do piso que Newton atingiu. Por avaliação isso ainda supera o de Newton a cada duas avaliações, que dá por avaliação.
. Para e , , então agora . O mesmo argumento dá , logo . Medido a partir de , , em float64 (a raiz em deixa muita faixa de expoente):
textk e_k e_k/(e_{k-1}e_{k-2}^(1/2)) p_k 6 8.657e-06 0.7315 1.349 9 8.960e-14 0.9508 1.359 13 3.609e-46 1.0002 1.366
. Remover esta acelera o método. Para em , , então , e dá . Uma execução com 6000 dígitos a partir de e dá iguais a , , , , e a razão se assenta em . Ainda assim, pela definição acima, essa sequência não tem ordem. Aqui mais uma constante obedece a , com raízes e , e o termo nunca some em relação à constante: alterna entre e de a , sem deriva. Logo , mas nenhum limite existe, a mesma distinção feita para a bisseção. O valor é, portanto, uma afirmação sob suas hipóteses, não uma propriedade do método sozinho.
Bons pontos iniciais. Para com , os dois valores de são iguais e o primeiro passo divide por zero, embora haja raízes entre os pontos. Para , os pontos e dão , , , , e divergem, enquanto e convergem. Com excentricidade alta (, ), os pontos e ficam abaixo de e chegam à raiz em , uma execução mais calma que a excursão de Newton até em newtons-method. É um caso só: nenhum dos dois métodos está a salvo de um mau começo.
Exemplo 4: uma caixa-preta, em que não existe como código
Um projétil com arrasto quadrático obedece a , com m/s², por metro e velocidade de lançamento m/s. Ache o ângulo abaixo do ângulo de alcance máximo que cai a m. O alcance não tem fórmula, então é uma chamada a scipy.integrate.solve_ivp com method='DOP853', com cerca de 270 avaliações do lado direito. Com pontos iniciais e , rtol=1e-11 e atol=1e-13:
textavaliacoes theta (graus) f(theta) (m) 3 22.160585688 -2.93 4 22.957456986 -3.83e-01 5 23.077269499 -1.70e-02 6 23.082829199 -1.06e-04 7 23.082864214 -2.98e-08 8 23.082864223534 1.47e-10
Os iterados seguintes só oscilam: fica entre e , o ruído do integrador. Repetir com rtol=1e-5 e atol=1e-7 leva o mesmo número de passos e chega a , errado em graus. O método da secante converge com a mesma rapidez para a raiz da função que recebeu. A ordem descreve essa rapidez e não diz nada sobre a precisão com que foi calculada.
Exemplo 5: mantendo um intervalo
O método da secante pode sair da vizinhança da raiz, então uma correção tentadora é a regula falsi: usar a mesma reta, mas substituir a ponta que preserva uma troca de sinal. Contando a avaliação em que um ponto a menos de de é avaliado pela primeira vez, na equação do Exemplo 1 em :
textbissecao 36 regula falsi 13 scipy.optimize.brentq 7 secante (1, 1.5, sem intervalo) 6
A regula falsi é só linear aqui. A função é convexa no intervalo, então a ponta nunca se move, e a razão de erro se assenta em . Manter o intervalo desse jeito sacrifica a ordem superlinear. brentq mantém um intervalo e combina bisseção com interpolação quadrática inversa, motivo de ser a escolha padrão quando se conhece uma troca de sinal.
Equívocos Comuns e Armadilhas
- "Ordem 1,618 significa que é mais lento que Newton." Por iteração, sim. Por avaliação pode ser mais rápido (Exemplo 2), a menos que seja barata.
- "Os pontos iniciais precisam cercar a raiz." Não precisam, e pontos que cercam também não são seguros: a partir de falha no primeiro passo.
- "O método da secante é a regula falsi." Mesma reta, contabilidade diferente. A regula falsi preserva uma troca de sinal e cai para ordem linear (Exemplo 5).
- "Uma execução em float64 mostra a ordem." Ela dá poucos valores ruidosos de . No Exemplo 1 a razão informou bem mais.
- "A ordem é sempre ." Isso exige raiz simples, e . Sem essas condições, o Exemplo 3 mediu e , e um caso em que sem ordem nenhuma.
- "A bisseção tem ordem 1." O intervalo dela tem; os erros dos pontos médios em geral não têm razão limite.
- "Ordem maior significa resposta mais precisa." O Exemplo 4 convergiu a toda velocidade para um valor limitado pela precisão de .
- "Continue iterando por segurança." Depois da convergência o denominador é puro ruído de arredondamento, ou exatamente zero. Pare pelo tamanho do passo e pelo resíduo, e limite as iterações.
Resumo
O método da secante troca pela inclinação entre os dois últimos pontos, então custa uma avaliação por iteração e dispensa derivada. A ordem é definida por e medida com ; os pontos médios da bisseção em geral não têm esse limite, só uma cota. A relação exata dá , uma recorrência de Fibonacci nos logaritmos, e daí a ordem com constante , para uma raiz simples de uma função com e bons pontos iniciais. Execuções de alta precisão chegam a e ; float64 dá só um valor grosseiro. Assintoticamente, por avaliação, a secante supera Newton quando custa mais de cerca de 44% de . Sem as hipóteses, a ordem medida mudou para ou , tendeu a sem ordem verdadeira, ou a execução falhou. Quando se conhece um intervalo, brentq é a escolha usual.
Documentation Links
- Driscoll and Braun: Fundamentals of Numerical Computation, 4.4 Interpolation-based methods
- Demanet (2012): MIT 18.330 Introduction to Numerical Analysis, Chapter 4: Nonlinear equations
- SciPy documentation: scipy.optimize.newton
- SciPy documentation: scipy.optimize.brentq
- SciPy documentation: scipy.optimize.bisect
- SciPy documentation: scipy.integrate.solve_ivp