σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours SciPy›Module 1 · Ajuster et trouver›Sujet 1.6·~45 minIntermédiaire

Recherche de racines à la main et avec brentq

Position dans le parcoursModule 1 sur 3 · Sujet 6 sur 8
1.6 Recherche de racines à la main et avec brentq
—Score du lab— / 100XP total—Série—

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 brentq et 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
Explorateur · lab-sp-15
▾ lab-sp-15
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sp-15$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sp-15 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub