đź”— View the code on GitHub

This is a collection of numerical methods that I implemented in Python as part of my university’s numerical analysis courses. Each method comes with a short Jupyter notebook, so I could check that the code gives correct answer on a real example.

MTH 2203 — Numerical Analysis I

  • Root finding: bisection, false position, fixed-point iteration, Newton-Raphson, convergence acceleration
  • Interpolation: Newton’s forward/backward/divided-difference/general forms, Lagrange, Stirling’s central-difference formula, extrapolation
  • Differentiation & integration: Richardson extrapolation, trapezoidal, Simpson’s, Weddle’s, adaptive and Gaussian quadrature
  • Linear systems: Gaussian elimination, partial pivoting, LU factorization, Jacobi, Gauss-Seidel, SOR, the power method
  • Nonlinear systems: multivariate fixed-point iteration, Newton’s method

MTH 3105 — Numerical Analysis II

  • Initial value problems: Picard’s method, Euler’s method, higher-order Taylor methods, and generic Butcher-tableau Runge-Kutta solvers (explicit and implicit)
  • Stability theory: absolute/relative stability, the order-1 through order-4 stability functions, PadĂ©(1,1) and PadĂ©(2,2) approximants, plotted as regions in the complex plane
  • Convergence and stability of single-step methods (Euler, Heun, midpoint, and 2nd-4th order explicit/implicit RK), verified empirically via log-log convergence plots
  • Multistep methods: the general linear multistep formula, the root condition, and boundary-locus stability regions
  • Boundary value problems: linear and nonlinear shooting methods

I also show the stability region plots. The notebooks also compute the stability orders.