This course aims to:
- Introduce numerical approximation for problems that cannot be solved analytically.
- Develop skills in Python for implementing numerical methods.
- Provide a foundation in computational applied mathematics.
This course covers basic techniques in numerical methods and numerical analysis for generating approximate solutions. Topics include:
- Nonlinear equations:
- Bisection method, fixed-point iteration, Newton’s method, convergence
- Linear systems of equations: Direct methods
- Gaussian elimination, operation count, pivoting strategies, matrix factorisation, special matrices (diagonally dominant, symmetric positive definite)
- Linear systems of equations: Iterative techniques
- Matrix norms, Jacobi & Gauss-Seidel method, convergence
- Polynomial interpolation:
- Lagrange polynomials, Lagrange form, error analysis
- Numerical calculus:
- Difference formulae, numerical quadrature (trapezoidal, Simpson & midpoint rule, composite rules, Richardson extrapolation)
- Numerical ODEs:
- Euler’s method, well-posedness of IVPs, higher-order RK methods, local truncation error
- Implementing algorithms in Python
- Finite digit arithmetic
Upon successful completion of this course, students will be able to:
- L1: Solve nonlinear equations using root-finding methods, and analyse their convergence.
- L2: Solve linear systems of equations using direct methods, and analyse their computational complexity.
- L3: Solve linear systems of equations using iterative techniques, and analyse their convergence.
- L4: Approximate functions by polynomial interpolants, and analyse their accuracy.
- L5: Approximate derivatives and definite integrals using numerical differentiation and integration, and analyse their convergence.
- L6: Approximate ODEs using numerical methods, and analyse their convergence.
- L7: Implement reusable codes in Python.