ASSIGNMENT 2
PART 1: DERIVING THE EXPLICIT SCHEME FOR BLACK-SCHOLES PDE
Deadline: April 17, 2022. Please submit the assignment in class and before the class starts
Problem Statement. The main goal of this assignment is to practice the implicit FD Scheme for solving the Black-Scholes PDE directly. Consider the Black-Scholes PDE of
∂f
∂t + rS
∂f
∂S +
1
2 σ2S2
∂2f
∂S2 − rf = 0
In addition, consider the European put option terminal and boundary value conditions in the form of
f(S, T) = max {K − ST , 0} f(Smax, t) = 0, for all t ∈ (0, T] f(0, t) = K exp {−r(T − t)} , for all t ∈ (0, T]
(1) Approximate the derivatives in the Black-Scholes equations.
Remark 0.1. In contrast to what we saw in heat equations in class, the Black-Scholes PDE here is backward in time (starts form the terminal value in time), and hence you need to take this into consideration when you are approximating the derivatives.
(2) Approximate the boundary and initial values. (3) Find the iterative updates for the explicit scheme. (4) Prove that the explicit FD method can be unstable.
Problem Statement. Recall that for finding the approximate solution in a numerical method in each iteration, we need to solve a system of linear equations. Therefore, we need to learn efficient methods for solving these linear equations. In this problem we will review two of these methods.
(1) Explain the LU decomposition method for solving a system of linear equations. Is this methods applicable for any systems? Design and solve a small scale linear system using this method manually.
(2) Explain the Successive over-relaxation (SOR) iterative method. Is this method applicable for any system of linear equations? write the pseudo algorithm of this method. Design and code an example in Python and solve the problem.
1
Assignment 2, Part 2: Implementation of the Numerical Methods
Deadline: April 29, 2022. The submission will be online through UIUC Box.
Problem Statement. For the Black-Scholes PDE of the part 1, We are going to implement two methods, Explicit and Crank-Nicolson.
(1) Formulate the Crank-Nicolson method (including the initial and boundary value conditions) to show the iterations in the matrix form (this step is essential before you can implement the method).
(2) Consider the initial price S◦ = 50, K = 60, r = 0.1, σ = 0.2 and T = 3/2. Let Smax = 100. (a) Plot the option price f(S, t) graph (this is should be done in 3-dimension) and interpret the
results. (b) For the plot of f(S, t) discuss that the initial and boundary value conditions are satisfied.
(3) Implement the explicit FD method. Report the Black-Scholes price for the Put Option, i.e. f(S◦, 0), for the following cases
• M = N (M is the number of points on the t-axis and N the number on the S-axis, respectively). Consider M = N = 20, 50, 80, 100, 200, 300, 400, 500, 700, 1000. Report the result in a table with two columns M = N and f(S◦, 0).
• For the case M ̸= N and are M = 20, N = 40, M = 40, N = 80, M = 60, N = 120, M = 80, N = 160, M = 100, N = 200, M = 200, N = 400, M = 300, N = 600, M = 400, N = 800, and finally, M = 500, N = 1000. Report the results in a table form please with three columns M, N and f(S◦, 0).
(4) Implement the Crank-Nicolson method for the same problem and with the same combination of M and N.
(5) Do you see any difference in the convergence of Explicit method and Crank-Nicolson method? (6) In Crank-Nicolson methods, do you see any difference in the convergence rate when M = N and
when M ̸= N? Which one is faster? (7) Finally, consider the parmeters in part (2), fix M = 200 and N = 400. Report f(S, 0) for S =
20, 30, 40, · · · , 100 in a table with two columns S and f(S, 0).
2