Study level
BAC +4
ECTS
5 credits
Component
Faculty of Science
Hourly volume
42h
Description
This UE includes a refresher and a deepening of programming techniques as well as an introduction to numerical physics. We'll start with a review of procedural programming with the Python 3 language. Then we'll take an in-depth look at numerical methods relevant to physics, studying a selection of classical numerical analysis algorithms and applying them to physical problems.
Objectives
Learn to program at an advanced level with Python and apply your knowledge of scientific programming. Understand the concepts of numerical error, numerical stability and algorithmic complexity. Know and know how to implement selected methods for the numerical calculation of integrals, for the solution of ordinary and partial differential equations and for Monte Carlo sampling.
Necessary prerequisites
Basic programming skills. Knowledge of computer science, physics and mathematics at bachelor's level in physics.
Recommended prerequisites
Good knowledge of Python 3 and its modules, especially NumPy. Bachelor's degree courses in programming and digital physics, in particular either "Programming for physics" or "Simulation tools" in L3 or equivalent.
Knowledge control
Full continuous assessment
Syllabus
Procedural programming with Python 3 (review and refresh)
Scientific programming, the NumPy library
Graphics with Matplotlib
Notions of numerical error, stability and algorithmic complexity
Numerical quadrature methods: Newton-Cotes methods, adaptive methods, Gauss quadrature
Ordinary differential equations: Runge-Kutta methods, implicit methods, adaptive methods
Finite-difference methods for partial differential equations
Monte Carlo sampling and integration