This repository contains a series of laboratory projects completed during the Computer physics course. The projects focus on the practical implementation of mathematical algorithms to solve physics-based problems using Python.
- Language: Jupyter Notebook
- Core Libraries:
NumPy,Matplotlib
- Explicit & Implicit Solvers: Implementation of various schemes (Euler, Runge-Kutta, RK2, RK4) to solve autonomous problems and harmonic oscillations (damped and driven).
- Epidemic Modeling (SIR): Application of implicit methods to simulate the spread of infectious diseases.
- Stiff Problems: Using adaptive time-stepping to maintain stability in computationally challenging systems.
- Kuramoto Model (Neurobiology): Simulating large-scale synchronization of oscillators, representing neural network activity or collective biological behavior.
- Shooting Method (Project 9): Finding the normal modes (eigenvalues) of a 1D vibrating string.
- Verlet Method (Project 10): Solving the 1D wave equation using the Verlet algorithm to ensure energy conservation during string vibration simulations.
- Poisson Equation: Solving static field problems using global and local relaxation techniques.
- Multigrid Acceleration: Using hierarchical grids to significantly speed up the convergence of PDE solvers.
- Monte Carlo Integration: Using probabilistic sampling to compute high-dimensional integrals where traditional quadrature fails.
- Stability & Convergence: Understanding when and why numerical schemes fail.
- Vectorization: Leveraging
NumPyfor high-performance calculations in Python. - Physics Modeling: Translating physical laws (Newton, Maxwell, Poisson) into code.
Created as part of the Computer Physics course.