From: Johann H. <jo...@su...> - 2002-05-07 16:06:24
|
Okay, my specific knowledge isn't that high, but I can comment on some of this. (Heh. Yet another physicist jumping ship here.) On Tuesday, May 7, 2002, at 01:50 AM, Marco Marchioro wrote: (This isn't really aimed at you specifically, Marco, but is more of a general rant.) > I believe that the answer depends on the type of equation and the > type of time-scheme used for the resolution. In our case, > since Black-Scholes (partial-differential) equation is parabolic, the > condition > dS = sqrt(K dt), > where K is a constant, is strictly required for stability and > convergence > only for an *explict* finite-difference scheme. If, however, an > implicit scheme > is used than convergence and stability are automatically obtained > and it is possible to use something less restrictive like > dS = K2 dt. Certainly, the exact rule you need depends on the equation you're using. I'm more used to hyperbolic PDEs, but there the basic von Neumann stability analysis is to just substitute in an exponential local solution and solve for it's growth. You want to make sure that spurious modes are always damped. In fluids, this gives you the famous Courant condition, that dx >= v dt, so nothing jumps over a cell in your grid. I'm not sure about explicit/implicit, but really the only way to do decent numerics is to carefully watch the stability condition. I've done stuff like this in Mathematica, and am just looking into QuantLib library, but it seems like there should be a way to automate this by adding some methods to the differencing operators. It might get a bit hairy, though. This isn't quite so crucial for parabolic equations, but it's still a good thing to keep in mind. Sorry for the lecture, I just had this stuff repeatedly drummed into my head by one of my numerical methods courses. I'm sure most readers of this list know this already. > These considerations, however, do not tell us anything about the number > of time steps to be used as time to maturity grows. Again, the answer > depends on the shape time grid. Actually, if you can get the stability analysis right, it should tell you how many steps you can get away with, and you almost always want to make as big a step as is numerically safe. Otherwise, you're just wasting time. I've not played with it much, but I'm guessing the "right" rule would naturally give a finer required grid near discontinuities, so a variable-grid method work well. Adaptive-mesh and all. I suppose I'm ranting. I just thought I should post something other than "help, I can't get it to compile!", just to save face. --Johann |