Source: https://perso.ensta-paris.fr/~mbonnet/mec568/examen09 corrige.pdf