Skip to content

Introduction to Scientific Computation - Numerical Methods and Python Implementation

Notifications You must be signed in to change notification settings

christopher-j-dixon/Introduction-to-Scientific-Computation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction to Scientific Computation

Course Overview

Educational Aims

This course aims to:

  1. Introduce numerical approximation for problems that cannot be solved analytically.
  2. Develop skills in Python for implementing numerical methods.
  3. Provide a foundation in computational applied mathematics.

Summary of Content

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

Learning Outcomes

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.