3 votos

límite de von Neumann en la EDP transformada

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

2voto

Sugiero este procedimiento: $$x=\ln\left(\frac{S}{S_0}\right)\,\,\,\ ,\,\,\,\tau=T-t\,\,\,\, ,\,\,\,\,U(x,\tau)=e^{r\tau}V(S_t,t)$$ lo que conduce a una EDP directa con coeficientes constantes $$U_\tau(x,\tau)=\frac{\sigma^2}{2}U_{xx}(x,\tau)+\mu\,U_{x}(x,\tau)$$ donde $$\mu=r-\frac{1}{2}\sigma^2$$ Tras este cambio de variables, la condición terminal se convierte en una condición inicial en $\tau = 0$ : $$U(x,0)=\max\{S_0\,e^{x_0}-K,0\}$$ Para aplicar los métodos estándar de solución numérica de las EDP, como los esquemas de diferencias finitas o de elementos finitos, necesitamos localizar el dominio de definición en $x$ a un intervalo acotado $$x\in(x_{min}\,,\,x_{max})$$ El enfoque estándar consiste en elegir el dominio computacional $(x_{min}\,,\,x_{max})$ suficientemente grande" e imponiendo condiciones de contorno de Dirichlet o Neumann en función de la asintótica de la solución. Por ejemplo, en el caso de una opción de compra, tenemos el siguiente comportamiento asintótico de la solución: $$V_S(S,t)\simeq\,S-K\,e^{-r(T-t)}\,\, ,\,\,S\to\infty$$ $$V_S(S,t)\simeq0\,\, ,\,\,S\to0$$ Límites de Neumann: $$u_x(x_{max},\tau)=S_0e^{x_{max}+r\tau}-K$$ $$u_x(x_{min},\tau)=0$$

Se demostró que el error de localización debido a estas condiciones de contorno va a cero exponencialmente cuando el tamaño del dominio computacional va a infinito. Sin embargo, estos resultados no indican si es mejor tomar condiciones de Dirichlet o de Neumann ni cómo elegir el dominio "suficientemente grande" en la práctica. A menudo se sugiere tomar este intervalo en relación con la desviación estándar del movimiento browniano para el periodo $[0,T]$ . Este enfoque utiliza las llamadas condiciones de contorno transparentes:

  • Las condiciones límite transparentes pueden utilizarse para cualquier intervalo $x\in(x_{min}\,,\,x_{max})$ aunque sea pequeño, siempre que contenga las singularidades del pago.
  • Proporcionan condiciones de contorno exactas para la EDP localizada (y no sólo asintóticamente exactas). Todavía hay un pequeño error numérico debido a la discretización de estas condiciones.
  • Las condiciones de contorno transparentes son casi tan fáciles de aplicar como las condiciones de Neumann o Dirichlet. Para más detalles, puede leer este

Discretización

$$x=x_{min}+i\Delta\,x\,\, ,\,\,\Delta\,x=\frac{x_{max}-x_{min}}{N-1}$$ $$\tau_n=n\Delta t\,\,\, ,\,\,\Delta t=\frac{T}{M}$$

I aplicación

Tenemos un esquema habitual de diferencias finitas de tres puntos: $$a_lU_{i-1}^{n+1}+a_dU_{i}^{n+1}+a_uU_{i+1}^{n+1}=b_lU_{i-1}^{n}+b_dU_{i}^{n}+b_uU_{i}^{n+1}$$

En el caso del $\theta$ -los coeficientes vienen dados por \begin{align} & {{a}_{l}}=\theta \,\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{\,2}}}+\frac{\mu }{2\Delta x} \right) \\ & {{a}_{d}}=1+\theta \Delta t\frac{{{\sigma }^{2}}}{{{(\Delta x)}^{\,2}}} \\ & {{a}_{u}}=\theta \Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{\,2}}}-\frac{\mu }{2\Delta x} \right) \\ & {{b}_{l}}=(\theta -1)\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{\,2}}}+\frac{\mu }{2\Delta x} \right) \\ & {{b}_{d}}=1+(\theta -1)\theta \Delta t\frac{{{\sigma }^{2}}}{{{(\Delta x)}^{\,2}}} \\ & {{b}_{u}}=(\theta -1)\Delta t\left( -\frac{{{\sigma }^{2}}}{2{{(\Delta x)}^{\,2}}}-\frac{\mu }{2\Delta x} \right) \\ \end{align}

0 votos

Gracias por su respuesta. Así que supongo que al menos tengo las matemáticas correctas. Pero, ¿cómo puedo hacer que funcione en el código? ¿Cómo los parámetros de $A$ ¿cambio? ¿O qué es la última fila de $A u_{i}^{n+1} = u_{i}^{n} $ ? Los límites transparentes parecen ser realmente complicados. No estoy seguro de poder programarlos...

0 votos

Sólo debo decir esquema general y usted debe resolver la pregunta por sí mismo . Nunca discuto sobre el Código.

0 votos

Me refería al esquema de diferencias. ¿Cuál es la última fila entonces? Sólo $\alpha_M = 0$ , $\beta_{M} = 1$ y $u_{M}^{n} = S_{0} e^{x_{M}}$ ?

0voto

Michał Górny Puntos 351

Acabo de tropezar con esta vieja pregunta y como no ha sido realmente respondida y por lo que vale ahora, la condición real de Neumann en la coordenada del registro es incorrecta. En lugar de $lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = S_{0} e^{x}$ debe decir $lim_{x \rightarrow \infty} \frac{\partial u(x,\tau)}{\partial x} = e^{x}$ . Esa fue probablemente la razón de los grandes errores en la gran S.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X