The aim of this course is to provide students with a working knowledge of basic mathematical algorithms and associated computer programming. We will cover several notions such as representation of numbers, rootfinding, polynomial approximation, numerical integration, and error analysis. A significant portion of the course will be devoted to implementation and experiments using Jupyter Notebooks with Python.

 

Objective: Introduction to computational mathematics

  • Practical knowledge of basic (but fundamental) mathematical algorithms
  • Theoretical study: introduction to the notions of error / convergence / speed of convergence
  • Practical implementation: lab sessions using Python and Jupyter notebooks

 

Tentative schedule

  • Introduction (1 week)
  • Chapter 1: solving equations of one variable (2 weeks)
  • Chapter 2: polynomial approximation (2 weeks)
  • Chapter 3: numerical integration (2 weeks)
  • Final exam (to be scheduled)

 

 

Grading

The grading will be based on the following elements:

  1.  Very short tests (approx. 5min) at the beginning of the second lecture of each chapter (on April 20, May 11 and June 1), to ensure that you remember the main notions introduced during the first lecture of the chapter. 25% of the final grade.
  2.  Quizzes on Moodle, to be completed at the end of each chapter, to check your understanding of the material covered in the chapter, mostly from a theoretical perspective. 25% of the final grade.
  3.  A final exam (to be scheduled), during which you will have to complete a notebook with both theoretical answers, Python code, and illustrations. 50% of the final grade.
 

 

Jupyter Notebooks

 

  • It is a web application allowing to design documents that contains both code and rich text elements such as figures, videos, links, equations...
  • We are going to work with Python 3. Jupyter is already installed on the machines in the computer rooms. In order to run the Jupyter server on a machine in the computer rooms, type the following command in a terminal:

    jupyter3 notebook --ip=127.0.0.1

  •  If you want to use Jupyter on your own machine, the recommendation is that you use the Anaconda distribution. Anaconda distribution contains both python and several surrounding packages, including Jupyter. You can download it there: https://www.anaconda.com/download/ .
  • For each cycle, you will have to download and unzip a folder containing all the necessary material. Make sure to open the notebook (.ipynb file) from within the unzipped folder, otherwise you may lack some of the included pictures and layout elements.

 




The aim of Introduction to Numerical Analysis (MAA 106) is to provide the students with practical knowledge of basic mathematical algorithms and computer programming.

The course is divided into 4 cycles and covers several notions such as the representation of numbers, the complexity of algorithms, interpolation of functions, numerical integration and solving equations. Mathematics are used to study the notions of error, convergence, order of convergence... We also focus on the practical implementation of the methods, using in particular Python notebooks which enable to test easily the algorithms with multiple parameters for instance.

The last three weeks of the course are devoted to a more personal project that will allow the student to understand deeper a notion seen in class. The grading of the course includes the project, a test and homeworks.