Numerical Methods for Computational Finance, Engineering and Science - (code NMCF)
With C++, STL and Boost Library implementations
Many advanced and complex problems in engineering, finance and science cannot be solved analytically and for this reason numerical methods have been developed to approximate the solution of these problems and which can then be implemented in a digital computer. These are many kinds of numerical methods that are used to solve a range of problems and in this course we discuss a number of these techniques. The contents correspond to what is taught in university courses in Numerical Analysis (typically courses 261 and 461) in combination with the implementation of numerical algorithms in C++ using the standard STL and Boost libraries. Finally, we apply all these techniques in numerous examples and applications. To our knowledge, this is the only course that offers this integrated set of features.
This course discusses the numerical building blocks that are used in applications. The approach is rigorous and integrated. In general, numerical analysis is concerned with algorithms that operate on various kinds of data structures. To this end, we discuss the following topics in detail:
- Mathematical foundations for all numerical methods.
- Approximation of functions.
- The solution of linear and nonlinear equations.
- Ordinary and partial differential equations (ODE, PDE) and their numerical solution.
- Algorithmic design and C++ code for these numerical methods.
In short, we discuss all the aspects involved in understanding and applying numerical methods to real-world applications.
Course updated November 2014
This self-contained and integrated course discusses the most important numerical methods that are used in applications. Some of the benefits of taking the course are:
- Learning both numerical analysis and numerical methods.
- Knowing which method to use in a given context.
- Topics included correspond to (and sometimes exceed) second-year mathematics university courses.
- Learn to create algorithms and implement them in C++.
- Use STL and Boost libraries in your code.
- Applications to science, engineering and computational finance.
- C++ source code provided for all algorithms.
Course Originator and Supervisor
This course has been created and is supported by Dr. Daniel J. Duffy, an internationally known writer, author, numerical analyst and C++ proponent. He has MSc and Phd theses in Numerical Analysis from Trinity College, Dublin and has used the methods in engineering and finance. He has also been writing C++ applications since 1989.
This course is also available as a distance learning course.
Part I: Approximation of Functions
Error Analysis and Floating-Point Arithmetic
- Error estimation: concepts
- Forward and backward error analysis
- Floating-power arithmetic
- Well-conditioned and ill-conditioned problems
- Number systems
- Linear and nonlinear k-step recurrence relations
- The calculus of finite differences
- Linear recurrence relations with constant coefficients
- Examples and applications
Numerical Treatment of Series
- Rate of convergence
- Estimating the remainder
- Acceleration of convergence
- Aitken’s delta-squared process
Part II: Numerical Differentiation, Integration and Interpolation
- Approximate derivatives and sources of error
- Centred and one-sided differences
- Difference tables
- Ill-conditioned processes
- Newton’s forward formula
- Stirling’s formula
Numerical Integration in one Dimension
- Basic rules (rectangle, Romberg, trapezoidal)
- Truncation error
- Newton-Cotes formulae
- Improper integrals
Advanced Numerical Integration
- Gaussian quadrature and orthogonal polynomials
- Multidimensional integrals
- Gauss-Kronod method
- Numerical integration using the Monte Carlo method
Interpolation and Extrapolation
- Linear interpolation
- Cubic spline interpolation
- Hermite interpolation
- Inverse interpolation
- Extrapolation using polynomials and rational functions
Advanced Interpolation Methods
- Akima and Hyman methods
- Interpolation in two or more dimensions
- Neville’s algorithm
- Inverse interpolation
Part III: Numerical Linear Algebra
Direct Methods for Solving Linear Systems of Equations
- LU and Cholesky decomposition
- Gussian elimination and pivoting strategies
- Triangular and block triangular systems
- Conjugate Gradient Method (CGM)
Iterative Methods for Solving Linear Systems of Equations
- Jacobi, Gauss-Seidel, SOR and SSOR methods
- PSOR method
- Line Jacobi, Gauss-Seidel and SOR methods
Error Analysis for Linear Systems
- Perturbation analysis
- Scaling of linear systems
- Ill-conditioned systems
- Rounding errors
- Modified Gram-Schmidt method
- QR decomposition
- SVD decomposition
- Quadratic forms
Eigenvalues and Eigenvectors
- Gerschgorin’s method; Power method
- Schur and Householder transformation
- Givens and Householder reductions
- Condition number
Orthogonalisation and Least Squares
- Overdetermined linear systems
- Normal equations
- Orthogonalisation methods
- Least squares solution with linear constraints
Part IV: Nonlinear Equations
- Taxonomy of functions
- Gradient and Hessian
- Jacobian matrix
- General theory of iterative methods
- Secant / Steffensen
- Regula Falsi
- Halley method
- Modified Newton-Raphson
- Continuation (homotopy) methods
- Fixed point methods
- Error estimation
- Ill-conditioned systems
Part V: Ordinary Differential Equations (ODE)
- Scalar ODE and systems of ODEs
- Vector-matrix notation for systems
- Existence, uniqueness and continuity
- Continuous and discrete Gronwall inequalities
Introduction to Numerical Methods for ODEs
- Notation and examples
- One-step and multi-step methods
- Convergence, stability and consistency
- Local error and error bounds
Numerical Solution of First-Order ODEs
- Euler Method, modified midpoint method
- Explicit and implicit methods
- Runge-Kutta methods
- Predictor-corrector methods
- Stiff problems
Mathematical Theory of Two-Point Boundary Value Problems
- Linear and nonlinear problems
- Existence and uniqueness results
- What kinds of associated boundary conditions?
- Convection-diffusion-reaction equations
Numerical Solution of Two-Point Boundary Value Problems
- The finite difference method (FDM)
- FDM for conservative and non-conservative equations
- Exponentially fitted methods
- M-matrices and the solution of tridiagonal matrix systems
Part VI: Optimisation
Overview of techniques
- Linear programming
- Integer programming
- Nonlinear programming
- Univariate and multivariate Optimisation
- Steepest descent
- Modified and Quasi Newton Methods
- Conjugate Gradient Method
- Non-linear least squares
- Constrained and unconstrained optimisation
Part VII: Elementary Partial Differential Equations (PDE)
- Elliptic, hyperbolic and parabolic equations
- Convection, diffusion, reaction terms
- Conservative and non-conservative equations
- Boundary conditions
- Laplace and Poisson equations
- Heat equation
- Wave equation
- First-order equations
Finite Difference Methods for PDE
- Explicit and implicit methods
- Stability, consistency and convergence
- Euler and Crank-Nicolson methods
- Advanced FD schemes
Some knowledge of calculus and algebra is assumed. We review the necessary mathematical foundations in the course. Some knowledge of a high-level programming language (ideally C, C++, C# or Java) is also recommended.
Who should attend?
This course is of general applicability. We see three specific groups who can benefit from this course:
- Undergraduates in disciplines that use and need mathematical and numerical methods. This course fills the gap in our opinion.
- Those working in industry and finance who feel that they need to broaden their knowledge.
- As a refresher course for those professionals who would like to learn new skills or upgrade existing ones.
Duration, price, date, locations and registration
||€ 3300.-- ex. VAT.
€ 3993.-- inc. 21% VAT.
|Dates and location:
||(click on dates to print registration form)
|No dates yet.|
This course can be organised on-demand. Call Datasim (+31-72-2204802) or e-mail for more information about the possibilities.