https://github.com/saadsalmanakram/numerical-computing
Working on core numerical computing using dedicated libraries in this genre...
https://github.com/saadsalmanakram/numerical-computing
cupy jax numpy scipy sympy theano xarray
Last synced: 4 months ago
JSON representation
Working on core numerical computing using dedicated libraries in this genre...
- Host: GitHub
- URL: https://github.com/saadsalmanakram/numerical-computing
- Owner: saadsalmanakram
- Created: 2024-10-05T11:12:43.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-01-28T04:53:50.000Z (4 months ago)
- Last Synced: 2025-01-28T05:26:47.593Z (4 months ago)
- Topics: cupy, jax, numpy, scipy, sympy, theano, xarray
- Homepage:
- Size: 2.93 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
# π’ Numerical Computing: Mastering NumPy, SciPy, SymPy, and CuPy

## π Introduction
**Numerical Computing** is the foundation of scientific computing, engineering simulations, and data analysis. This repository provides a **comprehensive guide** to **NumPy, SciPy, SymPy, and CuPy**, helping learners master numerical methods, symbolic computation, and GPU-accelerated operations.
π **Understand the fundamentals of numerical computing**
π **Learn efficient matrix operations** with NumPy & CuPy
π **Explore scientific computing** with SciPy
π **Perform symbolic mathematics** using SymPy
π **Optimize performance** with GPU acceleration and parallel processing---
## π Features
- π’ **NumPy**: Vectorized operations, linear algebra, random numbers
- β‘ **CuPy**: GPU-accelerated numerical computing
- π¬ **SciPy**: Scientific computing (optimization, signal processing, ODEs)
- π **SymPy**: Symbolic mathematics (calculus, algebra, equation solving)
- π **Performance Optimization**: Parallelism, CUDA, memory-efficient computations
- π **Practical Applications**: Signal processing, numerical integration, differential equations---
## π Prerequisites
Before getting started, ensure you have the following installed:
- **Python 3.x** β [Download Here](https://www.python.org/downloads/)
- Libraries: NumPy, SciPy, SymPy, CuPy
- Jupyter Notebook for interactive exploration---
## π Repository Structure
```
Numerical-Computing/
βββ numpy/ # NumPy operations
βββ scipy/ # SciPy-based scientific computing
βββ sympy/ # Symbolic mathematics with SymPy
βββ README.md # Documentation
βββ requirements.txt # Python dependencies
```---
## π Getting Started
### 1οΈβ£ Clone the Repository
```bash
git clone https://github.com/saadsalmanakram/Numerical-Computing.git
cd Numerical-Computing
```### 2οΈβ£ Install Dependencies
```bash
pip install -r requirements.txt
```### 3οΈβ£ Run an Example Notebook
Launch Jupyter Notebook and open one of the provided notebooks:
```bash
jupyter notebook
```---
## π Topics Covered
### π’ **NumPy - The Core of Numerical Computing**
- **Creating & Manipulating Arrays**
- **Matrix Operations & Linear Algebra**
- **Broadcasting & Vectorization**
- **Random Number Generation**
- **Fourier Transforms (FFT)**### π¬ **SciPy - Advanced Scientific Computing**
- **Optimization (Minimization, Curve Fitting)**
- **Numerical Integration (Quad, Romberg, Simpsonβs Rule)**
- **Differential Equations (ODEs, PDEs)**
- **Signal Processing (Filtering, FFT, Spectral Analysis)**
- **Statistical Functions & Distributions**### π **SymPy - Symbolic Computation**
- **Algebraic Manipulation & Equation Solving**
- **Calculus (Derivatives, Integrals, Limits)**
- **Matrix Algebra & Determinants**
- **Series Expansions & Laplace Transforms**
- **Generating LaTeX Output**### β‘ **CuPy - GPU-Accelerated NumPy**
- **Accelerating NumPy with CUDA**
- **Performing Fast Matrix Computations**
- **Memory Management & GPU Array Handling**
- **Parallel Processing**### π **Performance Optimization Techniques**
- **Vectorization vs. Loops**
- **Memory Management & Broadcasting**
- **CUDA Acceleration with CuPy**
- **Parallel Computing with SciPy**---
## π Example Code
### π’ **NumPy: Efficient Matrix Multiplication**
```python
import numpy as npA = np.random.rand(1000, 1000)
B = np.random.rand(1000, 1000)# Fast Matrix Multiplication
C = np.dot(A, B)
```### π¬ **SciPy: Solving a Differential Equation**
```python
from scipy.integrate import odeint
import numpy as npdef dydt(y, t):
return -y + np.sin(t)t = np.linspace(0, 10, 100)
y0 = 1.0solution = odeint(dydt, y0, t)
```### π **SymPy: Solving Algebraic Equations**
```python
from sympy import symbols, Eq, solvex = symbols('x')
equation = Eq(x**2 - 5*x + 6, 0)solution = solve(equation, x)
print(solution) # Output: [2, 3]
```### β‘ **CuPy: GPU-Accelerated Computations**
```python
import cupy as cpA = cp.random.rand(1000, 1000)
B = cp.random.rand(1000, 1000)C = cp.dot(A, B) # GPU-accelerated matrix multiplication
```---
## π Real-World Applications
π **Numerical Optimization** β Solve constrained & unconstrained optimization problems
π **Differential Equations** β Solve physics and engineering problems
π **Signal Processing** β Apply FFT, wavelet transforms, and filtering
π **Computational Physics** β Run simulations for quantum mechanics and electromagnetism
π **Machine Learning & Data Science** β Feature transformations, probability distributions---
## π Contributing
Contributions are welcome! π
πΉ **Fork** the repository
πΉ Create a new branch (`git checkout -b feature-name`)
πΉ Commit changes (`git commit -m "Added CuPy optimization example"`)
πΉ Push to your branch (`git push origin feature-name`)
πΉ Open a pull request---
## π License
This project is licensed under the **MIT License** β feel free to use, modify, and share the code.
---
## π¬ Contact
For queries or collaboration, reach out via:
π§ **Email:** [email protected]
π **GitHub:** [SaadSalmanAkram](https://github.com/saadsalmanakram)
πΌ **LinkedIn:** [Saad Salman Akram](https://www.linkedin.com/in/saadsalmanakram/)---
β‘ **Master Numerical Computing & Optimize Performance Efficiently!** β‘
---