Distance Learning  Advanced Finite Difference Method (FDM) for Computational Finance  (code DLFDM)
The goal of this distance learning course is to approximate the solution of partial differential equations (PDEs) by the Finite Difference Method (FDM) with applications to derivative pricing in computational finance. This course is an indepth introduction from PDE model specification through efficient and accurate finite difference schemes for a range of onefactor and twofactor option pricing problems. The focus is on understanding the financial, mathematical and numerical skills needed in order to set up the discrete system of equations that we can then implement in C++11, for example.
This course is suitable for frontoffice and middleoffice quant developers who wish to learn the finite difference method for computational finance. The contents of the course is also relevant to other disciplines such as science and engineering.
This course is given in several forms: as distance learning, at client site or as a regular event in various cities.
Subjects Covered
 Specifying financial models as PDEs. Choosing the ‘best’ PDE in a given use case.
 A range of modern finite difference schemes for one and twofactor problems.
 Supporting numerical methods (matrix algebra, nonlinear solvers, interpolators).
 C++11 and library integration.
 Assembling, running and testing the discrete system of equations.
What do you learn?
 The mathematical and numerical foundations of PDE and FDM.
 Applying finite difference methods to computational finance.
 Setting up algorithms and implementing them in a programming language.
 Running, testing and stresstesting the finite difference schemes.
What do you receive?
 Do the course at your own pace. No time limit on course access.
 Copies of the books “Finite Difference Methods in Financial Engineering” and “Financial Instrument Pricing using C++, Second Edition” by Daniel J. Duffy.
 Ongoing support via email. Exercises, review and feedback.
 Endofcourse exam (e.g. Skype) and Certificate.
We also provide a C++11 software framework (with full source code) that you can use in your work to test your schemes. Of course, you can use other languages such as Python or C#, for example.
Trainer and Originator
Daniel J. Duffy is the originator and mentor of this course. He has a PhD in the numerical analysis of partial differential equations from the University of Dublin (Trinity College).
Course contents updated October 2017
Course Contents
Part 1 Financial and Mathematical Models
In this section we discuss the financial and mathematical PDE models that we approximate using the finite difference method in later sections. We examine the properties of the solution in order to provide insights into the problem at hand. We discuss a number of methods such as the Fichera theory and domain transformation that we shall use in examples in computational finance.
PDE Categories
 Onefactor, multifactor
 Linear, semilinear, nonlinear
 Domain (bounded, semiinfinite, infinite)
 Timedependent and timeindependent PDEs
 Conservative and nonconservative PDE forms
 Reduction to firstorder systems
Special Kinds of PDE
 Parabolic and elliptic PDE
 Firstorder hyperbolic PDE
 ‘Asianstyle’ PDE
 Ordinary differential equations (ODEs)
Describing PDEs
 PDE coefficients
 Boundary conditions (Dirichlet, Neumann, none, linearity)
 Initial conditions
 Wellposedness and continuity
 Energy inequality; existence and uniqueness of solution
Special Properties
 Convection dominance
 Discontinuous initial conditions
 Domain truncation and domain transformation
 Mixed derivatives
 The Fichera theory: Feller conditions
Part 2 Finite Difference Method: Fundamental Techniques
We discuss onefactor PDEs in detail and their approximation by finite difference schemes. We apply these schemes to general convectiondiffusionreaction equations and boundary conditions and we show their application to the onefactor Black Scholes PDE.
We also discuss the numerical analysis of the finite difference method in which we give necessary and sufficient conditions for a finite difference scheme to be stable and to converge to the solution of the PDE that it is approximating. Some methods that we discuss are the Method of Lines (MOL), exponential fitting and the Alternating Direction Explicit (ADE) method.
Attention Points
 Continuous to discrete space: meshes and mesh generation
 Approximation of partial derivatives
 Onestep and multistep time marching schemes
 Full discretisaton
 Semidiscretisation and Method of Lines (MOL)
Some Wellknown Schemes
 Explicit and implicit Euler
 Crank Nicolson
 Richardson extrapolation
 Alternating Direction Explicit (ADE)
 Monotone schemes and Mmatrices
Auxiliary Numerical Methods
 Solution of linear and nonlinear systems
 Interpolation and smoothing
 Numerical integration
 Optimisation (LevenbergMarquardt, Differential Evolution)
 Eigen and Boost Matrix libraries
Analysis of FDM
 Stability, consistency and convergence
 Conditional and unconditional stability
 Von Neumann stability analysis
 Maximum principle
 Order of accuracy and rate of convergence
Example: OneFactor Black Scholes PDE, I
 Domain truncation versus domain transformation
 Call and put options: boundary conditions
 Payoff functions; handling discontinuities
 Crank Nicolson and Rannacher methods
 Using exponential fitting
Example: OneFactor Black Scholes PDE, II
 Avoiding oscillations: fully implicit method and extrapolation
 Critique of the Crank Nicolson method
 BDF2 and TRBDF2 schemes
 ADE method for the Black Scholes PDE
 More general cases and Fichera boundary conditions
 Approximating the Greeks (sensitivities)
Numerical Tools
 LU and Cholesky decomposition
 Solution of tridiagonal matrix systems
 Linear and cubic spline interpolation
 Univariate and bivariate normal distributions
Part 3 Advanced (Nonlinear) Models
In this section we introduce a number of linear and nonlinear PDEs and finite difference schemes. In particular, we consider free and moving boundary values problems that describe an option’s early exercise features. Since this is a nonlinear problem we see that the methods from Part 2 are not directly applicable. We then resort to nonlinear solvers and transformations to make the problem more tractable.
We discuss the Method of Lines (MOL) in detail. This method reduces a PDE to a system of ordinary differential equations (ODEs) by discretising the underlying space variables only. The resulting ODE system can then be handed to a solver such as Mathematica’s NDSolve or the Boost C++ library odeint. These libraries are suitable for stiff and nonstiff systems of nonlinear ODEs.
Early Exercise Features
 Free and moving boundaries
 Formulations (fixed domain, front tracking)
 Variational inequalities and PSOR
 BrennanSchwartz method
 Penalty methods
The Method of Lines (MOL) Overview
 Semidiscretisation
 Vertical MOL and horizontal MOL (Rothe’s method)
 Example: onedimensional heat equation
 Advantages of MOL
 Application areas
MOL in Detail
 Stiff and nonstiff ODEs
 Linear and nonlinear systems
 Incorporating nonDirichlet boundary conditions into MOL
 Adaptive and nonadaptive ODE solvers
MOL PDE Examples
 Black Scholes
 Cox Ingersoll Ross (CIR)
 Uncertain Volatility Model (UVM)
 CEV model
 Pde for credit value adjustment (CVA)
 MOL in Mathematica and Boost C++ odeint
ADE for oneFactor Problems
 Background and motivation
 Saul’yev, BarakatClark and Larkin variants
 ADE for convection terms
 Conditional consistency; stability
 Boundary conditions
Other Differential Equations
 FokkerPlanck
 Firsttime exit PDE
 Riccati ODE
Kinds of Boundary Conditions
 Dirichlet, Neumann, Robin
 Linearity
 PDE on boundary (hyperbolic, parabolic)
 Fichera conditions
Part 4 TwoFactor Models
In this section we discuss several popular finite difference methods to approximate the solutions of the PDEs describing twofactor option pricing. We discuss Alternating Direction Implicit (ADI) method and the method of Fractional Steps (“Soviet Splitting”) which originated in the United States and the former Soviet Union in the 1960’s, respectively. We apply them to several PDEs in computational finance. Of particular importance is the problem of approximating the mixed derivatives in the PDE to ensure that the resulting scheme is monotone and does not lead to spurious oscillations.
We also discuss MOL and ADE for linear and nonlinear PDEs and we compare them with ADI and splitting methods.
Contenders
 Alternating Direction Implicit (ADI)
 Splitting (Fractional Steps method)
 ADE in two dimensions
 Other methods
The ADI Method
 Using ADI for twofactor PDE
 Mixed derivatives using CraigSneyd
 Test cases: basket options and Heston model
 Generalising the ADI method
The Operator Splitting Method
 Yanenko, Marchuk and Strang splittings
 Explicit and implicit splitting
 Handling mixed derivatives and boundary conditions
 Splitting and predictorcorrector methods
 Marchuk 1221 model
The ADE Method
 Origins and background; how it differs from ADI and splitting
 Motivating ADE: from heat pde to convectiondiffusion and mixed derivatives
 Onesided and centred variants of ADE
 ADE in 3 factors
Comparing ADI, Splitting and ADE Methods
 How they handle mixed derivatives
 Boundary conditions
 Accuracy and robustness of the schemes
 Improving accuracy
 Can the scheme be parallelised?
Mixed Derivatives
 Modeling correlation: extreme cases
 CraigSneyd, Verwer, Hout_Welfert, Yanenko
 Stresstesting mixed derivatives
 Test case: compare ADI, splitting and ADE for Heston model
Test Cases
 Basket options
 Heston model
 Asian options
 Anchoring model (Wilmott, Lewis and Duffy)
 Exact solutions
Modelling Jumps
 Merton’s and Kou models
 Partial IntegroDifferential Equations (PIDE)
 Implicitexplicit Euler method
 Implicitexplicit RungeKutta method
Part 5 System Assembly, Software Framework and Stress Testing
In this final part we analyse finite difference schemes to determine their accuracy, efficiency and robustness for a range of input parameters. We need to investigate a number of numerical and computational attention points and we employ whatever tools and methods are needed in order to reach a conclusion. At this stage it may be desirable or even a requirement to view the project as having a software design aspect. For this course, it is an optimisation step but it is useful for frontoffice and middleoffice quants who wish to create software systems from reusable software components.
We provide a number of software tools to promote the quality of the software testing process, including visualisation of results in the C++ Excel Driver interface, automatic testing by generating random numbers for parameter input and useful numerical tools such as the ability to interpolate values at non mesh points.
Basic Accuracy Testing (ProofofConcept)
 Estimating the local truncation error
 The effects of domain truncation and domain transformation
 Which boundary conditions are optimal?
 Choice of matrix solver
Improving Accuracy and Robustness
 Nonsmooth payoffs
 Convectiondominance and exponential fitting
 Computing option sensitivities
 Automatic testing: producing a report
Testing Accuracy: Sparring Partners
 Is there an analytic/quasianalytic solution to test against?
 Monte Carlo solution
 Binomial method solution
 Twoasset, Heston analytic solution
Using C++11 and C++14
 Random number and distributions library
 C++ Currency, parallel computing and tasks
 Loop unrolling
 Using OpenMP
 Boost and Eigen
C++ Software Framework
 Domain Architecture (Duffy)
 Objectoriented, generic and functional programming styles
 A defined and reproducible software architecture
 Variations; incremental development
Prerequisites
We assume basic knowledge of differential equations and finite difference theory. The models and examples in the course are taken from computational finance.
Some skills in arithmetical and algebraic manipulation are useful, especially when assembling systems of discrete equations.
Knowledge of a mathematical typesetting system (ideally, LaTeX) is strongly recommended.
Who should attend?
This course has been developed so that you can use the theory to solve existing problems as well as applying the knowledge to the pricing of new financial instruments. In particular, the course is for professionals with a strong mathematical background:
 Financial engineers who design new pricing models
 Analysts and quants
 Other professionals who wish to understand and apply advanced numerical methods to derivatives pricing
Duration, price, date, locations and registration
Course duration: 
Distance learning. You study in your own pace. Under normal circumstances, this should take you between 1 and 1.5 years to complete. 
Dates and location: 
(click on dates to print registration form) 
Date(s) 
Location 
Price 
Language 
Any time 
Distance Learning 
€ 3300. ex. VAT € 3993. inc. 21% VAT 
English 
Click here to register.
Attention
This distance learning course can start at any moment. We offer companywide discount schemes for groups.
For fulltime university students we offer a discount of 50%.
