Numerical methods for differential equations in physics
Many physical phenomena are modeled at a macroscopic level by partial differential equations, in domains as diverse as fluid and solid mechanics, electromagnetism, general relativity, quantum mechanics or astrophysics. These are mathematical expressions which impose a relation between partial derivatives of one or several multivariable functions. This course is meant as an introduction to numerical methods for the approximation of solutions to partial differential equations.
Many physical phenomena are modeled at a macroscopic level by partial differential equations, in domains as diverse as fluid and solid mechanics, electromagnetism, general relativity, quantum mechanics or astrophysics. These are mathematical expressions which impose a relation between partial derivatives of one or several multivariable functions. This course is meant as an introduction to numerical methods for the approximation of solutions to partial differential equations.
The advent of computers has rendered possible the numerical approximation of solutions of partial differential equations for which no closed-form expression is known, thus allowing physicists to perform virtual experiments which would be too costly or even impracticable in real life. These approximations are based on discretisation schemes, for which many approaches exist, which are implemented on a machine in the form of algorithms.
The aim of this course is to present two of the most general methods for the numerical solution of partial differential equations: the finite difference methods and the spectral collocation methods.
During the course of the presentation, elements of numerical analysis, that is theoretical aspects such as the well-posedness of a differential equation problem or the consistency, stability and convergence of schemes, will be discussed. They will be completed by scientific computing details on the methods, concerning their implementation and their computational complexity. Numerical methods for ordinary differential equations (corresponding to functions of a single variable), linear systems or non-linear equations, and linear stability analysis will also be dealt with.
These notions seen in the course will be put to use during tutorial sessions. These are done in Python language, using Jupyter notebooks and the numpy and scipy packages. The proposed exercises will illustrate key points of the course and lead to the numerical solution of toy problems for the Poisson equation, the heat equation, the wave equation or the Burgers equation.
Calculus, notably Taylor series and Fourier analysis, and linear algebra basics, programming in Python.
Homework tasks given at the end of each tutorial session account for 25% of the final grade. The remaining 75% correspond to a written report and an oral defense on the numerical solution of a partial differential equation problem coming from the physics.