Venue: Feynman Lecture Hall
Class Timings: Mondays and Wednesdays from 3:30 PM - 5:00 PM
First Meeting: 19 January 2026 (Monday)
Course Description: The course aims for a “physics-first” approach. The plan is to discuss real problems in physics and astronomy and identify numerical methods that can be used to solve those problems. The idea is to enable students to make use of computational methods for their research in physics and astronomy.
Topics
- Numerical differentiation and integration: Finite differencing, convergence, error estimates, Richardson extrapolation, trapezoidal rule, Romberg's method, Simpson's rule, Gaussian quadrature.
- Fourier methods and signal processing: Fast Fourier transform, sampling theorem, windowing, convolution and correlation, power spectrum estimation, Matched filtering.
- Monte-Carlo methods and statistical techniques: Markov-chain Monte Carlo methods, Metropolis–Hastings algorithm, Bayesian inference, Hypothesis testing, Model selection.
- Algebraic Equations and root finding: Solving systems of linear equations, non-linear root finding.
- Ordinary differential equations: Euler methods, Runge-Kutta methods, Adaptive step size control.
- Partial differential equations: Stability analysis, well-posedness, Finite difference and spectral methods, Solving Hyperbolic, Elliptic and Parabolic PDEs.
References:
- W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery, Numerical Recipes: The Art of Scientific Computing, Cambridge (2007).
- P. L. DeVries and J. E. Hasbun, A First Course in Computational Physics, Jones & Bartlett (2011).
- C. F. Gerald and P.O.Wheatley, Applied Numerical Analysis, Addison-Wesley (2004).
- D. S. Sivia and J. Skilling, Data Analysis: A Bayesian Tutorial, Oxford (2012).
- P. Gregory, Bayesian Logical Data Analysis for the Physical Sciences, Cambridge (2010)
Perquisites: This is NOT a course in computer programming. Students are expected to have some background in programming. The recommended programming language is Python.
Bring your laptop that has some flavour of Unix (GNU/Linux, Mac OS X, BSD, etc.), with Python (http://www.python.org/) along with numpy (http://www.numpy.org/), scipy (http://scipy.org/) and matplotlib (http://matplotlib.org/) libraries installed.
If you are a beginner in Python, work on your Python beginners tutorials: http://www.python.org/about/gettingstarted/. Once you are familiar with the basics, go for an advanced tutorial, e.g., http://www.openbookproject.net/thinkcs/python/english2e/.
Course Evaluation: 75% on weekly assignments + 25% on final project.
- Teacher: Prayush Kumar