The concept of local volatility certainly has its merits, and Bruno Dupire is the name attached to local volatility. With his analytic inversion formula published in RISK (1994), he made it possible to calculate the local volatility surface easily.
But is it also a numerically sound method to identify local vol? To answer this question, we performed the following naive experiment.Let the local volatility to be identified be in fact a flat volatility of 30%. This, of course, leads also to implied volatilities (the sysnthetic market data) of 30% for all strike prices and all expiries of options. We now add some noise so that the quoted implied volatilities are in the interval (29.99%, 30.01%).
We now assume the spot price is 100 and that these implied volatilities are quoted for strike prices (50, 52, 54, ..., 146, 148, 150) and for expiries (5 weeks, 10 weeks, ... 245 weeks, 250 weeks).
See here what Dupire's formula delivers.
What happened here? Numerical differentiation of noisy data is instable, dividing by something instable close to zero even more.
Chapter 15 of "A Workout in Computational Finance" gives insight into
parameter identification problems, stable methods for treating them and
how Egger and Engl obtained the following smooth (almost boring)
volatility surface from the same noisy data.