đź”— 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.
