Procurar o número que zera o erro
O preço de um título calcula-se facilmente a partir de um rendimento; o rendimento a partir do preço, não. Resolve-se f(y)=P(y)-preço de mercado=0 por busca. O método de Newton segue a tangente: de uma estimativa y salta para y-f(y)/f'(y), e perto da resposta o número de dígitos corretos dobra aproximadamente a cada passo, então poucas iterações bastam, mas exige a derivada e pode se perder de um mau início. A bissecção só precisa de um intervalo [lo,hi] onde f muda de sinal: divide-o ao meio várias vezes, então não pode falhar, mas ganha um único dígito binário por passo, 40 passos para reduzir um intervalo de largura 65 abaixo de 10⁻¹⁰. O método de Brent, scipy.optimize.brentq, mantém a segurança do intervalo e acrescenta passos de interpolação, em geral com o equivalente a poucas bissecções em chamadas da função. Com full_output=True devolve ainda um registro cujo campo function_calls diz quantas vezes avaliou a sua função.
A mesma ferramenta inverte a fórmula de Black–Scholes. O preço de uma call cresce com a volatilidade; para cada preço cotado pede-se ao brentq o σ em [10⁻⁴,5] que o reproduz. Só funciona se o preço estiver estritamente entre o valor intrínseco max(S-Ke^(-rT),0) e o preço da ação S; fora disso não existe volatilidade e a resposta certa é NaN, não uma exceção, para que uma cotação ruim não pare um smile inteiro. Em 9 de outubro de 2026 o rendimento do Tesouro de 10 anos é de 5,24%, então um título de 5% ao ano por 10 anos custa 97,121. O Newton recupera o rendimento em 4 iterações, o Brent em 10 chamadas da função e a bissecção em 40. As volatilidades implícitas de 10%, 20%, 40% e 80% voltam com erro menor que 10⁻⁶. Saber o que cada método custa e quando pode falhar permite escolher o certo para uma curva inteira de títulos ou uma cadeia de opções.
- Newton é rápido mas exige derivada e um início razoável: levou 4 passos aqui.
- A bissecção não falha mas é lenta: 40 passos para um intervalo de largura 65.
- Use
brentqe trate os casos impossíveis: um intervalo mais interpolação, e NaN quando não há solução.
Lab: o que é avaliado
- Um preço de título10 pts
- Newton à mão20 pts
- Bissecção à mão15 pts
- Brent com scipy15 pts
- Três solucionadores lado a lado10 pts
- Volatilidades implícitas15 pts
- O estudo com dados reais15 pts