Chercher le nombre qui annule l'erreur
Le prix d'une obligation se calcule facilement à partir d'un rendement ; l'inverse non. On résout f(y)=P(y)-prix de marché=0 par recherche. La méthode de Newton suit la tangente : d'une estimation y elle saute à y-f(y)/f'(y), et près de la réponse le nombre de chiffres justes double à peu près à chaque pas, donc quelques itérations suffisent, mais elle exige la dérivée et peut s'égarer depuis un mauvais départ. La dichotomie n'exige qu'un encadrement [lo,hi] où f change de signe : elle divise l'encadrement en deux encore et encore, donc ne peut pas échouer, mais ne gagne qu'un chiffre binaire par pas, 40 pas pour ramener un encadrement de largeur 65 sous 10⁻¹⁰. La méthode de Brent, scipy.optimize.brentq, garde la sécurité d'un encadrement et ajoute des pas d'interpolation, avec généralement l'équivalent de quelques dichotomies en appels de fonction. Avec full_output=True elle renvoie aussi un enregistrement dont le champ function_calls dit combien de fois elle a évalué votre fonction.
Le même outil inverse la formule de Black–Scholes. Le prix d'un call croît avec la volatilité ; pour chaque prix coté, on demande à brentq le σ de [10⁻⁴,5] qui le reproduit. Cela ne marche que si le prix est strictement compris entre la valeur intrinsèque max(S-Ke^(-rT),0) et le cours S ; en dehors, il n'existe aucune volatilité et la bonne réponse est NaN, pas une exception, pour qu'une mauvaise cotation n'arrête pas tout un smile. Le 9 octobre 2026, le rendement du Trésor à 10 ans est de 5,24%, donc une obligation à 5 % annuel sur 10 ans coûte 97,121. Newton retrouve le rendement en 4 itérations, Brent en 10 appels de fonction et la dichotomie en 40. Les volatilités implicites de 10 %, 20 %, 40 % et 80 % reviennent à mieux de 10⁻⁶. Savoir ce que coûte chaque méthode et quand elle peut échouer permet de choisir la bonne pour toute une courbe d'obligations ou une chaîne d'options.
- Newton est rapide mais exige une dérivée et un départ correct : 4 pas ici.
- La dichotomie ne peut pas échouer mais est lente : 40 pas pour un encadrement de largeur 65.
- Utilisez
brentqet traitez les cas impossibles : un encadrement plus de l'interpolation, et NaN quand aucune solution n'existe.
Lab : ce qui est noté
- Un prix d'obligation10 pts
- Newton à la main20 pts
- Dichotomie à la main15 pts
- Brent avec scipy15 pts
- Trois solveurs côte à côte10 pts
- Volatilités implicites15 pts
- L'étude sur données réelles15 pts