Implied Volatility via Newton-Bisection

Options Pricing · Medium · Free problem

You observe a European call trading at price $C_{\text{mkt}}$ on a non-dividend-paying stock with spot $S_0$, strike $K$, maturity $T$, and continuously compounded risk-free rate $r$. Under Black-Scholes, the model price is $C_{\text{BS}}(\sigma) = C_{\text{BS}}(S_0, K, T, r, \sigma)$.

  1. Define the implied volatility $\hat{\sigma}$ and state conditions under which it exists and is unique.
  1. Write a Newton-Raphson iteration to solve $C_{\text{BS}}(\sigma) = C_{\text{mkt}}$. Express the update step in terms of vega $\mathcal{V} = \partial C_{\text{BS}} / \partial \sigma$.
  1. Newton's method can fail if the initial guess is poor. Design a robust bracketing strategy (bisection or safeguarded Newton) that guarantees convergence. Specify practical initial bounds $[\sigma_{\text{lo}}, \sigma_{\text{hi}}]$ and explain how to combine bisection with Newton steps for speed and safety.

Hints

  1. Think about what properties of $C_{\text{BS}}(\sigma)$ as a function of $\sigma$ guarantee that an inverse exists. What does vega tell you about monotonicity?
  2. The Newton update is $\sigma_{n+1} = \sigma_n - f(\sigma_n)/f'(\sigma_n)$. Here $f(\sigma) = C_{\text{BS}}(\sigma) - C_{\text{mkt}}$ and $f'(\sigma)$ is exactly vega. When does this update become numerically unstable?
  3. Bracket the root between $\sigma_{\text{lo}}$ and $\sigma_{\text{hi}}$ where the function changes sign. Use Newton when the step stays inside the bracket, and fall back to bisection otherwise -- this is the standard safeguarded Newton approach.

Worked Solution

How to Think About It: Implied vol is the market's way of quoting option prices in volatility units instead of dollars. Every trader's screen shows implied vol, not Black-Scholes prices, because vol is a more stable and comparable quantity. Finding implied vol means inverting the Black-Scholes formula -- you know the price, you need the $\sigma$ that produces it. The good news: Black-Scholes price is a strictly increasing function of $\sigma$ (vega is always positive), so the root is unique whenever it exists. The bad news: there is no closed-form inverse, so you need a numerical root-finder. Newton's method is fast (quadratic convergence) but can blow up if vega is tiny. Bisection always converges but is slow. The practical answer is to combine both.

Part (i): Definition and Uniqueness

The implied volatility $\hat{\sigma}$ is defined as the unique $\sigma > 0$ satisfying:

$C_{\text{BS}}(S_0, K, T, r, \hat{\sigma}) = C_{\text{mkt}}$

Existence: The call price $C_{\text{BS}}(\sigma)$ is continuous in $\sigma$ on $(0, \infty)$ with: - $\lim_{\sigma \to 0^+} C_{\text{BS}}(\sigma) = \max(S_0 - K e^{-rT}, 0)$ (the intrinsic value) - $\lim_{\sigma \to \infty} C_{\text{BS}}(\sigma) = S_0$ (the stock price itself)

So by the intermediate value theorem, a solution exists whenever:

$\max(S_0 - K e^{-rT}, 0) < C_{\text{mkt}} < S_0$

This is just the no-arbitrage bound on a European call. Any market price within these bounds has a well-defined implied vol.

Uniqueness: The vega of a European call is:

$\mathcal{V} = \frac{\partial C_{\text{BS}}}{\partial \sigma} = S_0 \sqrt{T} \, \phi(d_1) > 0$

where $\phi$ is the standard normal PDF and $d_1 = \frac{\ln(S_0 / K) + (r + \sigma^2/2)T}{\sigma \sqrt{T}}$. Since $\phi(d_1) > 0$ for all finite $d_1$, vega is strictly positive for all $\sigma > 0$. This means $C_{\text{BS}}(\sigma)$ is strictly increasing in $\sigma$, so the root is unique.

Part (ii): Newton-Raphson Iteration

We want to find the root of $f(\sigma) = C_{\text{BS}}(\sigma) - C_{\text{mkt}} = 0$. Newton's method gives:

$\sigma_{n+1} = \sigma_n - \frac{f(\sigma_n)}{f'(\sigma_n)} = \sigma_n - \frac{C_{\text{BS}}(\sigma_n) - C_{\text{mkt}}}{\mathcal{V}(\sigma_n)}$

Written out:

$\sigma_{n+1} = \sigma_n - \frac{C_{\text{BS}}(\sigma_n) - C_{\text{mkt}}}{S_0 \sqrt{T} \, \phi(d_1(\sigma_n))}$

This converges quadratically near the root. In practice, 3-5 iterations typically suffice to reach machine precision when starting from a reasonable initial guess.

Failure mode: If $\sigma_n$ is very large or very small, $d_1$ becomes extreme, $\phi(d_1) \to 0$, and vega nearly vanishes. The Newton step then becomes enormous, potentially producing a negative $\sigma_{n+1}$ or overshooting wildly. This is why pure Newton is not safe.

Part (iii): Robust Safeguarded Newton-Bisection

Practical initial bounds: - $\sigma_{\text{lo}} = 0.01$ (1% vol -- below any realistic equity or FX vol) - $\sigma_{\text{hi}} = 5.0$ (500% vol -- above any observed market vol)

Verify that $f(\sigma_{\text{lo}}) < 0$ and $f(\sigma_{\text{hi}}) > 0$ so the root is bracketed. If not, widen the bounds.

Algorithm (Brent-style safeguarded Newton):

  1. Set $a = \sigma_{\text{lo}}$, $b = \sigma_{\text{hi}}$, and initial guess $\sigma_0 = 0.25$ (a common starting point for equity implied vol).

2. At each iteration: - Compute the Newton step: $\sigma_{\text{Newton}} = \sigma_n - f(\sigma_n) / \mathcal{V}(\sigma_n)$ - If $\sigma_{\text{Newton}} \in (a, b)$ and $|\sigma_{\text{Newton}} - \sigma_n|$ is less than half the previous step (ensuring we are making progress), accept the Newton step. - Otherwise, fall back to a bisection step: $\sigma_{\text{bisect}} = (a + b) / 2$. - Update the bracket: if $f(\sigma_{n+1}) < 0$, set $a = \sigma_{n+1}$; otherwise set $b = \sigma_{n+1}$.

  1. Converge when $|f(\sigma_n)| < \epsilon$ (e.g., $\epsilon = 10^{-10}$) or $|b - a| < \delta$ (e.g., $\delta = 10^{-12}$).

Why this works: Bisection alone converges linearly -- it halves the bracket each step, so after 50 iterations the bracket has width $5 / 2^{50} \approx 4 \times 10^{-15}$, which is machine epsilon. But in the "good" region near the root where vega is bounded away from zero, Newton converges quadratically, reaching full precision in 3-5 steps. The safeguard ensures we never leave the bracket, so convergence is guaranteed regardless of the initial guess.

Practical refinements: - A better initial guess uses the Brenner-Subrahmanyam approximation: $\sigma_0 \approx \sqrt{2\pi / T} \cdot C_{\text{mkt}} / S_0$, which is often within 5-10% of the true implied vol. - For deep OTM options, work with the put instead (via put-call parity) to avoid numerical issues with very small call prices. - Cap the maximum Newton step size at, say, $0.5$ per iteration to prevent overshooting.

Answer: Implied volatility $\hat{\sigma}$ is the unique $\sigma > 0$ satisfying $C_{\text{BS}}(\sigma) = C_{\text{mkt}}$, and it exists and is unique whenever the market price lies within no-arbitrage bounds. Newton-Raphson with the update $\sigma_{n+1} = \sigma_n - (C_{\text{BS}}(\sigma_n) - C_{\text{mkt}}) / \mathcal{V}(\sigma_n)$ converges quadratically near the root. For robustness, bracket the root with $\sigma \in [0.01, 5.0]$ and use safeguarded Newton-bisection: accept Newton steps when they stay inside the bracket and make sufficient progress, otherwise bisect. This guarantees convergence for any valid market price.

Intuition

Implied volatility inversion is one of the most frequently executed numerical computations in all of finance -- every options desk runs it thousands of times per second. The reason it works so cleanly is that Black-Scholes price is a well-behaved function of vol: continuous, strictly increasing (positive vega), and spanning the full no-arbitrage range. This is essentially the ideal setup for root-finding. The practical lesson is that pure Newton is a great optimizer in a benign neighborhood but a terrible one globally. In production systems, you always want a safety net. The bisection fallback costs almost nothing (you just check whether the Newton step lands inside the bracket) but eliminates the entire class of "Newton blew up" failures. This pattern -- fast local method with a robust global fallback -- appears everywhere in quantitative work, from calibrating stochastic vol models to fitting yield curves.

The deeper point for interviews is that the question is not really about Newton's method. It is about whether you understand why the problem is well-posed (vega > 0 ensures uniqueness), where the naive approach fails (vega near zero for extreme moneyness or vol), and how to make it production-grade (bracketing, step-size limits, good initial guesses). This is how quant interviews work: a straightforward-sounding numerical question is really testing your understanding of the underlying financial structure.

Open the full interactive solver →