I am trying to implement a local volatility pricer using Monte Carlo and Dupire's equation in function of implied volatilities and I was told that first of all I have to check Dupire is well implemented so I was reccommended to prove it like this:
-The first step, to check Dupire's function, was to get the local volatility surface from a flat implied volatility surface. As it is flat and we know that local vol skew is double of the implied vol skew I expect also a flat local vol surface with the same value of the implied vol surface (since ATM value is the same for both), am I wrong?
-The second step would be to chek Dupire with an implied volatility surface with some slope in the expirys term but without skew (flat in the strikes). The question is: what I should expect from this? I understand that it should be a local volatility surface without skew in the moneyness term (as I said its skew is double of implied volatility and it is flat) but don't know about the expiry term.
-Finally I can't prove this case because I get negative local variances (complex local vols) so I can't plot the surface. I am using a bivariable cubic spline over moneyness and linear in expiry with python functions bisplrep and bisplev but I would like if anyone can tell me which interpolation scheme I should use.
This is the implied volatility surface I artificially created and which I am using to check step 2, but as I said I obtain complex local vols with that kind of interpolation.