He transformado la EDP de BSM $$\frac{\partial V}{\partial t} + \frac{\sigma^2}{2}S^2 \frac{\partial^2 V}{\partial S^2} + rS \frac{\partial V}{\partial S} - rV = 0 $$ a $u(\tau,x) = V(T-\tau,S_{0} e^{x})$ con un cambio de variables $x = \ln(S/S_{0})$ y $\tau = T -t$ a $$ \frac{\partial u}{\partial \tau} = \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + (r - \frac{\sigma^2}{2})\frac{\partial u}{\partial x} - ru $$ Para la discretización utilizo diferencias hacia atrás para la derivada temporal y diferencias centrales para las derivadas espaciales. Así que tengo un esquema de diferencias finitas implícito de la forma $$ A u_{i}^{n+1} = u_{i}^{n} $$ donde $i$ es el índice de la cuadrícula espacial (de 1 a $M = 2B/\Delta x$ ) y $n$ para la cuadrícula temporal (de 1 a $N = T/\Delta\tau$ ) y $$ A = \begin{pmatrix} \beta_{1} & \gamma_{1} & 0 & 0 & \cdots & 0\\ \alpha_{2} & \beta_{2} & \gamma_{2} & 0 & \cdots & 0 \\ 0 & \alpha_{3} & \beta_{3} & \gamma_{3} & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots &\ddots &\vdots \\ 0 &\cdots & & & \alpha_M & \beta_{M} \end{pmatrix} $$ y $\beta_i = 1 - k (\frac{\sigma^2}{\Delta x^2} - r)$ , $\gamma_i = k(- \frac{\sigma^2}{2 \Delta x^2} - (r - \frac{\sigma^2}{2}) \frac{1}{2\Delta x})$ y $\alpha_i = k( -\frac{\sigma^2}{2 \Delta x^2} + (r - \frac{\sigma^2}{2})\frac{1}{2 \Delta x})$ $\forall 2 \leq i \leq N-1$ A partir de las condiciones límite de una convocatoria europea $$\lim_{S \rightarrow 0} V(S,t) = 0 \qquad \lim_{x \rightarrow -\infty} u(x,\tau) = 0$$ He puesto $\beta_1 = 1$ , $\gamma_{1} = 0$ y $u_{i}^{n} = 0$ como límite inferior y de $$\lim_{S \rightarrow \infty} V(S,t) = S - K e^{-r(T-t)} \qquad \lim_{x \rightarrow \infty} u(x,\tau) = S_{0} e^{x} - K e^{-r(T-t)}$$ He puesto $\alpha_M = 0$ , $\beta_{M} = 1$ y $u_{M}^{n} = S_{0} e^{x_{M}} - K e^{-r(T-t)}$ para resolver este esquema.
Ahora quiero utilizar los límites de von Neumann y no estoy seguro de cómo se hace en la EDP transformada. Hasta ahora lo he intentado dejando la frontera inferior como está y para la frontera superior he utilizado $$\lim_{S \rightarrow \infty} \frac{\partial V(S,t)}{\partial S} = 1 \qquad \lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = S_{0} e^{x} $$ De la diferencia central de la primera derivada espacial obtengo entonces $$ \frac{u_{M+1}^{n+1} - u_{M-1}^{n+1}}{2 \Delta x} = e^{x_{M}} S_{0} \\ u_{M+1}^{n+1} = 2 \Delta x e^{x_{M}} S_{0} - u_{M-1}^{n+1}$$ Ahora inserto esto en la última fila del esquema $$\alpha_{M} u_{M-1}^{n+1} + \beta_{M} u_{M} + \gamma_{M} (2 \Delta x e^{x_{M}} S_{0} - u_{M-1}^{n+1}) = u_{M}^{n} \\ (\alpha_{M} - \gamma_{M}) u_{M-1}^{n+1} + \beta_{M} u_{M} = u_{M}^{n} - 2 \Delta x e^{x_{M}} S_{0} \gamma_{M} $$ Por lo tanto, el límite en el esquema se convierte en $\alpha_{M} = (\alpha_{M} - \gamma_{M})$ , $\beta_M = \beta_M$ y $u_{M}^{n} = u_{M}^{n} - 2 \Delta x e^{x_{M}} S_{0} \gamma_{M}$
Cuando implemento esto en Matlab con el límite de Dirichlet obtengo buenos resultados, pero algo debe estar mal con la implementación de von Neumann porque los resultados para grandes $S$ tienen errores muy grandes. ¿Puede alguien ayudarme?
Muchas gracias