Skip to content

Explore the foundations of scientific computing with this collection of Jupyter notebooks on numerical methods. This repository covers key topics—from solving linear/nonlinear systems to polynomial interpolation and numerical differentiation—with from-scratch Python implementations.

Notifications You must be signed in to change notification settings

ApurbaKumarNath/numerical-methods-python

Repository files navigation

Foundations of Numerical Methods in Python

View Live Demo

This repository is a collection of Jupyter notebooks that explore and implement fundamental numerical methods from the ground up. Each notebook is designed to be a self-contained guide, combining the underlying theory with practical Python code.

The primary libraries used are NumPy for numerical operations, Pandas for data presentation, and Matplotlib for visualization.

Philosophy

The goal of this project is to demonstrate a clear understanding of how these powerful algorithms work. Each topical notebook is structured in two parts:

  1. Theory: A detailed explanation of the mathematical concepts, formulas, and logic behind the method.
  2. Implementation: A from-scratch Python implementation of the algorithm, often accompanied by examples and visualizations to verify the results.

This approach aims to bridge the gap between theoretical knowledge and practical application.

Table of Contents

For easy navigation, here is an overview of the topics covered. You can also browse the code directly in an interactive VS Code environment using the Live Demo link above.


The Numerical Methods Cookbook

The Numerical_Methods_Cookbook.ipynb in the root directory serves as a practical, hands-on companion to the more theoretical notebooks. It is structured in two distinct phases to demonstrate both foundational understanding and flexible problem-solving.

  1. Phase 1: Core Logic, Unwrapped This section strips away the complexity of classes and functions to present the core algorithmic logic of each method in its purest form. Using only fundamental loops and NumPy array operations, these from-scratch implementations are perfect for understanding the step-by-step process of methods like Vandermonde, Lagrange, and Newton's Divided Difference without the overhead of object-oriented design.

  2. Phase 2: Algorithmic Puzzles & Analytical Thinking Moving beyond direct implementation, this phase treats numerical methods as problem-solving puzzles. It features modified versions of the standard algorithms, designed to test a more flexible and robust understanding. In some cases, a solution is provided, challenging the reader to deduce the original problem statement—simulating a reverse-engineering and analytical thinking exercise. This section showcases the ability to adapt foundational knowledge to non-standard scenarios, a crucial skill in any applied engineering or data science role.


How to Use

  1. Clone the repository:
    git clone https://github.com/ApurbaKumarNath/numerical-methods-python.git
  2. Navigate to the directory:
    cd numerical-methods-python
  3. Install the required dependencies:
    pip install -r requirements.txt
  4. Launch Jupyter Notebook or JupyterLab to explore the files.
    jupyter notebook

About

Explore the foundations of scientific computing with this collection of Jupyter notebooks on numerical methods. This repository covers key topics—from solving linear/nonlinear systems to polynomial interpolation and numerical differentiation—with from-scratch Python implementations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published