This repository contains a collection of projects showcasing various circuit solving techniques and optimization algorithms implemented using Python and popular libraries such as NumPy, Cython, NetworkX, SciPy, Matplotlib, and Mpltoolkits.
-
Circuit Solver using Modified Nodal Analysis (MNA): Implemented a Circuit Solver using the Modified Nodal Analysis matrix method. It utilizes NumPy for efficient matrix operations and the Gaussian elimination method to solve the resulting linear equations.
-
Combinational Digital Circuits Solver: Created a solver for combinational digital circuits using the NetworkX library. The solver employs a Topological sort algorithm and an event-driven approach to simulate the circuits and determine the output values.
-
Non-linear Curve Fitting with FFT and SciPy: Utilized the Fast Fourier Transform (FFT) and the SciPy library to perform non-linear curve fitting on complex noise-mixed functions. The project demonstrates the effectiveness of these techniques in accurately fitting curves to noisy data.
-
Animated Polygon Morphing: Implemented polygon morphing using Matplotlib, showcasing the transformation from a triangle to an octagon through a series of intermediate shapes. The animation provides a visual representation of the morphing process.
-
Gradient Descent Path Visualization: Rendered the path of the Gradient Descent optimization algorithm for 3D functions using Mpltoolkits. The algorithm aims to find the minimum of the given function, and the resulting path is visually displayed.
-
Simulated Annealing for Traveling Salesman Problem: Programmed the Simulated Annealing algorithm, an optimization algorithm, to solve the NP-hard Traveling Salesman Problem (TSP). The algorithm aims to find an optimal tour that visits all cities with the minimum possible distance.
-
Increased performance using cython: Significantly increased the speed of execution of the Circuit Solver implemented previously through Modified Nodal Analysis by leveraging the Cython programming language.