title: ## Contents
style: nestedOrderedList # TOC style (nestedList|nestedOrderedList|inlineFirstLevel)
minLevel: 0 # Include headings from the specified level
maxLevel: 3 # Include headings up to the specified level
includeLinks: true # Make headings clickable
hideWhenEmpty: false # Hide TOC if no headings are found
debugInConsole: false # Print debug info in Obsidian console
1 Finite-Difference Methods
The Black-Scholes PDE for euro-call option with strike price \(K\) and terminal time \(T\) with value function \(u(x,t)\) as a function of asset price \(x\) and time \(t\) is given by the PDE \[ \begin{cases} \frac{{\partial u}}{\partial t}+rx \frac{{\partial u}}{\partial x}+\frac{1}{2}\sigma^2 x^2 \frac{{\partial^2u}}{\partial x ^2}-ru=0\\ u(T,x)=(x-K)_{+}.\tag{1} \end{cases} \] Intuitively, this system is describing the changing slope of the surface of \(u(x,t)\) as we move in \(x\) or in \(t\). To numerically solve this PDE the finite difference method discretizes this continuous space of \((t, S)\) into a mesh \((\Delta t, \Delta S)\) and approximates the mesh-point to mesh-point change of \(u\) using tractable Taylor series expansions of functions near the point of interest.
For example, we can define the partial derivative \(\partial u/\partial t\) to be the limiting difference \[ \frac{{\partial u}}{\partial t}=\lim_{ \delta t \to 0 } \frac{{u(x, t+\delta t)-u(x,t)}}{\delta t}\approx \frac{{u(x, t+\Delta t)-u(x,t)}}{\Delta t}+O(\Delta t), \] where we assume that \(\Delta t\) is very small. This is specifically called a forward difference since the differencing is in the forwards direction. We also have the backward difference and the central difference and we define all three methods below.
The following differencing methods are used for approximating partial differential equations: 1. Forward Differencing: \[ \frac{{\partial u}}{\partial t} \approx \frac{{u(x, t+\Delta t)-u(x,t)}}{\Delta t}, \] 2. Backward Differencing: \[ \frac{{\partial u}}{\partial t} \approx \frac{{u(x, t-\Delta t)-u(x,t)}}{\Delta t}, \] 3. Central Differencing: \[ \frac{{\partial u}}{\partial t} \approx \frac{{u(x, t+\Delta t)-u(x,t-\Delta t)}}{2\Delta t}. \]
Note: All three definitions hold when computing the partial derivative with respect to \(x\), it will simply change to considering \(x\) values rather than \(t\) values (see below for some examples).
For second partial derivatives we can define the symmetric finite-difference approximation as either the forward difference of backward-difference approximations to the first derivative or as the backward-difference of forward difference approximations to the first derivative, both of which give the same result which is stated in the definition below.
The symmetric central-differencing approach for second partial derivatives is defined as \[ \frac{{\partial ^2u}}{\partial x^2}\approx \frac{{u(x+\Delta x, t)-2u(x,t)+u(x-\Delta x, t)}}{(\Delta x)^2}. \]
Note: The error of these approximations is of the order \((\Delta x)^2\) and so the accuracy will increase faster for finer meshes than the previous three cases all of which have error order \(\Delta x\).
When applying finite differencing we firstt define the discretization of the \((x,t)\) space by specifying \(x_{min}\), \(x_{max}\), \(t_{min}\), \(t_{max}\), \(\Delta t\), \(\Delta x\). In the Black-Scholes euro-call case introduced above we would set \(x_{min}=0\) and \(t_{min}=0\) as asset price and time cannot be negative. We then often introduce the following cleaner notation to specify mesh location in terms of indices \[ u_{\mathscr{x}}^\mathscr{t} = u(x_{min}+\mathscr{x} \cdot\Delta x, t_{min}+\mathscr{t}\cdot\Delta t);~~\mathscr{x}=0,\dots,\mathscr{X};~~\mathscr{t}=0,\dots,\mathscr{T}, \] where \(\mathscr{X}\) and \(\mathscr{T}\) are the desired number of mesh points in \(x\) and \(t\) respectively. Using this new notation and considering the Black-Scholes euro-call option we approximate the partial derivatives in \((1)\) using forward differencing as \[ \frac{{\partial u}}{\partial x}=\frac{{u_{\mathscr{x}+1}^\mathscr{t}-u_{\mathscr{x}}^\mathscr{t}}}{\Delta x};~~ \frac{{\partial^2 u}}{\partial x^2}={u^t} \]
We can then compute the discrete partial derivatives as \[ \begin{align} \frac{\partial}{\partial S}C(m\Delta t, n\Delta S) & = \frac{{C_{n+1}^m -C_{n}^m}}{2\Delta S} \\ \frac{\partial^2}{\partial S^2}C(m\Delta t, n\Delta S) & =\frac{{\frac{{C_{n+1}^m-C_{n}^m}}{\Delta S}-\frac{{C_{n}^m - C_{n-1}^m}}{\Delta S}}}{\Delta S}=\frac{{C_{n+1}^m-2C_{n}^m + C_{n-1}^m}}{(\Delta S)^2} \\ \frac{\partial}{\partial t}C(m\Delta t, n\Delta S) & =\frac{{C_{n}^m-C_{n}^{m-1}}}{\Delta t}. \end{align} \] Substituting back into the PDE we obtain \[ \begin{align} &\begin{cases} \frac{{C_{n}^m-C_{n}^{m-1}}}{\Delta t}+r(n\Delta S) \frac{{C_{n+1}^m-C_{n-1}^m}}{2\Delta S}+\frac{1}{2\sigma^2}(n\Delta s)^2 \frac{{C_{n+1}^m-2C_{n}^m+C_{n-1}^m}}{(\Delta S)^2}-rC_{n}^m=0 \\ C_{n}^m=(n\Delta S - K)_{+} \end{cases}\\ &\implies C_{n}^{m-1}=P_{n}^+C_{n+1}^m+P_{n}^0C_{n}^m+P_{n}^- C_{n-1}^m \end{align}, \] where we have defined \[ P_{n}^\pm = \frac{1}{2}\Delta t(\sigma^2n^2\pm rm) ~~\&~~P_{n}^0=1-\Delta t(\sigma^2n^2+r). \]
- Explicit Method
- Implicit Method
- Crank-Nicolson Method
2 Finite Difference Method Applications
2.1 Finite Difference Methods for American Options
The explicit FD method is perfectly consistent with the structure of American options since it has the interpretation as a [[trinomial-tree]] proceeding backwards in time. Accordingly, we can mimic what we are doing in [[binomial-tree-option-pricing]].
Specifically, we force \(V \geq G\) to hold for value function \(V(t,s)\) and immediate payoff \(G(t,s)=(K-s)_{+}\) by taking the maximum between those two at each FD grid point. This operation gives the correct price of American options since the explicit FD method approximations \(V_{n}^{m-1}\) with \(V_{n}^m\) and the approximations \(V_{n}^m\) won’t be changed anymore, a backwards structure in time. The exercise boundary can be derived easily after solving for \(V\) from the fact that one chooses to early exercise iff \(V(t,s)=G(t,s)\).
Considering instead the implicit FD method, such an operation gives the wrong result since the implicit scheme requires solving a linear equation in \(V^{m-1}\). As a result, taking pointwise maximum values changes the approximation at one grid point, causing changed in other grid points subsequently. For example, if \(V_{n}^{m-1}\) is changed by taking pointwise maximum, then we would expect \(V_{n-1}^{m-1}\) and \(V_{n+1}^{m-1}\) to also change since the implicit scheme provides an equation in \(V_{n}^{m-1}\), \(V_{n-1}^{m-1}\) and \(V_{n+1}^{m-1}\). Consequently, the change in \(V_{n-1}^{m-1}\), \(V_{n+1}^m-1\) eventually results in change in all \(V_{i}^{m-1}\).
Instead one can use the Projective SOR (PSOR) to solve the linear system appearing in the implicit FD scheme in order to price American options. The idea is to project the solution to the linear system into the space where \(V \geq G\) by taking the maximum with the payoff within the SOR iteration. Assuming that the implicit FD scheme requires solving the linear system \[ AV^{m-1}=b, \] then the PSOR for American options gives \[ V_{i}^{m-1,(k+1)}=\max\left\{ G_{i}^{m-1},(1-w)V_{i}^{m-1,(k)}+ \frac{w}{A_{ii}}\left( b_{i}-\sum_{j=1}^{i-1}A_{ij}V_{j}^{m-1,(k+1)}-\sum_{j=i+1}^{n}A_{i,j}V_{j}^{m-1,(k)} \right) \right\} , \] where \(k\) is the iteration index and \(G_{i}^{m-1}\) is the early exercise payoff a FD grid point. This solves the problem since PSOR is an iterative scheme taking all components of \(V^{m-1}\) into consideration simultaneously and will finally converge to the solution of the equation projected on the space where \(V \geq G\). Similarly check where \(V=G\) to get the exercise boundary.