A professional, high-performance Python framework for solving classic Numerical Analysis problems — engineered for academic rigor and built to stand out on a GitHub portfolio.
This isn't just a homework dump — it's a modular, object-oriented solver engine where every assignment is implemented as an independent, testable, reusable component. Each problem ships with its own convergence analysis, error tracking, and (where applicable) visualization, wrapped in a clean CLI driven by a single student ID.
Key Features:
- 🔁 Analytical + numerical derivative support for root-finding (no finite-difference guesswork)
- 📊 Convergence tables and iteration logs (
tabulate-powered) for every method - 🌡️ Full 2D PDE solver with Gauss-Seidel relaxation and heatmap visualization
- 🎛️ Personalized parameters per student — no two runs are identical
- 📈 Matplotlib visualizations for root convergence, integration regions, and temperature fields
- 🧩 Zero external solver dependencies for core logic — the math is implemented from scratch, not just called from a library
- Why This Project
- Project Architecture
- Student ID Parameterization System
- Assignments & Solutions Breakdown
- Problem 1: Newton-Raphson Root Finding (Hyperbolic)
- Problem 2: Newton-Raphson Polynomial Root Finding
- Problem 3: Non-Linear Spring Energy Equilibrium
- Problem 4: Logarithmic Root Determination
- Problem 5: Numerical Quadrature (Definite Integration)
- Problem 6: 2D Heat Transfer PDE (Gauss-Seidel Method)
- Problem 7: LC Ladder Network Dynamics & Eigenvalues
- Sample Output
- Installation & Execution
- License
numerical-analysis-suite/
│
├── numerical_suite.py # Main object-oriented solver engine
├── main.py # CLI runner with custom student ID input
├── requirements.txt # Dependencies (numpy, scipy, matplotlib, tabulate)
└── README.md # Project documentation & mathematical formulations
To ensure personalized parameters for each student, all assignment variables are derived from the 4 rightmost digits of the Student ID:
For instance, given ID suffix 1234:
$a = 1, b = 2, c = 3, d = 4$ $9.\mathbf{bcda} = 9.2341$ $k_1 = 4\mathbf{c}00\mathbf{b} = 43002$
Find the root of the hyperbolic equation:
Analytical Derivative:
Newton-Raphson Iteration Formula:
Solve for
First Derivative:
A dropped mass
Derivative with respect to
Parameters:
-
$k_1 = 4\mathbf{c}00\mathbf{b}$ N/m -
$k_2 = 4\mathbf{d}$ N/m$^{3/2}$ -
$h = 0.4\mathbf{c}$ m -
$m = 98$ kg,$g = 9.81$ m/s$^2$
Solve:
Exact Analytical Solution:
Evaluate the definite integral:
Methods Implemented:
- Composite Trapezoidal Rule
- Composite Simpson's
$1/3$ Rule - Adaptive Gaussian Quadrature (
scipy.integrate.quad)
Steady-state 2D heat conduction governed by Laplace's Equation:
Discretized finite-difference grid equation for node
Boundary Conditions:
- Top:
$25^\circ\text{C}$ - Bottom:
$75^\circ\text{C}$ - Left:
$100^\circ\text{C}$ - Right:
$0^\circ\text{C}$
Mesh current differential equations for 3-stage LC filter:
System Matrix
Eigenvalue Problem:
Parameters:
$I(t) = 2.\mathbf{bcd'a} \sin(\mathbf{bc} \cdot t)$ $\mathbf{L} = [0.\mathbf{bd'ca}, 0.\mathbf{cd'ab}, 0.\mathbf{ad'bc}]$ $\mathbf{C} = [0.\mathbf{d'cba}, 0.\mathbf{d'abc}, 0.\mathbf{bcd'a}]$
$ python main.py --id 1234
╔══════════════════════════════════════════════════╗
║ NUMERICAL ANALYSIS SUITE — Student ID: 1234 ║
╚══════════════════════════════════════════════════╝
[Problem 1] Newton-Raphson (Hyperbolic Root)
┌───────┬────────────┬────────────┬──────────────┐
│ Iter │ x_k │ f(x_k) │ Error │
├───────┼────────────┼────────────┼──────────────┤
│ 0 │ 3.000000 │ 0.999999 │ — │
│ 1 │ 2.849213 │ 0.998842 │ 1.5079e-01 │
│ 2 │ 2.812004 │ 0.001203 │ 3.7209e-02 │
│ ... │ ... │ ... │ ... │
└───────┴────────────┴────────────┴──────────────┘
✔ Converged in 6 iterations | Root: x* = 2.808921
[Problem 6] 2D Heat Transfer PDE (Gauss-Seidel)
✔ Converged after 143 sweeps | Tolerance: 1e-6
→ Temperature field saved to heatmap_output.png
[Problem 7] LC Ladder Network Eigenvalue Analysis
Eigenfrequencies (rad/s): [1204.5, 3872.1, 6510.8]
→ Mode shapes saved to eigenmodes_output.png
Actual figures (convergence plots, heatmaps, mode shapes) are generated in the
output/directory on each run.
-
Clone Repository:
git clone https://github.com/your-username/numerical-analysis-suite.git cd numerical-analysis-suite -
Install Dependencies:
pip install -r requirements.txt
-
Run Solver Suite:
python main.py --id <your_student_id>
Armin Ilat
Electrical Engineering Student
Interests:
Electrical Engineering · Scientific Computing · Programming · Digital Communications · Control Systems · Engineering Simulation
- LinkedIn: linkedin.com/in/armin-ilat
- GitHub: github.com/Armin-Il
- YouTube: @VoltVerse-Electrical
This project is licensed under the MIT License.
Developed for Shahid Beheshti University (SBU) Numerical Analysis Course.