Loading [MathJax]/jax/output/HTML-CSS/jax.js

Finite Difference methods

Finite Difference Methods (Forward, Backward and Crank-Nicolson)
The Black-Scholes PDE can be transformed into the heat equation: utuxx=0, with known boundary conditions and initial condition u(x,0)=f(x). The heat equation can be approximated using finite difference methods.

Let

  • x[XS,XE], and t[0,α], where α=12r T σ2, XS<<1 and XE>>1.
  • i.e. XS:=10 and XS:=2, assuming the share price is bounded by the interval St=e10 E and St=e2 E, during the lifetime of the option.
  • Discretize x over [XS,XE] with xi=XS+i h, i[0,J], with an increment h=XEXSJ, where J is the number of points required over the x-space.
  • Discretize t over [0,α] with tn=n Δt, n[0,N], with an increment Δt=αN, where N is the number of points required over the t-space.
  • For a put option, we have the initial condition of u(xi,0)=max(e0.5(w1)Xie0.5(w+1)Xi,0), and boundary conditions u(XE,tn)=0 and V(x1,tn)=e0.5(w1)x1+(w+1)2 tn/4, where w=2rσ2.



The equation of the forward method:
u(xi,tn+1)u(xi,tn)Δt D2x[u(xi,tn)]=0, whereD2x[u(xi,tn)]=u(xi+1,tn)2u(xi,tn)+u(xi1,tn)h2, h=xi+1xi and Δt=tn+1tn. This givesun+1i=Δth2(uni+1+uni1)+(12Δth2)uni. It can be shown that the forward numerical scheme is only stable when(12λ)>0N>rTσ2J2(XEXS)2, where λ=Δth2.


The equation of the backward method:
u(xi,tn+1)u(xi,tn)Δt D2x[u(xi,tn+1)]=0, whereD2x[u(xi,tn+1)]=u(xi+1,tn+1)2u(xi,tn+1)+u(xi1,tn+1)h2, h=xi+1xi and Δt=tn+1tn. This givesΔth2un+1i+1+(1+2Δth2)un+1iΔth2un+1i1=uni. It can be shown that the backward numerical scheme is always stable. Thus, we can find the solution by solving the system of linear equation
M(J1)×(J1) Un+1(J1)×1=Vn(J1)×1, where Un+1(J1)×1=(un+11un+12un+13un+1J2un+1J1), Vn(J1)×1=(un1+λun+10un2un3unJ2unJ1+λun+1J)

M(J1)×(J1)=(1+2λλ0000λ1+2λλ0000λ1+2λλ0000000λ1+2λλ00λ1+2λ). 

Gauss elimination can then be used to find un+1i from uni, n[1,N1]. Note that solving for Un+1(J1)×1=M1(J1)×(J1)Vn(J1)×1 is computationally expensive when calculating the inverse of a tridiagonal sparse matrix.


The equation of Crank-Nickolson method:
u(xi,tn+1)u(xi,tn)Δt D2x[u(xi,tn)+u(xi,tn+1)2]=0, whereD2x[u(xi,tn)+u(xi,tn+1)2]=12(D2x[u(xi,tn)]+D2x[u(xi,tn+1)]). It can be shown that Crank-Nickolson numerical scheme is always stable. Thus, we can find the solution by solving the system of linear equation
M(J1)×(J1) Un+1(J1)×1=Vn(J1)×1, where Un+1(J1)×1=(un+11un+12un+13un+1J2un+1J1), Vn(J1)×1=(fn1+λun+10fn2fn3fnJ2fnJ1+λun+1J),

M(J1)×(J1)=(1+2λλ0000λ1+2λλ0000λ1+2λλ0000000λ1+2λλ00λ1+2λ), 
where fni:=λuni+1+(12λ)uni+λuni1. Gauss elimination can then be used to find un+1i from uni, n[1,N1].


Ameican Options.
For American options, we have to include the property of the early exercise of the option. For a Put option, the early exercise has a value of gn+1i=etn+14(w+1)2max(ew12xiew+12xi,0).
Taking the forward method as an example, we get un+1i=max(gn+1i,Δth2(uni+1+uni1)+(12Δth2)uni).
Forward Finite Differences


Backward Finite Differences



Crank-Nicolson Finite Differences



References
  1. Burden, R. L., & Faires, J. D. (2005). Numerical analysis. Thomson Brooks/Cole.
  2. Haidar, H. (2008). Pricing options for special prices movement,” MSc dissertation, University of Sussex.

No comments:

Post a Comment