Applied & Computational Methods (Jan-May 2025)
Class timings: Tuesday and Friday, 9:30 AM to 11:00 AM
Wednesday, 2:00 to 3:30 PM
Class room : Auditorium
First class : 3 January 2025
Grading : Homework (30), midterm (30), final (40)
TA :
Re-exam policy: No re-exam will be given in case of failure and course has to be repeated next year.
Mid-term exam:
Final exam:
All documents and communication will be sent through Google Classroom. Do not email me directly unless it is a personal issue.
You should bring a laptop or tablet with zoom installed on it to every class.
Students
- Shubhangi Arora
- Pranchal Bajaj
- Subham Chatterjee
- Debjit Ghoshal
- Dikshant Goel
- Sonika Jindal
- Kartick Samanta
- Darshan Shanbhag
- Shreyas Suresh
- Kartikey Verma
Assignments
Assignments must be done individually without discussing with others. You can discuss with me and the TA.
Assignments must be written in the form of jupyter notebook where you can use LaTeX.
Assignments should be submitted on Google Classroom.
File names must contain assignment number and your name, in this format: Assign_1_YourName.pdf
or Assign_1_YourName.ipynb
. If the assignment is given as a jupyter notebook foo.ipynb
, submit your solution as foo_YourName.ipynb
. Do not use spaces in file names.
Most of the examples codes given will be in Python. You are encouraged to write coding assignments in Python, but you may use other languages like C/C++/Python/Matlab/Julia with prior approval.
Here are some tips on writing assignment and exams.
- Explain how you will index vector/matrix entries, 0-based or 1-based indexing.
- Make pictures if it helps to explain the ideas.
- Dont just write down the equations of the numerical method, explain how you arrive at them.
- For coding assignments, after you obtain the numerical result, make some conclusions from the results. How good is the solution, are there any problems with it, does it agree with the theoretical analysis of the method, etc.
Intro to Python
We will extensively use Python in this course and you can install it on your laptop using conda. You can also run it in the cloud, see below. We will use jupyter notebooks via jupyter-lab. We will need following Python modules
numpy matplotlib scipy sympy jupyterlab prettytable
See here for more info on installing with Conda.
A small introduction to some Python that is useful for this course is available here. In the terminal, you can clone this repository
git clone https://github.com/cpraveen/python
cd python
or download a zip file, or
wget https://github.com/cpraveen/python/archive/master.zip
unzip master.zip
cd python-master
You can read the Python notes here: Python
Codes and notes
- Python: notebooks, website
- Numerical Analysis: codes and notebooks, website
- Numerical Linear Algebra: notebooks
- Spectral Methods: notebooks, website
Running in cloud
-
Colab: You need a google account and the notebooks are saved into your Google drive, typically in the directory called
Colab Notebooks
. -
StudioLab: You need to get a free account. Install some modules by creating a notebook with this code block
%conda install numpy scipy sympy matplotlib prettytable
You only need to do this once.
- Github codespaces
- Matlab Online: You need to get a free account.
References
- LaTeX in 30 minutes
- A simple guide to LaTeX
- L. N. Trefethen and D. Bau, Numerical Linear Algebra, SIAM.
- S. L. Brunton and J. N. Katz, Data Driven Science and Engineering: Machine Learning, Dynamical Systems and Control, Cambridge Univ. Press.
- James Demmel, Applied Numerical Linear Algebra, SIAM.
- E. Darve and M. Wootters, Numerical Linear Algebra with Julia, SIAM.
- G. H. Golub and C. F. Van Loan, Matrix Computations, HBA.